Files
aego/script/abi/handle_test.go

35 lines
1.1 KiB
Go

package abi
import "testing"
func TestHandleTypes(t *testing.T) {
r := HandleOf("aego/tween.Tween")
back, ok := Parse(r.String())
if !ok || !back.Equal(r) || r.Slots() != 1 || !Plain(r) {
t.Fatalf("round trip %v %v", back, ok)
}
if h, ok := Parse(HandleOf("").String()); !ok || !h.Equal(HandleOf("")) {
t.Fatal("the untyped handle of connect does not round trip")
}
if c, ok := Parse("Curve"); !ok || c.Kind != Curve {
t.Fatal("Curve does not parse")
}
if HandleID("aego/tween.Tween") == HandleID("aego/timer.Timer") || HandleID("") == 0 {
t.Fatal("handle ids must differ and never be zero")
}
tab := NewTable()
if err := tab.AddHandle(HandleDef{Name: "aego/tween.Tween", Await: true}); err != nil {
t.Fatal(err)
}
if err := tab.AddHandle(HandleDef{Name: "tween"}); err == nil {
t.Fatal("a handle name needs a module")
}
if err := tab.AddHandleMethod("aego/tween.Tween", "Done", Sig(T(Bool))); err != nil {
t.Fatal(err)
}
tab.Freeze()
if _, ok := tab.HandleMethod("aego/tween.Tween", "Done"); !ok || len(tab.HandleMethodList()) != 1 {
t.Fatal("handle method lost")
}
}