feat: add tests for weatherdata fromjson and tojson

This commit is contained in:
Nemo D'ACREMONT 2024-12-19 20:51:48 +01:00
parent f73311b7a4
commit 61a459ce78
2 changed files with 30 additions and 3 deletions

View File

@ -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);
}

View File

@ -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());
}
}