github.com/justinjmoses/evergreen@v0.0.0-20170530173719-1d50e381ff0d/rest/model/task_test.go (about) 1 package model 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/evergreen-ci/evergreen/model/task" 8 . "github.com/smartystreets/goconvey/convey" 9 ) 10 11 type taskCompare struct { 12 at APITask 13 st task.Task 14 } 15 16 func TestTaskBuildFromService(t *testing.T) { 17 Convey("With a list of models to compare", t, func() { 18 timeNow := time.Now() 19 cTime := timeNow.Add(10 * time.Minute) 20 dTime := timeNow.Add(11 * time.Minute) 21 pTime := timeNow.Add(12 * time.Minute) 22 sTime := timeNow.Add(13 * time.Minute) 23 scTime := timeNow.Add(14 * time.Minute) 24 fTime := timeNow.Add(15 * time.Minute) 25 modelPairs := []taskCompare{ 26 { 27 at: APITask{ 28 Id: APIString("testId"), 29 CreateTime: APITime(cTime), 30 DispatchTime: APITime(dTime), 31 PushTime: APITime(pTime), 32 ScheduledTime: APITime(scTime), 33 StartTime: APITime(sTime), 34 FinishTime: APITime(fTime), 35 Version: APIString("testVersion"), 36 Branch: APIString("testProject"), 37 Revision: APIString("testRevision"), 38 Priority: 100, 39 Execution: 2, 40 Activated: true, 41 ActivatedBy: APIString("testActivator"), 42 BuildId: APIString("testBuildId"), 43 DistroId: APIString("testDistroId"), 44 BuildVariant: APIString("testBuildVariant"), 45 DependsOn: []string{ 46 "testDepends1", 47 "testDepends2", 48 }, 49 DisplayName: APIString("testDisplayName"), 50 Logs: logLinks{ 51 AllLogLink: "url/task_log_raw/testId/2?type=ALL", 52 TaskLogLink: "url/task_log_raw/testId/2?type=T", 53 SystemLogLink: "url/task_log_raw/testId/2?type=S", 54 AgentLogLink: "url/task_log_raw/testId/2?type=E", 55 }, 56 }, 57 st: task.Task{ 58 Id: "testId", 59 Project: "testProject", 60 CreateTime: cTime, 61 DispatchTime: dTime, 62 PushTime: pTime, 63 ScheduledTime: scTime, 64 StartTime: sTime, 65 FinishTime: fTime, 66 Version: "testVersion", 67 Revision: "testRevision", 68 Execution: 2, 69 Priority: 100, 70 Activated: true, 71 ActivatedBy: "testActivator", 72 BuildId: "testBuildId", 73 DistroId: "testDistroId", 74 BuildVariant: "testBuildVariant", 75 DependsOn: []task.Dependency{ 76 { 77 TaskId: "testDepends1", 78 }, 79 { 80 TaskId: "testDepends2", 81 }, 82 }, 83 DisplayName: "testDisplayName", 84 }, 85 }, 86 { 87 at: APITask{ 88 Logs: logLinks{ 89 AllLogLink: "url/task_log_raw//0?type=ALL", 90 TaskLogLink: "url/task_log_raw//0?type=T", 91 SystemLogLink: "url/task_log_raw//0?type=S", 92 AgentLogLink: "url/task_log_raw//0?type=E", 93 }, 94 }, 95 st: task.Task{}, 96 }, 97 } 98 Convey("running BuildFromService(), should produce the equivalent model", func() { 99 for _, tc := range modelPairs { 100 apiTask := &APITask{} 101 err := apiTask.BuildFromService(&tc.st) 102 So(err, ShouldBeNil) 103 err = apiTask.BuildFromService("url") 104 So(err, ShouldBeNil) 105 So(apiTask, ShouldResemble, &tc.at) 106 } 107 }) 108 }) 109 }