New set of Unit Tests for Build, based on 0.4.0

This commit is contained in:
Daniel Oliveira 2015-05-14 23:31:18 -06:00
parent db02db06f1
commit a698810847

View file

@ -1,6 +1,7 @@
package builtin package builtin
import ( import (
//"fmt"
"github.com/drone/drone/common" "github.com/drone/drone/common"
"github.com/franela/goblin" "github.com/franela/goblin"
"testing" "testing"
@ -21,55 +22,8 @@ func TestBuildstore(t *testing.T) {
db.Exec("DELETE FROM commits") db.Exec("DELETE FROM commits")
}) })
g.It("NewBuildstore()", func() { g.It("Should update an existing build in the datastore", func() {
//Add build buildList := []*common.Build{
build := common.Build{
ID: 1,
CommitID: 1,
State: "success",
}
err1 := bs.SetBuild(&build)
g.Assert(err1 == nil).IsTrue()
})
g.It("Build()", func() {
build_list := []*common.Build{
&common.Build{
//ID: 1,
CommitID: 1,
State: "success",
ExitCode: 0,
Sequence: 1,
},
&common.Build{
//ID: 2,
CommitID: 3,
State: "error",
ExitCode: 1,
Sequence: 2,
},
}
//In order for buid to be populated,
//The AddCommit command will insert builds
//if the Commit.Builds array is populated
//Add Commit.
commit1 := common.Commit{
RepoID: 1,
State: common.StateSuccess,
Ref: "refs/heads/master",
Sha: "14710626f22791619d3b7e9ccf58b10374e5b76d",
Builds: build_list,
}
//
err1 := cs.AddCommit(&commit1)
g.Assert(err1 == nil).IsTrue()
build, err2 := bs.Build(1)
g.Assert(err2 == nil).IsTrue()
g.Assert(build.ID == 1).IsTrue()
})
g.It("BuildSeq()", func() {
build_list := []*common.Build{
&common.Build{ &common.Build{
CommitID: 1, CommitID: 1,
State: "success", State: "success",
@ -92,19 +46,102 @@ func TestBuildstore(t *testing.T) {
State: common.StateSuccess, State: common.StateSuccess,
Ref: "refs/heads/master", Ref: "refs/heads/master",
Sha: "14710626f22791619d3b7e9ccf58b10374e5b76d", Sha: "14710626f22791619d3b7e9ccf58b10374e5b76d",
Builds: build_list, Builds: buildList,
} }
// //Add commit, build, retrieve 2nd, update it and recheck it.
err1 := cs.AddCommit(&commit1) err1 := cs.AddCommit(&commit1)
g.Assert(err1 == nil).IsTrue() g.Assert(err1 == nil).IsTrue()
build, err2 := bs.BuildSeq(&commit1, 2) g.Assert(commit1.ID != 0).IsTrue()
g.Assert(commit1.Sequence).Equal(1)
//
build, err2 := bs.Build(commit1.Builds[1].ID)
g.Assert(err2 == nil).IsTrue() g.Assert(err2 == nil).IsTrue()
g.Assert(build.Sequence == 2).IsTrue() g.Assert(build.ID).Equal(commit1.Builds[1].ID)
build.State = common.StatePending
err1 = bs.SetBuild(build)
g.Assert(err1 == nil).IsTrue()
build, err2 = bs.Build(commit1.Builds[1].ID)
g.Assert(build.ID).Equal(commit1.Builds[1].ID)
g.Assert(build.State).Equal(common.StatePending)
}) })
g.It("BuildList()", func() { g.It("Should return a build by ID", func() {
buildList := []*common.Build{
&common.Build{
CommitID: 1,
State: "success",
ExitCode: 0,
Sequence: 1,
},
&common.Build{
CommitID: 3,
State: "error",
ExitCode: 1,
Sequence: 2,
},
}
//In order for buid to be populated,
//The AddCommit command will insert builds
//if the Commit.Builds array is populated
//Add Commit.
commit1 := common.Commit{
RepoID: 1,
State: common.StateSuccess,
Ref: "refs/heads/master",
Sha: "14710626f22791619d3b7e9ccf58b10374e5b76d",
Builds: buildList,
}
//Add commit, build, retrieve 2nd build ID.
err1 := cs.AddCommit(&commit1)
g.Assert(err1 == nil).IsTrue()
g.Assert(commit1.ID != 0).IsTrue()
g.Assert(commit1.Sequence).Equal(1)
//
build, err2 := bs.Build(commit1.Builds[1].ID)
g.Assert(err2 == nil).IsTrue()
g.Assert(build.ID).Equal(commit1.Builds[1].ID)
})
g.It("Should return a build by Sequence", func() {
buildList := []*common.Build{
&common.Build{
CommitID: 1,
State: "success",
ExitCode: 0,
Sequence: 1,
},
&common.Build{
CommitID: 3,
State: "error",
ExitCode: 1,
Sequence: 2,
},
}
//In order for buid to be populated,
//The AddCommit command will insert builds
//if the Commit.Builds array is populated
//Add Commit.
commit1 := common.Commit{
RepoID: 1,
State: common.StateSuccess,
Ref: "refs/heads/master",
Sha: "14710626f22791619d3b7e9ccf58b10374e5b76d",
Builds: buildList,
}
//Add commit, build, retrieve 2nd build ID.
err1 := cs.AddCommit(&commit1)
g.Assert(err1 == nil).IsTrue()
g.Assert(commit1.ID != 0).IsTrue()
g.Assert(commit1.Sequence).Equal(1)
//
build, err2 := bs.BuildSeq(&commit1, commit1.Builds[1].Sequence)
g.Assert(err2 == nil).IsTrue()
g.Assert(build.Sequence).Equal(commit1.Builds[1].Sequence)
})
g.It("Should return a list of all commit builds", func() {
//Add repo //Add repo
build_list := []*common.Build{ buildList := []*common.Build{
&common.Build{ &common.Build{
CommitID: 1, CommitID: 1,
State: "success", State: "success",
@ -133,16 +170,16 @@ func TestBuildstore(t *testing.T) {
State: common.StateSuccess, State: common.StateSuccess,
Ref: "refs/heads/master", Ref: "refs/heads/master",
Sha: "14710626f22791619d3b7e9ccf58b10374e5b76d", Sha: "14710626f22791619d3b7e9ccf58b10374e5b76d",
Builds: build_list, Builds: buildList,
} }
// //
err1 := cs.AddCommit(&commit1) err1 := cs.AddCommit(&commit1)
g.Assert(err1 == nil).IsTrue() g.Assert(err1 == nil).IsTrue()
buildList, err2 := bs.BuildList(&commit1) bldList, err2 := bs.BuildList(&commit1)
g.Assert(err2 == nil).IsTrue() g.Assert(err2 == nil).IsTrue()
g.Assert(len(buildList)).Equal(3) g.Assert(len(bldList)).Equal(3)
g.Assert(build_list[0].Sequence).Equal(1) g.Assert(bldList[0].Sequence).Equal(1)
g.Assert(build_list[0].State).Equal(common.StateSuccess) g.Assert(bldList[0].State).Equal(common.StateSuccess)
}) })
}) })
} }