github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/model/event/task_event_test.go (about) 1 package event 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/evergreen-ci/evergreen" 8 "github.com/evergreen-ci/evergreen/db" 9 "github.com/evergreen-ci/evergreen/testutil" 10 . "github.com/smartystreets/goconvey/convey" 11 ) 12 13 func init() { 14 db.SetGlobalSessionProvider(db.SessionFactoryFromConfig(testutil.TestConfig())) 15 } 16 17 func TestLoggingTaskEvents(t *testing.T) { 18 Convey("Test task event logging", t, func() { 19 20 testutil.HandleTestingErr(db.Clear(AllLogCollection), t, 21 "Error clearing '%v' collection", AllLogCollection) 22 23 Convey("All task events should be logged correctly", func() { 24 taskId := "task_id" 25 hostId := "host_id" 26 27 LogTaskCreated(taskId) 28 time.Sleep(1 * time.Millisecond) 29 LogTaskDispatched(taskId, hostId) 30 time.Sleep(1 * time.Millisecond) 31 LogTaskUndispatched(taskId, hostId) 32 time.Sleep(1 * time.Millisecond) 33 LogTaskStarted(taskId) 34 time.Sleep(1 * time.Millisecond) 35 LogTaskFinished(taskId, hostId, evergreen.TaskSucceeded) 36 37 eventsForTask, err := Find(AllLogCollection, TaskEventsInOrder(taskId)) 38 So(err, ShouldEqual, nil) 39 40 event := eventsForTask[0] 41 So(TaskCreated, ShouldEqual, event.EventType) 42 So(taskId, ShouldEqual, event.ResourceId) 43 44 eventData, ok := event.Data.Data.(*TaskEventData) 45 So(ok, ShouldBeTrue) 46 So(eventData.ResourceType, ShouldEqual, ResourceTypeTask) 47 So(eventData.HostId, ShouldBeBlank) 48 So(eventData.UserId, ShouldBeBlank) 49 So(eventData.Status, ShouldBeBlank) 50 So(eventData.Timestamp.IsZero(), ShouldBeTrue) 51 52 event = eventsForTask[1] 53 So(TaskDispatched, ShouldEqual, event.EventType) 54 So(taskId, ShouldEqual, event.ResourceId) 55 56 eventData, ok = event.Data.Data.(*TaskEventData) 57 So(ok, ShouldBeTrue) 58 So(eventData.ResourceType, ShouldEqual, ResourceTypeTask) 59 So(eventData.HostId, ShouldEqual, hostId) 60 So(eventData.UserId, ShouldBeBlank) 61 So(eventData.Status, ShouldBeBlank) 62 So(eventData.Timestamp.IsZero(), ShouldBeTrue) 63 64 event = eventsForTask[2] 65 So(TaskUndispatched, ShouldEqual, event.EventType) 66 So(taskId, ShouldEqual, event.ResourceId) 67 68 eventData, ok = event.Data.Data.(*TaskEventData) 69 So(ok, ShouldBeTrue) 70 So(eventData.ResourceType, ShouldEqual, ResourceTypeTask) 71 So(eventData.HostId, ShouldEqual, hostId) 72 So(eventData.UserId, ShouldBeBlank) 73 So(eventData.Status, ShouldBeBlank) 74 So(eventData.Timestamp.IsZero(), ShouldBeTrue) 75 76 event = eventsForTask[3] 77 So(TaskStarted, ShouldEqual, event.EventType) 78 So(taskId, ShouldEqual, event.ResourceId) 79 80 eventData, ok = event.Data.Data.(*TaskEventData) 81 So(ok, ShouldBeTrue) 82 So(eventData.ResourceType, ShouldEqual, ResourceTypeTask) 83 So(eventData.HostId, ShouldBeBlank) 84 So(eventData.UserId, ShouldBeBlank) 85 So(eventData.Status, ShouldBeBlank) 86 So(eventData.Timestamp.IsZero(), ShouldBeTrue) 87 88 event = eventsForTask[4] 89 So(TaskFinished, ShouldEqual, event.EventType) 90 So(taskId, ShouldEqual, event.ResourceId) 91 92 eventData, ok = event.Data.Data.(*TaskEventData) 93 So(ok, ShouldBeTrue) 94 So(eventData.ResourceType, ShouldEqual, ResourceTypeTask) 95 So(eventData.HostId, ShouldBeBlank) 96 So(eventData.UserId, ShouldBeBlank) 97 So(eventData.Status, ShouldEqual, evergreen.TaskSucceeded) 98 So(eventData.Timestamp.IsZero(), ShouldBeTrue) 99 }) 100 }) 101 }