126 lines
3 KiB
Go
126 lines
3 KiB
Go
package datastore
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/drone/drone/model"
|
|
"github.com/franela/goblin"
|
|
)
|
|
|
|
func TestAgents(t *testing.T) {
|
|
db := openTest()
|
|
defer db.Close()
|
|
s := From(db)
|
|
|
|
g := goblin.Goblin(t)
|
|
g.Describe("Agents", func() {
|
|
|
|
// before each test be sure to purge the package
|
|
// table data from the database.
|
|
g.BeforeEach(func() {
|
|
db.Exec("DELETE FROM agents")
|
|
})
|
|
|
|
g.It("Should update", func() {
|
|
agent := model.Agent{
|
|
Address: "127.0.0.1",
|
|
Platform: "linux/amd64",
|
|
}
|
|
err1 := s.CreateAgent(&agent)
|
|
agent.Platform = "windows/amd64"
|
|
err2 := s.UpdateAgent(&agent)
|
|
|
|
getagent, err3 := s.GetAgent(agent.ID)
|
|
g.Assert(err1 == nil).IsTrue()
|
|
g.Assert(err2 == nil).IsTrue()
|
|
g.Assert(err3 == nil).IsTrue()
|
|
g.Assert(agent.ID).Equal(getagent.ID)
|
|
g.Assert(agent.Platform).Equal(getagent.Platform)
|
|
})
|
|
|
|
g.It("Should create", func() {
|
|
agent := model.Agent{
|
|
Address: "127.0.0.1",
|
|
Platform: "linux/amd64",
|
|
}
|
|
err := s.CreateAgent(&agent)
|
|
g.Assert(err == nil).IsTrue()
|
|
g.Assert(agent.ID != 0).IsTrue()
|
|
})
|
|
|
|
g.It("Should get by ID", func() {
|
|
agent := model.Agent{
|
|
Address: "127.0.0.1",
|
|
Platform: "linux/amd64",
|
|
}
|
|
|
|
s.CreateAgent(&agent)
|
|
getagent, err := s.GetAgent(agent.ID)
|
|
g.Assert(err == nil).IsTrue()
|
|
g.Assert(agent.ID).Equal(getagent.ID)
|
|
g.Assert(agent.Address).Equal(getagent.Address)
|
|
g.Assert(agent.Platform).Equal(getagent.Platform)
|
|
})
|
|
|
|
g.It("Should get by IP address", func() {
|
|
agent := model.Agent{
|
|
Address: "127.0.0.1",
|
|
Platform: "linux/amd64",
|
|
}
|
|
s.CreateAgent(&agent)
|
|
getagent, err := s.GetAgentAddr(agent.Address)
|
|
g.Assert(err == nil).IsTrue()
|
|
g.Assert(agent.ID).Equal(getagent.ID)
|
|
g.Assert(agent.Address).Equal(getagent.Address)
|
|
g.Assert(agent.Platform).Equal(getagent.Platform)
|
|
})
|
|
|
|
g.It("Should enforce unique IP address", func() {
|
|
agent1 := model.Agent{
|
|
Address: "127.0.0.1",
|
|
Platform: "linux/amd64",
|
|
}
|
|
agent2 := model.Agent{
|
|
Address: "127.0.0.1",
|
|
Platform: "linux/amd64",
|
|
}
|
|
err1 := s.CreateAgent(&agent1)
|
|
err2 := s.CreateAgent(&agent2)
|
|
g.Assert(err1 == nil).IsTrue()
|
|
g.Assert(err2 == nil).IsFalse()
|
|
})
|
|
|
|
g.It("Should list", func() {
|
|
agent1 := model.Agent{
|
|
Address: "127.0.0.1",
|
|
Platform: "linux/amd64",
|
|
}
|
|
agent2 := model.Agent{
|
|
Address: "localhost",
|
|
Platform: "linux/amd64",
|
|
}
|
|
s.CreateAgent(&agent1)
|
|
s.CreateAgent(&agent2)
|
|
agents, err := s.GetAgentList()
|
|
g.Assert(err == nil).IsTrue()
|
|
g.Assert(len(agents)).Equal(2)
|
|
g.Assert(agents[0].Address).Equal(agent1.Address)
|
|
g.Assert(agents[0].Platform).Equal(agent1.Platform)
|
|
})
|
|
|
|
// g.It("Should delete", func() {
|
|
// user := model.User{
|
|
// Login: "joe",
|
|
// Email: "foo@bar.com",
|
|
// Token: "e42080dddf012c718e476da161d21ad5",
|
|
// }
|
|
// s.CreateUser(&user)
|
|
// _, err1 := s.GetUser(user.ID)
|
|
// err2 := s.DeleteUser(&user)
|
|
// _, err3 := s.GetUser(user.ID)
|
|
// g.Assert(err1 == nil).IsTrue()
|
|
// g.Assert(err2 == nil).IsTrue()
|
|
// g.Assert(err3 == nil).IsFalse()
|
|
// })
|
|
})
|
|
}
|