diff --git a/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java b/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java index 3269e46..c664abd 100644 --- a/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java +++ b/src/test/java/eirb/pg203/weather/data/WeatherDataTest.java @@ -14,6 +14,7 @@ import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertTrue; import java.time.Instant; +import java.util.ArrayList; import java.util.stream.Stream; public class WeatherDataTest { @@ -52,6 +53,46 @@ public class WeatherDataTest { /* check if the setter works */ Assertions.assertEquals(condition, weatherData.getCondition()); } + private static Stream conditionFromString() { + return Stream.of( + Arguments.arguments("☀️", WeatherData.Condition.SUNNY), + Arguments.arguments("☁️", WeatherData.Condition.CLOUDY), + Arguments.arguments("🌤", WeatherData.Condition.PARTIAL), + Arguments.arguments("🌧", WeatherData.Condition.RAINY), + Arguments.arguments("E", WeatherData.Condition.ERROR) + ); + } + + @ParameterizedTest(name = "Condition {1} from string {0}") + @MethodSource + void conditionFromString(String conditionString, WeatherData.Condition expectedCondition) { + WeatherData.Condition condition = WeatherData.Condition.fromString(conditionString); + + Assertions.assertEquals(expectedCondition, condition); + + } + private static Stream windDirectionFromString() { + return Stream.of( + Arguments.arguments("🡩", WeatherData.WindDirection.N), + Arguments.arguments("🡭", WeatherData.WindDirection.NE), + Arguments.arguments("🡪", WeatherData.WindDirection.E), + Arguments.arguments("🡮", WeatherData.WindDirection.SE), + Arguments.arguments("🡫", WeatherData.WindDirection.S), + Arguments.arguments("🡯", WeatherData.WindDirection.SW), + Arguments.arguments("🡨", WeatherData.WindDirection.W), + Arguments.arguments("🡬", WeatherData.WindDirection.NW), + Arguments.arguments("E", WeatherData.WindDirection.ERROR), + Arguments.arguments("fjlkre", WeatherData.WindDirection.ERROR) + ); + } + + @ParameterizedTest(name = "Wind direction {1} from string {0}") + @MethodSource + void windDirectionFromString(String windDirectionString, WeatherData.WindDirection expectedWindDirection) { + WeatherData.WindDirection windDirection = WeatherData.WindDirection.fromString(windDirectionString); + + Assertions.assertEquals(expectedWindDirection, windDirection); + } @Test void windSpeed() {