diff --git a/src/main/java/eirb/pg203/weather/data/WeatherData.java b/src/main/java/eirb/pg203/weather/data/WeatherData.java index 69b0dfb..0fa5a0c 100644 --- a/src/main/java/eirb/pg203/weather/data/WeatherData.java +++ b/src/main/java/eirb/pg203/weather/data/WeatherData.java @@ -43,7 +43,7 @@ public class WeatherData { } } - enum WindDirection { + public enum WindDirection { N("🡩"), NE("🡭"), E("🡪"), @@ -197,7 +197,6 @@ public class WeatherData { jsonObject.put("condition", condition.toString()); jsonObject.put("windSpeed", windSpeed); jsonObject.put("windDirectionAngle", windDirectionAngle); - jsonObject.put("windDirection", windDirection.toString()); return jsonObject; } @@ -208,7 +207,7 @@ public class WeatherData { float temp = data.getFloat("temp"); float windSpeed = data.getFloat("windSpeed"); float windDirectionAngle = data.getFloat("windDirectionAngle"); - Condition condition = Condition.fromString(data.getString("windDirection")); + Condition condition = Condition.fromString(data.getString("condition")); return new WeatherData(city, date, temp, windSpeed, windDirectionAngle, condition); } diff --git a/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java b/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java index bbf7a5c..3269e46 100644 --- a/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java +++ b/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java @@ -1,6 +1,8 @@ package eirb.pg203.weather.data; import eirb.pg203.weather.utils.City; + +import org.json.JSONObject; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -9,6 +11,8 @@ import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.EnumSource; import org.junit.jupiter.params.provider.MethodSource; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.time.Instant; import java.util.stream.Stream; @@ -106,4 +110,28 @@ public class WeatherDataTest { weatherData.setWindDirectionAngle(windDirection); Assertions.assertEquals(expectedWindDirection, weatherData.getWindDirection()); } + + @Test + void toJSONTest() { + Instant now = Instant.now(); + float temp = 0f; + WeatherData.Condition condition = WeatherData.Condition.SUNNY; + float windSpeed = 0f; + float windDirectionAngle = 0f; + WeatherData weatherData = new WeatherData(new City("aCity"), now, temp, windSpeed, windDirectionAngle, condition); + JSONObject equalsTo = new JSONObject(); + + equalsTo.put("city", "aCity"); + equalsTo.put("date", now.toEpochMilli()); + equalsTo.put("temp", temp); + equalsTo.put("condition", condition.toString()); + equalsTo.put("windSpeed", windSpeed); + equalsTo.put("windDirectionAngle", windDirectionAngle); + + Assertions.assertEquals(equalsTo.toString(), weatherData.toJSON().toString()); + + WeatherData weatherData2 = WeatherData.fromJSON(equalsTo); + + Assertions.assertEquals(weatherData.toString(), weatherData2.toString()); + } }