void TestBinaryStream::TestObject() { Registry R; R.AddClass<int>("int"); BinaryStream S; S.SetRegistry(&R); Pointer<int> N = R.New(42); S << N; Object Q; S >> Q; KAI_TEST_FALSE(S.CanRead(1)); KAI_TEST_EQUIV(Q.GetTypeNumber(), Type::Traits<int>::Number); KAI_TEST_EQUIV(ConstDeref<int>(Q), 42); S.Clear(); KAI_TEST_TRUE(S.Empty()); N.Set("child0", R.New(123)); S << N; Object M; S >> M; KAI_TEST_FALSE(S.CanRead(1)); KAI_TEST_EQUIV(ConstDeref<int>(M), 42); KAI_TEST_TRUE(M.Has("child0")); KAI_TEST_EQUIV(ConstDeref<int>(M.Get("child0")), 123); }