context: Move to gotest.tools

Signed-off-by: Christopher Crone <christopher.crone@docker.com>
This commit is contained in:
Christopher Crone 2020-08-04 13:23:23 +02:00 committed by Chris Crone
parent 675af01aff
commit 207b57ba81
2 changed files with 76 additions and 89 deletions

View File

@ -20,15 +20,10 @@ import (
"encoding/json" "encoding/json"
"testing" "testing"
. "github.com/onsi/gomega" "gotest.tools/v3/assert"
"github.com/stretchr/testify/suite"
) )
type ContextTestSuite struct { func TestDockerContextMetadataKeepAdditionalFields(t *testing.T) {
suite.Suite
}
func (suite *ContextTestSuite) TestDockerContextMetadataKeepAdditionalFields() {
c := ContextMetadata{ c := ContextMetadata{
Description: "test", Description: "test",
Type: "aci", Type: "aci",
@ -38,19 +33,14 @@ func (suite *ContextTestSuite) TestDockerContextMetadataKeepAdditionalFields() {
}, },
} }
jsonBytes, err := json.Marshal(c) jsonBytes, err := json.Marshal(c)
Expect(err).To(BeNil()) assert.NilError(t, err)
Expect(string(jsonBytes)).To(Equal(`{"Description":"test","StackOrchestrator":"swarm","Type":"aci","foo":"bar"}`)) assert.Equal(t, string(jsonBytes), `{"Description":"test","StackOrchestrator":"swarm","Type":"aci","foo":"bar"}`)
var c2 ContextMetadata var c2 ContextMetadata
err = json.Unmarshal(jsonBytes, &c2) err = json.Unmarshal(jsonBytes, &c2)
Expect(err).To(BeNil()) assert.NilError(t, err)
Expect(c2.AdditionalFields["foo"]).To(Equal("bar")) assert.Equal(t, c2.AdditionalFields["foo"], "bar")
Expect(c2.Type).To(Equal("aci")) assert.Equal(t, c2.Type, "aci")
Expect(c2.StackOrchestrator).To(Equal("swarm")) assert.Equal(t, c2.StackOrchestrator, "swarm")
Expect(c2.Description).To(Equal("test")) assert.Equal(t, c2.Description, "test")
}
func TestPs(t *testing.T) {
RegisterTestingT(t)
suite.Run(t, new(ContextTestSuite))
} }

View File

@ -22,103 +22,100 @@ import (
"os" "os"
"testing" "testing"
"github.com/stretchr/testify/assert" "gotest.tools/v3/assert"
"github.com/stretchr/testify/require" "gotest.tools/v3/assert/cmp"
"github.com/stretchr/testify/suite"
"github.com/docker/api/errdefs" "github.com/docker/api/errdefs"
) )
type StoreTestSuite struct { func testStore(t *testing.T) Store {
suite.Suite d, err := ioutil.TempDir("", "store")
store Store assert.NilError(t, err)
dir string
t.Cleanup(func() {
_ = os.RemoveAll(d)
})
s, err := New(WithRoot(d))
assert.NilError(t, err)
return s
} }
func (suite *StoreTestSuite) BeforeTest(suiteName, testName string) { func TestCreate(t *testing.T) {
dir, err := ioutil.TempDir("", "store") s := testStore(t)
require.Nil(suite.T(), err) err := s.Create("test", "test", "description", ContextMetadata{})
assert.NilError(t, err)
store, err := New(WithRoot(dir)) err = s.Create("test", "test", "descrsiption", ContextMetadata{})
require.Nil(suite.T(), err) assert.Error(t, err, `context "test": already exists`)
assert.Assert(t, errdefs.IsAlreadyExistsError(err))
suite.dir = dir
suite.store = store
} }
func (suite *StoreTestSuite) AfterTest(suiteName, testName string) { func TestGetEndpoint(t *testing.T) {
err := os.RemoveAll(suite.dir) s := testStore(t)
require.Nil(suite.T(), err) err := s.Create("aci", "aci", "description", AciContext{
}
func (suite *StoreTestSuite) TestCreate() {
err := suite.store.Create("test", "test", "description", ContextMetadata{})
require.Nil(suite.T(), err)
err = suite.store.Create("test", "test", "descrsiption", ContextMetadata{})
require.EqualError(suite.T(), err, `context "test": already exists`)
require.True(suite.T(), errdefs.IsAlreadyExistsError(err))
}
func (suite *StoreTestSuite) TestGetEndpoint() {
err := suite.store.Create("aci", "aci", "description", AciContext{
Location: "eu", Location: "eu",
}) })
require.Nil(suite.T(), err) assert.NilError(t, err)
var ctx AciContext var ctx AciContext
err = suite.store.GetEndpoint("aci", &ctx) err = s.GetEndpoint("aci", &ctx)
assert.Equal(suite.T(), nil, err) assert.NilError(t, err)
assert.Equal(suite.T(), "eu", ctx.Location) assert.Equal(t, ctx.Location, "eu")
var exampleCtx ExampleContext var exampleCtx ExampleContext
err = suite.store.GetEndpoint("aci", &exampleCtx) err = s.GetEndpoint("aci", &exampleCtx)
assert.EqualError(suite.T(), err, "wrong context type") assert.Error(t, err, "wrong context type")
} }
func (suite *StoreTestSuite) TestGetUnknown() { func TestGetUnknown(t *testing.T) {
meta, err := suite.store.Get("unknown") s := testStore(t)
require.Nil(suite.T(), meta) meta, err := s.Get("unknown")
require.EqualError(suite.T(), err, `context "unknown": not found`) assert.Assert(t, cmp.Nil(meta))
require.True(suite.T(), errdefs.IsNotFoundError(err)) assert.Error(t, err, `context "unknown": not found`)
assert.Assert(t, errdefs.IsNotFoundError(err))
} }
func (suite *StoreTestSuite) TestGet() { func TestGet(t *testing.T) {
err := suite.store.Create("test", "type", "description", ContextMetadata{}) s := testStore(t)
require.Nil(suite.T(), err) err := s.Create("test", "type", "description", ContextMetadata{})
assert.NilError(t, err)
meta, err := suite.store.Get("test") meta, err := s.Get("test")
require.Nil(suite.T(), err) assert.NilError(t, err)
require.NotNil(suite.T(), meta) assert.Assert(t, meta != nil)
require.Equal(suite.T(), "test", meta.Name) var m DockerContext
if meta != nil {
m = *meta
}
require.Equal(suite.T(), "description", meta.Metadata.Description) assert.Equal(t, m.Name, "test")
require.Equal(suite.T(), "type", meta.Type()) assert.Equal(t, m.Metadata.Description, "description")
assert.Equal(t, m.Type(), "type")
} }
func (suite *StoreTestSuite) TestRemoveNotFound() { func TestRemoveNotFound(t *testing.T) {
err := suite.store.Remove("notfound") s := testStore(t)
require.EqualError(suite.T(), err, `context "notfound": not found`) err := s.Remove("notfound")
require.True(suite.T(), errdefs.IsNotFoundError(err)) assert.Error(t, err, `context "notfound": not found`)
assert.Assert(t, errdefs.IsNotFoundError(err))
} }
func (suite *StoreTestSuite) TestRemove() { func TestRemove(t *testing.T) {
err := suite.store.Create("testremove", "type", "description", ContextMetadata{}) s := testStore(t)
require.Nil(suite.T(), err) err := s.Create("testremove", "type", "description", ContextMetadata{})
assert.NilError(t, err)
meta, err := suite.store.Get("testremove") meta, err := s.Get("testremove")
require.Nil(suite.T(), err) assert.NilError(t, err)
require.NotNil(suite.T(), meta) assert.Assert(t, meta != nil)
err = suite.store.Remove("testremove") err = s.Remove("testremove")
require.Nil(suite.T(), err) assert.NilError(t, err)
meta, err = suite.store.Get("testremove") meta, err = s.Get("testremove")
require.EqualError(suite.T(), err, `context "testremove": not found`) assert.Error(t, err, `context "testremove": not found`)
require.Nil(suite.T(), meta) assert.Assert(t, cmp.Nil(meta))
} }
func TestExampleTestSuite(t *testing.T) {
suite.Run(t, new(StoreTestSuite))
}