public void AddClassType()
        {
            _serializer.AddClassType(typeof(DateTime));

            var deserializer = new AttributeClassContextDeserializer(_serializer.Values);

            Assert.That(deserializer.GetClassType(), Is.EqualTo(typeof(DateTime)));
        }
        public void AddComposedInterfaces()
        {
            _serializer.AddComposedInterfaces(new[] { typeof(int), typeof(string) });

            var deserializer = new AttributeClassContextDeserializer(_serializer.Values);

            Assert.That(deserializer.GetComposedInterfaces(), Is.EqualTo(new[] { typeof(int), typeof(string) }));
        }
Ejemplo n.º 3
0
        public void FromClassContextSimple()
        {
            var simpleContext = ClassContextObjectMother.Create(typeof(object), typeof(string));
            ConcreteMixedTypeAttribute attribute = CreateAttribute(simpleContext);

            var deserializer = new AttributeClassContextDeserializer(attribute.ClassContextData);

            Assert.That(ClassContext.Deserialize(deserializer), Is.EqualTo(simpleContext));
        }
Ejemplo n.º 4
0
        public void FromClassContext_MixinKinds()
        {
            ClassContext context = new ClassContextBuilder(typeof(int))
                                   .AddComposedInterface(typeof(uint))
                                   .AddMixin(typeof(string)).OfKind(MixinKind.Extending)
                                   .AddMixin(typeof(double)).OfKind(MixinKind.Used)
                                   .BuildClassContext();

            ConcreteMixedTypeAttribute attribute = CreateAttribute(context);
            var deserializer = new AttributeClassContextDeserializer(attribute.ClassContextData);

            Assert.That(ClassContext.Deserialize(deserializer), Is.EqualTo(context));
        }
Ejemplo n.º 5
0
        public void FromClassContextComplex()
        {
            ClassContext context = new ClassContextBuilder(typeof(int))
                                   .AddComposedInterface(typeof(uint))
                                   .AddMixin(typeof(string)).WithDependency(typeof(bool))
                                   .AddMixin(typeof(double)).WithDependency(typeof(int))
                                   .BuildClassContext();

            ConcreteMixedTypeAttribute attribute = CreateAttribute(context);

            var deserializer = new AttributeClassContextDeserializer(attribute.ClassContextData);

            Assert.That(ClassContext.Deserialize(deserializer), Is.EqualTo(context));
        }
        public void AddMixins()
        {
            var mixinContext1 = MixinContextObjectMother.Create(mixinType: typeof(string), origin: MixinContextOriginObjectMother.Create(assembly: GetType().Assembly));
            var mixinContext2 = MixinContextObjectMother.Create(mixinType: typeof(object));

            _serializer.AddMixins(new[] { mixinContext1, mixinContext2 });

            // Check that the chain of serializers correctly sets up the AttributeMixinContextOriginSerializer
            var serializedMixinContexts       = ((object[])_serializer.Values[1]);
            var serializedMixinContext1       = (object[])serializedMixinContexts[1];
            var serializedMixinOrigin         = (object[])serializedMixinContext1[4];
            var serializedMixinOriginAssembly = serializedMixinOrigin[1];

            Assert.That(serializedMixinOriginAssembly, Is.EqualTo(GetType().Assembly.FullName));

            var deserializer = new AttributeClassContextDeserializer(_serializer.Values);

            Assert.That(deserializer.GetMixins().ToArray(), Is.EqualTo(new[] { mixinContext1, mixinContext2 }));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Gets the class context describing the target type of this attribute.
        /// </summary>
        /// <returns>A deserialized form of <see cref="ClassContextData"/>.</returns>
        public ClassContext GetClassContext()
        {
            var deserializer = new AttributeClassContextDeserializer(ClassContextData);

            return(ClassContext.Deserialize(deserializer));
        }
 public void SetUp()
 {
     _serializer          = new AttributeClassContextSerializer();
     _invalidDeserializer = new AttributeClassContextDeserializer(new object[] { 1, 2, 3 });
 }