1package ultralist 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7) 8 9func TestCreateEventLogsWithAddingTodo(t *testing.T) { 10 assert := assert.New(t) 11 todo := &Todo{Subject: "testing", Completed: false, Archived: false} 12 list := &TodoList{} 13 list.Add(todo) 14 15 logger := NewEventLogger(list, &MemoryStore{}) 16 todo2 := NewTodo() 17 list.Add(todo2) 18 logger.CreateEventLogs() 19 20 assert.Equal(1, len(logger.Events)) 21 assert.Equal(AddEvent, logger.Events[0].EventType) 22 assert.Equal(todo2.ID, logger.Events[0].Object.ID) 23} 24 25func TestCreateEventLogsWithAddingMultipleTodos(t *testing.T) { 26 assert := assert.New(t) 27 todo := &Todo{Subject: "testing", Completed: false, Archived: false} 28 list := &TodoList{} 29 list.Add(todo) 30 31 logger := NewEventLogger(list, &MemoryStore{}) 32 todo2 := NewTodo() 33 list.Add(todo2) 34 todo3 := NewTodo() 35 list.Add(todo3) 36 logger.CreateEventLogs() 37 38 assert.Equal(2, len(logger.Events)) 39 assert.Equal(AddEvent, logger.Events[0].EventType) 40 assert.Equal(todo2.ID, logger.Events[0].Object.ID) 41 assert.Equal(AddEvent, logger.Events[1].EventType) 42 assert.Equal(todo3.ID, logger.Events[1].Object.ID) 43} 44 45func TestUpdateEvent(t *testing.T) { 46 assert := assert.New(t) 47 todo := &Todo{Subject: "testing", Completed: false, Archived: false} 48 list := &TodoList{} 49 list.Add(todo) 50 51 logger := NewEventLogger(list, &MemoryStore{}) 52 todo.Subject = "testing2" 53 logger.CreateEventLogs() 54 55 assert.Equal(1, len(logger.Events)) 56 assert.Equal(UpdateEvent, logger.Events[0].EventType) 57 assert.Equal(todo.ID, logger.Events[0].Object.ID) 58} 59 60func TestDeleteEvent(t *testing.T) { 61 assert := assert.New(t) 62 todo := &Todo{Subject: "testing", Completed: false, Archived: false} 63 todo2 := &Todo{Subject: "testing", Completed: false, Archived: false} 64 list := &TodoList{} 65 list.Add(todo) 66 list.Add(todo2) 67 68 logger := NewEventLogger(list, &MemoryStore{}) 69 list.Delete(todo.ID) 70 logger.CreateEventLogs() 71 72 assert.Equal(1, len(logger.Events)) 73 assert.Equal(DeleteEvent, logger.Events[0].EventType) 74 assert.Equal(todo.ID, logger.Events[0].Object.ID) 75} 76