package tudu.domain.model.comparator;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import tudu.domain.model.Todo;
import java.util.*;
public class TodoByDueDateAscComparatorTest {
@Test
public void testCompare() {
Todo todo1 = new Todo();
todo1.setTodoId("01");
todo1.setCompleted(false);
Calendar cal1 = Calendar.getInstance();
cal1.set(2006, 10, 5);
todo1.setDueDate(cal1.getTime());
Todo todo2 = new Todo();
todo2.setTodoId("02");
todo2.setCompleted(false);
Todo todo3 = new Todo();
todo3.setTodoId("03");
todo3.setCompleted(false);
Calendar cal3 = Calendar.getInstance();
cal3.set(2007, 5, 1);
todo3.setDueDate(cal3.getTime());
Todo todo4 = new Todo();
todo4.setTodoId("04");
todo4.setCompleted(false);
Calendar cal4 = Calendar.getInstance();
cal4.set(2002, 1, 1);
todo4.setDueDate(cal4.getTime());
Todo todo5 = new Todo();
todo5.setTodoId("05");
todo5.setCompleted(false);
Todo todo6 = new Todo();
todo6.setTodoId("06");
todo6.setCompleted(true);
Calendar cal6 = Calendar.getInstance();
cal6.set(2008, 1, 1);
todo6.setDueDate(cal6.getTime());
Todo todo7 = new Todo();
todo7.setTodoId("07");
todo7.setCompleted(true);
Calendar cal7 = Calendar.getInstance();
cal7.set(2008, 2, 1);
todo7.setDueDate(cal7.getTime());
Todo todo8 = new Todo();
todo8.setTodoId("08");
todo8.setCompleted(true);
Comparator<Todo> comparator = new TodoByDueDateAscComparator();
Collection<Todo> sortedTodos = new TreeSet<Todo>(comparator);
sortedTodos.add(todo3);
sortedTodos.add(todo2);
sortedTodos.add(todo5);
sortedTodos.add(todo4);
sortedTodos.add(todo8);
sortedTodos.add(todo1);
sortedTodos.add(todo7);
sortedTodos.add(todo6);
assertEquals(8, sortedTodos.size());
Iterator<Todo> iterator = sortedTodos.iterator();
Todo testTodo = iterator.next();
assertEquals("05", testTodo.getTodoId());
testTodo = iterator.next();
assertEquals("02", testTodo.getTodoId());
testTodo = iterator.next();
assertEquals("03", testTodo.getTodoId());
testTodo = iterator.next();
assertEquals("01", testTodo.getTodoId());
testTodo = iterator.next();
assertEquals("04", testTodo.getTodoId());
testTodo = iterator.next();
assertEquals("08", testTodo.getTodoId());
testTodo = iterator.next();
assertEquals("07", testTodo.getTodoId());
testTodo = iterator.next();
assertEquals("06", testTodo.getTodoId());
}
}