Skip to content

Commit

Permalink
지하철 등록 techeer-sv#5 feat : 지하철 역 삭제 기능 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
heondong9265 committed May 31, 2024
1 parent 8cbbdb5 commit 7c2dba3
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
11 changes: 11 additions & 0 deletions src/main/java/subway/SubwayService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<Station> getStations() {
return StationRepository.stations();
}
Expand Down
11 changes: 10 additions & 1 deletion src/test/java/subway/SubwayServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down

0 comments on commit 7c2dba3

Please sign in to comment.