feat: add tests from string

This commit is contained in:
Martin Eyben 2024-12-20 11:16:03 +01:00
parent 934cfce639
commit 94aa633f58

View File

@ -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<Arguments> 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<Arguments> 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() {