ATDD 강의 실습을 위한 지하철 노선도 애플리케이션
- 구간을 추가한다
- 구간은 맨앞, 중간, 맨끝에 추가할 수 있다.
- 상,하행이 중복된 구간은 추가할 수 없다.
- 상행 혹은 하행 둘 중 하나는 포함되어야 한다.
- 구간 중간에 추가된 경우 추가된 역 길이로 수정된다.
- 구간 중간에 추가된 경우 기존 구간보다 길이가 크거나 같을 수 없다.
- 구간을 삭제한다
- 하나 남은 구간의 상행, 하행 종점은 삭제할 수 없다.
- 노선의 중간 구간이 삭제되면 삭제될 역과 연결된 상, 하행 구간의 길이의 합으로 재배치된다.
- 노선에 존재하지 않는 구간은 삭제할 수 없다.
- 경로를 조회한다
- 출발역 id, 도착역 id를 입력하면 최단 구간 목록과 구간의 거리를 응답한다.
- 경로 조회 시, 출발역과 도착역이 같을 수 없다.
- 경로 조회 시, 존재하지 않는 역인 경우 조회를 실패한다.
- 경로 조회 시, 출발역에서 도착역까지 연결되지 않은 경우 경로 조회를 실패한다.