diff --git a/src/main/java/ru/dima/weather/WeatherApp.java b/src/main/java/ru/dima/weather/WeatherApp.java index 18ece81..000907b 100644 --- a/src/main/java/ru/dima/weather/WeatherApp.java +++ b/src/main/java/ru/dima/weather/WeatherApp.java @@ -35,7 +35,6 @@ public class WeatherApp { var weatherProviderCliSelector = new WeatherProviderCLISelector(new CLIInputReader(System.in), weatherProviderRegistry); var weatherProviderSelectedByUser = weatherProviderCliSelector.selectWeatherProviderFromCLI(); - -// System.out.println(openWeatherMapProvider.getWeeklyWeatherInCity(cityByIpResolver.getCurrentCityViaIP())); + System.out.println(openWeatherMapProvider.getWeeklyWeatherInCity(ipInfoService.getCurrentCityViaIP())); } } diff --git a/src/test/java/ru/dima/weather/city/IpInfoServiceTest.java b/src/test/java/ru/dima/weather/city/IpInfoServiceTest.java new file mode 100644 index 0000000..3be017e --- /dev/null +++ b/src/test/java/ru/dima/weather/city/IpInfoServiceTest.java @@ -0,0 +1,27 @@ +package ru.dima.weather.city; + +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import ru.dima.weather.http.HttpRequester; + +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class IpInfoServiceTest { + + @Test + void testGetCurrentCityViaIP(){ + var mockHttpRequester = Mockito.mock(HttpRequester.class); + var cityByIpResolver = new IpInfoService(mockHttpRequester); + var randomCityName = UUID.randomUUID().toString(); + + Mockito.when(mockHttpRequester.getString(Mockito.any())).thenReturn(randomCityName); + + var currentCity = cityByIpResolver.getCurrentCityViaIP(); + assertEquals(randomCityName, currentCity); + + } + +} + diff --git a/src/test/java/ru/dima/weather/city/IpProviderCLISelectorTest.java b/src/test/java/ru/dima/weather/city/IpProviderCLISelectorTest.java index a597093..9d2d4d5 100644 --- a/src/test/java/ru/dima/weather/city/IpProviderCLISelectorTest.java +++ b/src/test/java/ru/dima/weather/city/IpProviderCLISelectorTest.java @@ -12,17 +12,34 @@ import static org.mockito.Mockito.when; public class IpProviderCLISelectorTest { @Test - void testSelectIpProviderFromCLI(){ - CLIInputReader cliInputReader = new CLIInputReader(System.in); + void testSelectIpProviderFromCLI_ValidInput() { + CLIInputReader cliInputReader = mock(CLIInputReader.class); when(cliInputReader.readInteger()).thenReturn(1); - IpProvider ipProvider1 = mock(); - when(ipProvider1.getName()).thenReturn("ubuy"); + IpProvider ipProvider1 = mock(IpProvider.class); + when(ipProvider1.getName()).thenReturn("Provider 1"); List ipProviders = new ArrayList<>(); ipProviders.add(ipProvider1); IpProviderCLISelector ipProviderCLISelector = new IpProviderCLISelector(cliInputReader, ipProviders); - assertEquals("ubuy", ipProviderCLISelector.selectIpProviderFromCLI()); + assertEquals(ipProvider1, ipProviderCLISelector.selectIpProviderFromCLI()); + } + + @Test + void testSelectIpProviderFromCLI_InvalidInput() { + CLIInputReader cliInputReader = mock(CLIInputReader.class); + when(cliInputReader.readInteger()) + .thenReturn(3) + .thenReturn(1); + + IpProvider ipProvider1 = mock(IpProvider.class); + when(ipProvider1.getName()).thenReturn("Provider 1"); + + List ipProviders = new ArrayList<>(); + ipProviders.add(ipProvider1); + + IpProviderCLISelector ipProviderCLISelector = new IpProviderCLISelector(cliInputReader, ipProviders); + assertEquals(ipProvider1, ipProviderCLISelector.selectIpProviderFromCLI()); } }