diff --git a/src/main/java/subway/SubwayService.java b/src/main/java/subway/SubwayService.java index 60761a175..6e1c2ad56 100644 --- a/src/main/java/subway/SubwayService.java +++ b/src/main/java/subway/SubwayService.java @@ -26,6 +26,17 @@ public void addLine(String name, String[] stationNames) { LineRepository.addLine(line); } + public void deleteStation(String name) { + if (LineRepository.lines().stream() + .flatMap(line -> line.getStations().stream()) + .anyMatch(station -> station.getName().equals(name))) { + throw new IllegalArgumentException("[ERROR] 노선에 등록된 역은 삭제할 수 없습니다."); + } + if (!StationRepository.deleteStation(name)) { + throw new IllegalArgumentException("[ERROR] 존재하지 않는 역입니다."); + } + } + public List getStations() { return StationRepository.stations(); } diff --git a/src/test/java/subway/SubwayServiceTest.java b/src/test/java/subway/SubwayServiceTest.java index 09dfa4a2c..d3c98929c 100644 --- a/src/test/java/subway/SubwayServiceTest.java +++ b/src/test/java/subway/SubwayServiceTest.java @@ -24,12 +24,21 @@ void setUp() { class AddStationTest { @Test - @DisplayName("지하철 역을 등록하고 삭제할 수 있다.") + @DisplayName("지하철 역을 등록할 수 있다.") void addStation() { subwayService.addStation("잠실역"); assertTrue(StationRepository.isStationExist("잠실역")); } + @Test + @DisplayName("역을 삭제할 수 있다.") + void deleteStation() { + subwayService.addStation("잠실역"); + assertTrue(StationRepository.isStationExist("잠실역")); + subwayService.deleteStation("잠실역"); + assertFalse(StationRepository.isStationExist("잠실역")); + } + @Test @DisplayName("중복된 지하철 역 이름이 등록될 수 없다.") void duplicationStation() {