1.1. 새로운 작업 추가 - 완료

    @Test public void addNewWork(){
        WorkList workList = new WorkList();
        String workName = "새로운 작업 추가하기";
        workList.add(new Work(workName));
        assertEquals(1, workList.size());
        assertEquals(workName, workList.get(1).name);
    }

1.2. 선택한 작업 삭제 하려다 보니 Work 마다 번호가 매겨져 있어야 할 것 같아졌습니다. 새로운 작업을 추가 했을 때 그 작업의 번호를 리턴 받도록 합니다. 작업 번호는 1번 부터 시작합니다. 새로 추가되는 작업의 번호는 리스트 요소중에 제일 큰 번호를 갖게 됩니다.

1.2 작업 번호 받기 - 완료

     @Test public void addNewWork(){
        WorkList workList = new WorkList();
        String workName = "새로운 작업 추가하기";
        int workNumber = workList.add(new Work(workName));
        assertEquals(1, workNumber);
        assertEquals(1, workList.size());
        assertEquals(workName, workList.get(workNumber).name);
    }

1.3. 선택한 작업 삭제 - 완료

    @Test public void deleteWork(){
        WorkList workList = new WorkList();
        int workNumber1 = workList.add(new Work("work1"));
        int workNumber2 = workList.add(new Work("work2"));
        assertEquals(2, workList.size());
        workList.delete(workNumber1);
        assertEquals(1, workList.size());
        assertEquals("work2", workList.get(workNumber2 - 1).name);
    }

리스트에서 작업이 삭제 되면 작업의 번호도 그에 따라 변경 됩니다. 예를 들어 2개의 작업에서 첫번째(1번) 작업이 삭제 되면 두번째(2번) 작업의 번호가 첫번째 작업의 번호로 바뀌게 됩니다.

두 개의 메소드에 중복이 발생했습니다. workList 객체를 @Before 가 붙은 메소드로 올리겠습니다.

    WorkList workList;

    @Before public void setUp(){
        workList = new WorkList();
    }

1.4. 파일로 저장하기 - 완료

    @Test public void saveList() throws IOException{
        workList.add(new Work("work1"));
        String fileName = "ToDoList.txt";
        workList.save(fileName);
        StringBuffer buffer = new StringBuffer();
        String line;
        BufferedReader reader = new BufferedReader(new FileReader(fileName));
        while ((line = reader.readLine()) != null) {
            buffer.append(String.format(line + "\n"));
        }
        reader.close();
        assertEquals("work1\n", buffer.toString());
    }

1.5. 파일에서 읽어오기 - 완료

    @Test public void loadList(){
        int workNumber = workList.add(new Work("work1"));
        String fileName = "ToDoList.txt";
        workList.save(fileName);
        workList = new WorkList();
        workList.load(fileName);
        assertEquals(1, workList.size());
        assertEquals("work1", workList.get(workNumber).name);
    }

1.6. 전체 리스트 보여주기 - 완료

    @Test public void printList(){
        workList.add(new Work("work1"));
        workList.add(new Work("work2"));
        workList.add(new Work("work3"));
        assertEquals("work1\nwork2\nwork3\n", workList.toString());
    }

그리고 여태까지 Work class에 name 변수가 public으로 되어 있었는데 private으로 바꿔주고 에러나는 부분은 getter와 setter로 포장해 줍니다.