3.6. 작업 분류별 리스트를 가져옵니다.

    @Test public void workTypeList(){
        Work work1 = new Work("work1");
        workList.add(work1);
        assertEquals(work1, workList.getToDoList().get(1));

        work1.start();
        assertEquals(work1, workList.getCurrentWork());
        assertEquals(0, workList.getToDoList().size());

        work1.pause();
        assertEquals(work1, workList.getPausedWorks().get(1));
        assertEquals(null, workList.getCurrentWork());

        work1.end();
        assertEquals(work1, workList.getEndWorks().get(1));
        assertEquals(0, workList.getPausedWorks().size());
    }

Work가 List에 있는 것만 확인하면 되는데 특정 위치를 가리켜서 확인하는 건 그닥 맘에 들지 않습니다. 그래서 contain()을 추가합니다.

    @Test public void workTypeList(){
        Work work1 = new Work("work1");
        workList.add(work1);
        assertTrue(workList.getToDoList().contains(work1));

        work1.start();
        assertEquals(work1, workList.getCurrentWork());
        assertEquals(0, workList.getToDoList().size());

        work1.pause();
        assertTrue(workList.getPausedWorks().contains(work1));
        assertEquals(null, workList.getCurrentWork());

        work1.end();
        assertTrue(workList.getEndWorks().contains(work1));
        assertEquals(0, workList.getPausedWorks().size());
    }

3.7. 하나의 작업이 실행 중일 땐 다른 작업을 실행 할 수 없습니다.

이걸 조금 구현 해보니깐..Work에서 WorkList를 가지고 있어야 합니다. 그렇게 되면 굉장히 복잡해지고 커플링이 심해집니다. UI 상에서 이런 시도를 막을 수 있을 것 같습니다. UI를 구현하는 코드가 복잡해지겠지만.. 일단 한번 해본 뒤에 생각해 봐야겠습니다.