Files
dolt/nomdl/codegen/test/enum_struct_test.go
Erik Arvidsson 9cb7596409 NomDL: Make NomsValue a Value
This means that when we ReadValue we can now return a NomsValue

Towards #281
2015-10-06 16:38:11 -07:00

46 lines
905 B
Go

package test
import (
"testing"
"github.com/attic-labs/noms/Godeps/_workspace/src/github.com/stretchr/testify/assert"
"github.com/attic-labs/noms/chunks"
"github.com/attic-labs/noms/types"
)
func TestEnum(t *testing.T) {
assert := assert.New(t)
def := EnumStructDef{Right}
st := def.New()
def2 := st.Def()
st2 := def.New()
assert.Equal(def, def2)
assert.True(st.Equals(st2))
st3 := NewEnumStruct()
assert.Equal(Right, st3.Hand())
st3 = st3.SetHand(Left)
assert.Equal(Left, st3.Hand())
}
func TestEnumValue(t *testing.T) {
assert := assert.New(t)
def := EnumStructDef{Switch}
st := def.New()
val := st.NomsValue()
st2 := EnumStructFromVal(val)
assert.True(st.Equals(st2))
}
func TestEnumIsValue(t *testing.T) {
cs := chunks.NewMemoryStore()
var v types.Value = NewEnumStruct()
ref := types.WriteValue(v, cs)
v2 := types.ReadValue(ref, cs)
assert.True(t, v.Equals(v2))
}