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 상태로 바꿔줍니다. 위에 있는 테스트 코드를 수정해서 시나리오를 만듭니다.

    @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.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 하게 해두는 걸로 하면.. 되겠죠? 훔