func TestInterfaceSet(t *testing.T) { t.Parallel() cl := air.Echo{Client: capnp.ErrorClient(errors.New("foo"))} _, s, err := capnp.NewMessage(capnp.SingleSegment(nil)) if err != nil { t.Fatal(err) } base, err := air.NewRootEchoBase(s) if err != nil { t.Fatal(err) } base.SetEcho(cl) if base.Echo() != cl { t.Errorf("base.Echo() = %#v; want %#v", base.Echo(), cl) } }
func TestInterfaceCopyToOtherMessage(t *testing.T) { t.Parallel() cl := air.Echo{Client: capnp.ErrorClient(errors.New("foo"))} _, s1, err := capnp.NewMessage(capnp.SingleSegment(nil)) if err != nil { t.Fatal(err) } base1, err := air.NewRootEchoBase(s1) if err != nil { t.Fatal(err) } if err := base1.SetEcho(cl); err != nil { t.Fatal(err) } _, s2, err := capnp.NewMessage(capnp.SingleSegment(nil)) if err != nil { t.Fatal(err) } hoth2, err := air.NewRootHoth(s2) if err != nil { t.Fatal(err) } if err := hoth2.SetBase(base1); err != nil { t.Fatal(err) } if base, err := hoth2.Base(); err != nil { t.Errorf("hoth2.Base() error: %v", err) } else if base.Echo() != cl { t.Errorf("hoth2.Base().Echo() = %#v; want %#v", base.Echo(), cl) } tab2 := s2.Message().CapTable if len(tab2) == 1 { if tab2[0] != cl.Client { t.Errorf("s2.Message().CapTable[0] = %#v; want %#v", tab2[0], cl.Client) } } else { t.Errorf("len(s2.Message().CapTable) = %d; want 1", len(tab2)) } }
func TestInterfaceSetNull(t *testing.T) { t.Parallel() cl := air.Echo{Client: capnp.ErrorClient(errors.New("foo"))} msg, s, err := capnp.NewMessage(capnp.SingleSegment(nil)) if err != nil { t.Fatal(err) } base, err := air.NewRootEchoBase(s) if err != nil { t.Fatal(err) } base.SetEcho(cl) base.SetEcho(air.Echo{}) if e := base.Echo().Client; e != nil { t.Errorf("base.Echo() = %#v; want nil", e) } if len(msg.CapTable) != 1 { t.Errorf("msg.CapTable = %#v; want len = 1", msg.CapTable) } }