3. 작업 분류
3.1. 새로 추가된 작업은 "해야할 작업" 목록에 추가 됩니다.
@Test public void newWorkType(){
Work work = new Work("work1");
workList.add(work);
assertEquals(WorkType.TODO, work.getType());
}
음.. 화면을 먼저 만들걸.. 하는 생각이 계속 들면서 작업을 방해하기 시작하는데 메모를 해둬야 겠습니다.
- 일시 정지 클릭하고 ToDo List에서 다른 작업의 시작 버튼을 클릭하면 일시 정지 된 작업은 TODO 리스트로 옮겨지고 Current Work에는 방금 선택한 작업이 올라옵니다.
3.2. "작업 시작" 버튼을 클릭한 작업은 "진행 중인 작업" 목록에 추가 됩니다.
@Test public void startWorkType(){
Work work = new Work("work1");
workList.add(work);
work.start();
assertEquals(WorkType.CURRENT, work.getType());
}
3.3. "작업 완료" 버튼을 클릭한 작업은 "완료된 작업" 목록에 추가 됩니다.
- "PAUSE" 버튼과 "RESTART" 버튼을 눌렀을 때 상태 변화를 생각 못했었군요. 테스트에 추가해야겠습니다.
그 전에 일단 3.3. 부터 마무리 하구요.
@Test public void endWorkType(){
Work work = new Work("work1");
workList.add(work);
work.start();
work.end();
assertEquals(WorkType.END, work.getType());
}
=> 어라.. 여기까지 하다보니 테스트 코드에 엄청난 중복이 생겼습니다. test 메소드 하나로 위에 있는 세개를 전부 합치겠습니다.
@Test public void workType(){
Work work = new Work("work1");
workList.add(work);
assertEquals(WorkType.TODO, work.getType());
work.start();
assertEquals(WorkType.CURRENT, work.getType());
work.end();
assertEquals(WorkType.END, work.getType());
}
그럼 이제 위에 있는 세개는 지워도 되겠군요. 책 읽은게 도움이 됐습니다. 흐흐 쌩큐 Beck!
3.4. 선택한 분류의 작업만 보여주기.
이건 SWT에 있는 EnpendBar로 구현을 했기 때문에.. 코드로 처리하지 않아도 될 것 같습니다.
3.5. "PAUSE" 버튼을 클릭하면 pause 상태로 바꿔줍니다. 위에 있는 테스트 코드를 수정해서 시나리오를 만듭니다.
Work work = new Work("work1");
workList.add(work);
assertEquals(WorkType.TODO, work.getType());
work.start();
assertEquals(WorkType.CURRENT, work.getType());
work.pause();
assertEquals(WorkType.PAUSE, work.getType());
Work work2 = new Work("work2");
workList.add(work2);
work2.start();
assertEquals(WorkType.CURRENT, work2.getType());
work.end();
assertEquals(WorkType.END, work.getType());
}
- 하나의 작업이 실행 중일 때 다른 작업을 실행하지 못하게 합니다.
SWT에서 실행 버튼을 disable 하게 해두는 걸로 하면.. 되겠죠? 훔