github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/model/version_history_test.go (about) 1 package model 2 3 import ( 4 "testing" 5 6 "github.com/evergreen-ci/evergreen" 7 "github.com/evergreen-ci/evergreen/db" 8 "github.com/evergreen-ci/evergreen/model/build" 9 "github.com/evergreen-ci/evergreen/model/version" 10 . "github.com/smartystreets/goconvey/convey" 11 ) 12 13 func init() { 14 db.SetGlobalSessionProvider(db.SessionFactoryFromConfig(taskQueueTestConf)) 15 } 16 17 func TestFindLastPassingVersionForBuildVariants(t *testing.T) { 18 Convey("works", t, func() { 19 So(db.Clear(TaskQueuesCollection), ShouldBeNil) 20 21 project := "MyProject" 22 bv1 := "linux" 23 bv2 := "windows" 24 projectObj := Project{ 25 Identifier: project, 26 } 27 28 insertVersion("1", 1, project) 29 insertVersion("2", 2, project) 30 insertVersion("3", 3, project) 31 32 insertBuild("1a", project, bv1, evergreen.BuildSucceeded, 1) 33 insertBuild("1b", project, bv2, evergreen.BuildSucceeded, 1) 34 35 insertBuild("2a", project, bv1, evergreen.BuildSucceeded, 2) 36 insertBuild("2b", project, bv2, evergreen.BuildSucceeded, 2) 37 38 insertBuild("3a", project, bv1, evergreen.BuildSucceeded, 3) 39 insertBuild("3b", project, bv2, evergreen.BuildFailed, 3) 40 41 version, err := FindLastPassingVersionForBuildVariants(&projectObj, []string{bv1, bv2}) 42 43 So(err, ShouldBeNil) 44 So(version, ShouldNotBeNil) 45 So(version.Id, ShouldEqual, "2") 46 So(version.RevisionOrderNumber, ShouldEqual, 2) 47 }) 48 } 49 50 func insertBuild(id string, project string, buildVariant string, status string, 51 order int) { 52 b := &build.Build{ 53 Id: id, 54 Project: project, 55 BuildVariant: buildVariant, 56 Status: status, 57 Requester: evergreen.RepotrackerVersionRequester, 58 RevisionOrderNumber: order, 59 } 60 So(b.Insert(), ShouldBeNil) 61 } 62 63 func insertVersion(id string, order int, project string) { 64 v := &version.Version{ 65 Id: id, 66 RevisionOrderNumber: order, 67 Identifier: project, 68 Requester: evergreen.RepotrackerVersionRequester, 69 } 70 So(v.Insert(), ShouldBeNil) 71 }