добавлен тест на случай неправильной выдачи города

This commit is contained in:
swayfarer 2025-05-27 21:21:11 +03:00
parent 84c9bc4c7c
commit 75dce5f3c2
2 changed files with 19 additions and 2 deletions

View File

@ -6,6 +6,8 @@ import ru.dima.weather.provider.MultiDaysWeatherInfo;
import ru.dima.weather.provider.OpenWeatherMapWeatherProvider;
import ru.dima.weather.provider.WeatherInfo;
import java.util.Random;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
@ -23,7 +25,7 @@ public class OpenWeatherMapWeatherProviderTest {
assertEquals("open-weather-map", OpenWeatherMapWeatherProvider.getName(), "open-weather-map");
}
@Test
void TestMultiDaysWeatherInfo() {
void TestMultiDaysWeatherInfo_T() {
HttpRequester httpRequester = mock(HttpRequester.class);
String ft = "{\"list\": [{\"main\": {\"temp\": 22.5}}, {\"main\": {\"temp\": 19.85}}, {\"main\": {\"temp\": 20.97}}, {\"main\": {\"temp\": 22.19}}, {\"main\": {\"temp\": 25.41}}, {\"main\": {\"temp\": 26.21}}, {\"main\": {\"temp\": 22.53}}]}";
@ -35,4 +37,19 @@ public class OpenWeatherMapWeatherProviderTest {
assertEquals("MultiDaysWeatherInfo{perDayWeather=[WeatherInfo{temperature=22.5}, WeatherInfo{temperature=19.85}, WeatherInfo{temperature=20.97}, WeatherInfo{temperature=22.19}, WeatherInfo{temperature=25.41}, WeatherInfo{temperature=26.21}, WeatherInfo{temperature=22.53}]}",weatherInfo,"s");
}
@Test
void TestMultiDaysWeatherInfo_F() {
HttpRequester httpRequester = mock(HttpRequester.class);
String ffd = "{\"list\": [{\"main\": {\"temp\": 22.5}}, {\"main\": {\"temp\": 19.85}}, {\"main\": {\"temp\": 20.97}}, {\"main\": {\"temp\": 22.19}}, {\"main\": {\"temp\": 25.41}}, {\"main\": {\"temp\": 26.21}}, {\"main\": {\"temp\": 22.53}}]}";
when(httpRequester.getString(anyString())).thenReturn(ffd);
OpenWeatherMapWeatherProvider openWeatherMapWeatherProvider = new OpenWeatherMapWeatherProvider(httpRequester , "29ed5ca47c3d0c32385b18f1e82e522f" );
Random random = new Random();
var ran = random.toString();
var weatherInfo = openWeatherMapWeatherProvider.getWeeklyWeatherInCity(ran);
assertEquals("MultiDaysWeatherInfo{perDayWeather=[WeatherInfo{temperature=22.5}, WeatherInfo{temperature=19.85}, WeatherInfo{temperature=20.97}, WeatherInfo{temperature=22.19}, WeatherInfo{temperature=25.41}, WeatherInfo{temperature=26.21}, WeatherInfo{temperature=22.53}]}",weatherInfo,"s");
}
}

View File

@ -38,7 +38,7 @@ public class WeatherProviderCLISelectorTest {
WeatherProvider provider = Mockito.mock("open-weather-map");
List<WeatherProvider> providers = Arrays.asList(provider);
when(weatherProviderRegistry.getAllWeatherProviders()).thenReturn(providers);
var j = "3";
var j = "GYg";
InputStream inputStream = new ByteArrayInputStream(j.getBytes());
CLIInputReader inputReader = new CLIInputReader(inputStream);