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) })); }
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)); }
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)); }
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 })); }
/// <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 }); }