/
khomec
/
homework5
Обзор
Документация
Войти
/
khomec
/
homework5
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/test/java/TravelServiceTests.java
181 строка
5 KB
Aleksandr Martynets
home5
29 дек 2025, 19:20
29 дек 2025, 19:20
95554f5
Код
Авторство
О чём код?
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeEach; import ru.edu.lesson6.CityInfo; import ru.edu.lesson6.GeoPosition; import ru.edu.lesson6.TravelService; import java.util.List; import static org.junit.jupiter.api.Assertions.*; /** * Test class for TravelService */ class TravelServiceTests { private TravelService travelService; private CityInfo moscow; private CityInfo saintPetersburg; private CityInfo london; @BeforeEach void setUp() { travelService = new TravelService(); moscow = new CityInfo("Moscow", new GeoPosition("55(45'07'')", "37(37'03'')")); saintPetersburg = new CityInfo("Saint Petersburg", new GeoPosition("59(57'00'')", "30(19'00'')")); london = new CityInfo("London", new GeoPosition("51(30'26'')", "0(07'39'')")); } @Test void testAddCity() { travelService.add(moscow); travelService.add(saintPetersburg); List<String> cityNames = travelService.citiesNames(); assertEquals(2, cityNames.size()); assertTrue(cityNames.contains("Moscow")); assertTrue(cityNames.contains("Saint Petersburg")); } @Test void testAddDuplicateCity() { travelService.add(moscow); assertThrows(IllegalArgumentException.class, () -> { travelService.add(new CityInfo("Moscow", new GeoPosition("55", "37"))); }); } @Test void testRemoveCity() { travelService.add(moscow); travelService.add(saintPetersburg); travelService.remove("Moscow"); List<String> cityNames = travelService.citiesNames(); assertEquals(1, cityNames.size()); assertFalse(cityNames.contains("Moscow")); assertTrue(cityNames.contains("Saint Petersburg")); } @Test void testRemoveNonExistentCity() { travelService.add(moscow); assertThrows(IllegalArgumentException.class, () -> { travelService.remove("NonExistentCity"); }); } @Test void testCitiesNames() { travelService.add(moscow); travelService.add(saintPetersburg); travelService.add(london); List<String> names = travelService.citiesNames(); assertEquals(3, names.size()); assertTrue(names.contains("Moscow")); assertTrue(names.contains("Saint Petersburg")); assertTrue(names.contains("London")); } @Test void testGetDistance() { travelService.add(moscow); travelService.add(saintPetersburg); int distance = travelService.getDistance("Moscow", "Saint Petersburg"); // Примерное расстояние между Москвой и Санкт-Петербургом ~635 км assertTrue(distance > 600 && distance < 700); } @Test void testGetDistanceSameCity() { travelService.add(moscow); int distance = travelService.getDistance("Moscow", "Moscow"); assertEquals(0, distance); } @Test void testGetDistanceNonExistentCity() { travelService.add(moscow); assertThrows(IllegalArgumentException.class, () -> { travelService.getDistance("Moscow", "NonExistentCity"); }); assertThrows(IllegalArgumentException.class, () -> { travelService.getDistance("NonExistentCity", "Moscow"); }); } @Test void testGetCitiesNear() { travelService.add(moscow); travelService.add(saintPetersburg); travelService.add(london); // Москва и Санкт-Петербург находятся на расстоянии ~635 км List<String> nearCities = travelService.getCitiesNear("Moscow", 700); assertEquals(1, nearCities.size()); assertTrue(nearCities.contains("Saint Petersburg")); assertFalse(nearCities.contains("London")); // Лондон слишком далеко assertFalse(nearCities.contains("Moscow")); // Сам город не включается } @Test void testGetCitiesNearZeroRadius() { travelService.add(moscow); travelService.add(saintPetersburg); List<String> nearCities = travelService.getCitiesNear("Moscow", 0); assertEquals(0, nearCities.size()); } @Test void testGetCitiesNearNonExistentCity() { travelService.add(moscow); assertThrows(IllegalArgumentException.class, () -> { travelService.getCitiesNear("NonExistentCity", 100); }); } @Test void testEmptyService() { List<String> names = travelService.citiesNames(); assertTrue(names.isEmpty()); } @Test void testMultipleOperations() { // Добавляем города travelService.add(moscow); travelService.add(saintPetersburg); travelService.add(london); // Проверяем список assertEquals(3, travelService.citiesNames().size()); // Удаляем город travelService.remove("London"); assertEquals(2, travelService.citiesNames().size()); // Проверяем расстояние int distance = travelService.getDistance("Moscow", "Saint Petersburg"); assertTrue(distance > 0); // Проверяем ближайшие города List<String> nearCities = travelService.getCitiesNear("Moscow", 1000); assertEquals(1, nearCities.size()); } }