Files
dolt/nomdl/codegen/test/struct_with_imports_test.go
Chris Masone 56cd548328 Support compounding types with imported types.
Sets, Lists, Refs and Maps of imported types work now.

This PR also factors some of codegen.go into a separate package, to slim down
that file a bit.

Towards issue #294
2015-10-12 15:29:45 -07:00

53 lines
1.4 KiB
Go

package test
import (
"testing"
"github.com/attic-labs/noms/Godeps/_workspace/src/github.com/stretchr/testify/assert"
leaf "github.com/attic-labs/noms/nomdl/codegen/test/gen/sha1_f1a192312c01fb47e8e329471242e475eb7001a4"
dep "github.com/attic-labs/noms/nomdl/codegen/test/gen/sha1_f9397427926127f67d8f3edb21c92bf642262e9b"
)
func TestWithImportsDef(t *testing.T) {
assert := assert.New(t)
def := ImportUserDef{
ImportedStruct: dep.DDef{
StructField: leaf.SDef{S: "hi", B: true},
EnumField: leaf.E2,
},
Enum: E1,
}
st := def.New()
def2 := st.Def()
st2 := def.New()
assert.Equal(def, def2)
assert.True(st.Equals(st2))
ds := dep.NewD().SetStructField(leaf.NewS().SetS("hi").SetB(true)).SetEnumField(leaf.E2)
st3 := NewImportUser()
st3 = st3.SetImportedStruct(ds).SetEnum(E1)
assert.True(st.Equals(st3))
ddef := st3.ImportedStruct().Def()
assert.Equal("hi", ddef.StructField.S)
assert.Equal(true, ddef.StructField.B)
assert.Equal(leaf.E2, ddef.EnumField)
}
func TestListOfImportsDef(t *testing.T) {
assert := assert.New(t)
lDef := ListOfsha1_f9397427926127f67d8f3edb21c92bf642262e9b_DDef{
dep.DDef{EnumField: leaf.E3},
dep.DDef{EnumField: leaf.E2},
dep.DDef{EnumField: leaf.E1},
}
l := lDef.New()
assert.EqualValues(3, l.Len())
assert.EqualValues(leaf.E3, l.Get(0).EnumField())
assert.EqualValues(leaf.E2, l.Get(1).EnumField())
assert.EqualValues(leaf.E1, l.Get(2).EnumField())
}