Exemplo n.º 1
0
        public void TestClassMetadata()
        {
            MethodInfo method = typeof(ClassMetadataDescribable).GetMethod("GetName");

            var builder = new ClassMetadataBuilder <ClassMetadataDescribable>();
            ITypeMetadata <ClassMetadataDescribable> tmd = builder.SetClass(typeof(ClassMetadataDescribable))
                                                           .SetHash("TestDomain".GetHashCode())
                                                           .SetTypeId(1234)
                                                           .AddAttribute(builder.NewAttribute()
                                                                         .SetIndex(0)
                                                                         .SetName("name")
                                                                         .SetCodec(Codecs.DEFAULT_CODEC)
                                                                         .SetInvocationStrategy(new InvocationStrategies.MethodInvcationStrategy <ClassMetadataDescribable>(method))
                                                                         .SetVersion(0).Build()).Build();

            ITypeMetadata <ClassMetadataDescribable> tmd2 = builder.SetClass(typeof(ClassMetadataDescribable))
                                                            .SetHash("TestDomain".GetHashCode())
                                                            .SetTypeId(1234)
                                                            .AddAttribute(builder.NewAttribute()
                                                                          .SetIndex(0)
                                                                          .SetName("name")
                                                                          .SetCodec(Codecs.DEFAULT_CODEC)
                                                                          .SetInvocationStrategy(new InvocationStrategies.MethodInvcationStrategy <ClassMetadataDescribable>(method))
                                                                          .SetVersion(0).Build()).Build();

            Assert.AreEqual(1234, tmd.GetKey().GetTypeId());
            Assert.IsTrue(tmd.GetKey().GetHash() != 0);
            Assert.IsNotNull(tmd.GetAttribute("name"));
            Assert.AreEqual("name", tmd.GetAttribute("name").GetName());
            Assert.AreEqual(0, tmd.GetAttribute("name").GetIndex());
            Assert.AreEqual(0, tmd.GetAttribute("name").GetVersion());
            Assert.AreEqual(tmd, tmd2);
            Assert.AreEqual(tmd.GetHashCode(), tmd2.GetHashCode());

            ClassMetadataDescribable cmdd = new ClassMetadataDescribable("augusta");

            Assert.AreEqual("augusta", tmd.GetAttribute("name").Get(cmdd));
            tmd.GetAttribute("name").Set(cmdd, "ada");
            Assert.AreEqual("ada", tmd.GetAttribute("name").Get(cmdd));
            Assert.IsInstanceOf(typeof(Codecs.DefaultCodec), tmd.GetAttribute("name").GetCodec());
            Assert.IsTrue(tmd.GetAttributes().MoveNext());
            Assert.IsInstanceOf(typeof(ClassMetadataDescribable), tmd.NewInstance());

            object a = (object)"dasd";
        }
Exemplo n.º 2
0
        public void Builder()
        {
            var builder = new ClassMetadataBuilder <object>();
            ITypeMetadata <object> tmd = builder.SetClass(typeof(object))
                                         .SetHash("TestDomain".GetHashCode())
                                         .SetTypeId(1234)
                                         .AddAttribute(builder.NewAttribute()
                                                       .SetIndex(0)
                                                       .SetName("normal")
                                                       .SetVersion(0).Build()).Build();

            Assert.AreEqual(1234, tmd.GetKey().GetTypeId());
            Assert.IsTrue(tmd.GetKey().GetHash() != 0);
            Assert.IsNotNull(tmd.GetAttribute("normal"));
            Assert.AreEqual("normal", tmd.GetAttribute("normal").GetName());
            Assert.AreEqual(0, tmd.GetAttribute("normal").GetIndex());
            Assert.AreEqual(0, tmd.GetAttribute("normal").GetVersion());
        }