godog/internal/storage/storage_test.go
MBow 5414f3c5da update gherkin-go to v19.0.3
update messages-go to v16.0.1
bump gomod version
comment on log line in std os.Stderr
examples to non rc version
go mod tidy
update circle (tbd)
2021-06-28 17:19:43 +01:00

199 строки
4,2 КиБ
Go

package storage_test
import (
"testing"
"time"
"github.com/cucumber/messages-go/v16"
"github.com/stretchr/testify/assert"
"github.com/cucumber/godog/internal/models"
"github.com/cucumber/godog/internal/storage"
"github.com/cucumber/godog/internal/testutils"
)
func Test_MustGetPickle(t *testing.T) {
s := storage.NewStorage()
ft := testutils.BuildTestFeature(t)
expected := ft.Pickles[0]
s.MustInsertPickle(expected)
actual := s.MustGetPickle(expected.Id)
assert.Equal(t, expected, actual)
}
func Test_MustGetPickles(t *testing.T) {
s := storage.NewStorage()
ft := testutils.BuildTestFeature(t)
expected := ft.Pickles
for _, pickle := range expected {
s.MustInsertPickle(pickle)
}
actual := s.MustGetPickles(ft.Uri)
assert.Equal(t, expected, actual)
}
func Test_MustGetPickleStep(t *testing.T) {
s := storage.NewStorage()
ft := testutils.BuildTestFeature(t)
for _, pickle := range ft.Pickles {
s.MustInsertPickle(pickle)
}
for _, pickle := range ft.Pickles {
for _, expected := range pickle.Steps {
actual := s.MustGetPickleStep(expected.Id)
assert.Equal(t, expected, actual)
}
}
}
func Test_MustGetTestRunStarted(t *testing.T) {
s := storage.NewStorage()
expected := models.TestRunStarted{StartedAt: time.Now()}
s.MustInsertTestRunStarted(expected)
actual := s.MustGetTestRunStarted()
assert.Equal(t, expected, actual)
}
func Test_MustGetPickleResult(t *testing.T) {
s := storage.NewStorage()
const pickleID = "1"
expected := models.PickleResult{PickleID: pickleID}
s.MustInsertPickleResult(expected)
actual := s.MustGetPickleResult(pickleID)
assert.Equal(t, expected, actual)
}
func Test_MustGetPickleResults(t *testing.T) {
s := storage.NewStorage()
expected := []models.PickleResult{{PickleID: "1"}, {PickleID: "2"}}
for _, pr := range expected {
s.MustInsertPickleResult(pr)
}
actual := s.MustGetPickleResults()
assert.Equal(t, expected, actual)
}
func Test_MustGetPickleStepResult(t *testing.T) {
s := storage.NewStorage()
const pickleID = "1"
const stepID = "2"
expected := models.PickleStepResult{
Status: models.Passed,
PickleID: pickleID,
PickleStepID: stepID,
}
s.MustInsertPickleStepResult(expected)
actual := s.MustGetPickleStepResult(stepID)
assert.Equal(t, expected, actual)
}
func Test_MustGetPickleStepResultsByPickleID(t *testing.T) {
s := storage.NewStorage()
const pickleID = "p1"
expected := []models.PickleStepResult{
{
Status: models.Passed,
PickleID: pickleID,
PickleStepID: "s1",
},
{
Status: models.Passed,
PickleID: pickleID,
PickleStepID: "s2",
},
}
for _, psr := range expected {
s.MustInsertPickleStepResult(psr)
}
actual := s.MustGetPickleStepResultsByPickleID(pickleID)
assert.Equal(t, expected, actual)
}
func Test_MustGetPickleStepResultsByStatus(t *testing.T) {
s := storage.NewStorage()
const pickleID = "p1"
expected := []models.PickleStepResult{
{
Status: models.Passed,
PickleID: pickleID,
PickleStepID: "s1",
},
}
testdata := []models.PickleStepResult{
expected[0],
{
Status: models.Failed,
PickleID: pickleID,
PickleStepID: "s2",
},
}
for _, psr := range testdata {
s.MustInsertPickleStepResult(psr)
}
actual := s.MustGetPickleStepResultsByStatus(models.Passed)
assert.Equal(t, expected, actual)
}
func Test_MustGetFeature(t *testing.T) {
s := storage.NewStorage()
const uri = "<uri>"
expected := &models.Feature{GherkinDocument: &messages.GherkinDocument{Uri: uri}}
s.MustInsertFeature(expected)
actual := s.MustGetFeature(uri)
assert.Equal(t, expected, actual)
}
func Test_MustGetFeatures(t *testing.T) {
s := storage.NewStorage()
expected := []*models.Feature{
{GherkinDocument: &messages.GherkinDocument{Uri: "uri1"}},
{GherkinDocument: &messages.GherkinDocument{Uri: "uri2"}},
}
for _, f := range expected {
s.MustInsertFeature(f)
}
actual := s.MustGetFeatures()
assert.Equal(t, expected, actual)
}
func Test_MustGetStepDefintionMatch(t *testing.T) {
s := storage.NewStorage()
const stepID = "<step_id>"
expected := &models.StepDefinition{}
s.MustInsertStepDefintionMatch(stepID, expected)
actual := s.MustGetStepDefintionMatch(stepID)
assert.Equal(t, expected, actual)
}