Files
dolt/nomdl/codegen/test/struct_recursive_test.go
Erik Arvidsson a4a29fca7b NomDL codegen: Disallow Defs when we get a recursive go struct
go does not allow recursive struct types

Issue #320
2015-09-22 16:53:58 -04:00

47 lines
1.0 KiB
Go

package test
import (
"testing"
"github.com/attic-labs/noms/Godeps/_workspace/src/github.com/stretchr/testify/assert"
)
func TestStructRecursiveChildren(t *testing.T) {
assert := assert.New(t)
root := TreeDef{
Children: []TreeDef{
TreeDef{},
TreeDef{
Children: []TreeDef{
TreeDef{},
},
},
},
}.New()
assert.Equal(uint64(2), root.Children().Len())
assert.Equal(uint64(0), root.Children().Get(0).Children().Len())
assert.Equal(uint64(1), root.Children().Get(1).Children().Len())
}
func TestStructRecursiveParent(t *testing.T) {
assert := assert.New(t)
root := NewTreeWithParent().SetChildren(
NewListOfTreeWithParent().Append(
NewTreeWithParent(),
NewTreeWithParent().SetChildren(
NewListOfTreeWithParent().Append(
NewTreeWithParent(),
),
),
),
)
// Cannot set the Parent in an immutable tree ;-)
assert.Equal(uint64(2), root.Children().Len())
assert.Equal(uint64(0), root.Children().Get(0).Children().Len())
assert.Equal(uint64(1), root.Children().Get(1).Children().Len())
}