18 lines
775 B
Go
18 lines
775 B
Go
package world
|
|
|
|
import "testing"
|
|
|
|
func TestValueTypeSpecValidatesTypedRecursiveShape(t *testing.T) {
|
|
spec := ValueTypeSpec{Kind: ValueStruct, Fields: []ValueField{{Name: "name", Type: ValueTypeSpec{Kind: ValueString}}, {Name: "refs", Type: ValueTypeSpec{Kind: ValueList, Element: &ValueTypeSpec{Kind: ValueReference, ReferenceKind: "world.object"}}}}}
|
|
if err := spec.Validate(); err != nil {
|
|
t.Fatalf("ValueTypeSpec.Validate() = %v", err)
|
|
}
|
|
}
|
|
|
|
func TestValueTypeSpecRejectsDuplicateFields(t *testing.T) {
|
|
spec := ValueTypeSpec{Kind: ValueStruct, Fields: []ValueField{{Name: "same", Type: ValueTypeSpec{Kind: ValueString}}, {Name: "same", Type: ValueTypeSpec{Kind: ValueString}}}}
|
|
if err := spec.Validate(); err == nil {
|
|
t.Fatal("duplicate fields were accepted")
|
|
}
|
|
}
|