repogen/internal/spec/models_test.go

71 lines
1.4 KiB
Go

package spec_test
import (
"testing"
"github.com/sunboyy/repogen/internal/spec"
)
type OperationTestCase struct {
Operation spec.Operation
ExpectedName string
}
func TestOperationName(t *testing.T) {
testTable := []OperationTestCase{
{
Operation: spec.InsertOperation{},
ExpectedName: "Insert",
},
{
Operation: spec.FindOperation{},
ExpectedName: "Find",
},
{
Operation: spec.UpdateOperation{},
ExpectedName: "Update",
},
{
Operation: spec.DeleteOperation{},
ExpectedName: "Delete",
},
{
Operation: spec.CountOperation{},
ExpectedName: "Count",
},
}
for _, testCase := range testTable {
t.Run(testCase.ExpectedName, func(t *testing.T) {
if testCase.Operation.Name() != testCase.ExpectedName {
t.Errorf("Expected = %v\nReceived = %v", testCase.ExpectedName, testCase.Operation.Name())
}
})
}
}
type UpdateTypeTestCase struct {
Update spec.Update
ExpectedName string
}
func TestUpdateTypeName(t *testing.T) {
testTable := []UpdateTypeTestCase{
{
Update: spec.UpdateModel{},
ExpectedName: "Model",
},
{
Update: spec.UpdateFields{},
ExpectedName: "Fields",
},
}
for _, testCase := range testTable {
t.Run(testCase.ExpectedName, func(t *testing.T) {
if testCase.Update.Name() != testCase.ExpectedName {
t.Errorf("Expected = %v\nReceived = %v", testCase.ExpectedName, testCase.Update.Name())
}
})
}
}