Ejemplo n.º 1
0
        public void CollectPropertyType_DoesNotCollectNonEnumTypes()
        {
            var enumSerializer = new ExtensibleEnumSerializerDecorator(MockRepository.GenerateStub <IEnumSerializer>());

            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.Int32Property));

            Assert.That(enumSerializer.EnumTypes, Is.Empty);
        }
Ejemplo n.º 2
0
        public void CollectPropertyType_CollectsExtensibleEnumType()
        {
            var enumSerializer = new ExtensibleEnumSerializerDecorator(MockRepository.GenerateStub <IEnumSerializer>());

            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.ExtensibleEnumProperty));

            Assert.That(enumSerializer.EnumTypes, Contains.Item(typeof(Color)));
        }
Ejemplo n.º 3
0
        public void CollectPropertyType_DoesNotCollectDuplicates()
        {
            var enumSerializer = new ExtensibleEnumSerializerDecorator(MockRepository.GenerateStub <IEnumSerializer>());

            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.ExtensibleEnumProperty));
            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.ExtensibleEnumProperty));

            Assert.That(enumSerializer.EnumTypes.Count, Is.EqualTo(1));
        }
Ejemplo n.º 4
0
        public void CollectPropertyType_DelegatesOtherTypesToInnerEnumSerializer()
        {
            var enumSerializerStub = MockRepository.GenerateStub <IEnumSerializer>();
            var enumSerializer     = new ExtensibleEnumSerializerDecorator(enumSerializerStub);
            var expectedProperty   = GetPropertyDefinition((ClassWithAllDataTypes _) => _.ByteProperty);

            enumSerializer.CollectPropertyType(expectedProperty);

            enumSerializerStub.AssertWasCalled(_ => _.CollectPropertyType(expectedProperty));
        }
Ejemplo n.º 5
0
        public void Serialize_CreatesEnumTypeElement()
        {
            var enumSerializerStub = MockRepository.GenerateStub <IEnumSerializer>();
            var enumSerializer     = new ExtensibleEnumSerializerDecorator(enumSerializerStub);

            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.ExtensibleEnumProperty));
            enumSerializerStub.Stub(_ => _.Serialize()).Return(new XElement[0]);
            var actual = enumSerializer.Serialize().Single();

            Assert.That(actual.Name.LocalName, Is.EqualTo("enumType"));
        }
Ejemplo n.º 6
0
        public void Serialize_AddsElementsFromInnerEnumSerializer()
        {
            var enumSerializerStub = MockRepository.GenerateStub <IEnumSerializer>();
            var enumSerializer     = new ExtensibleEnumSerializerDecorator(enumSerializerStub);

            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.ExtensibleEnumProperty));

            enumSerializerStub.Stub(_ => _.Serialize()).Return(new[] { new XElement("innerResult1"), new XElement("innerResult2") });

            var actual = enumSerializer.Serialize();

            Assert.That(actual.Select(e => e.Name.LocalName), Is.EqualTo(new[] { "enumType", "innerResult1", "innerResult2" }));
        }
Ejemplo n.º 7
0
        public void Serialize_AddsTypeAttribute()
        {
            var enumSerializerStub = MockRepository.GenerateStub <IEnumSerializer>();
            var enumSerializer     = new ExtensibleEnumSerializerDecorator(enumSerializerStub);

            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.ExtensibleEnumProperty));

            enumSerializerStub.Stub(_ => _.Serialize()).Return(new XElement[0]);
            var actual = enumSerializer.Serialize().Single();

            Assert.That(actual.Attributes().Select(a => a.Name.LocalName), Contains.Item("type"));
            Assert.That(
                actual.Attribute("type").Value,
                Is.EqualTo("Remotion.Data.DomainObjects.UnitTests.Persistence.Rdbms.SchemaGenerationTestDomain.Color, Remotion.Data.DomainObjects.UnitTests"));
        }
Ejemplo n.º 8
0
        public void Serialize_AddsValueElementsForExtensibleEnumType()
        {
            var enumSerializerStub = MockRepository.GenerateStub <IEnumSerializer>();
            var enumSerializer     = new ExtensibleEnumSerializerDecorator(enumSerializerStub);

            enumSerializer.CollectPropertyType(GetPropertyDefinition((ClassWithAllDataTypes _) => _.ExtensibleEnumProperty));
            enumSerializerStub.Stub(_ => _.Serialize()).Return(new XElement[0]);
            var actual = enumSerializer.Serialize().Single();

            Assert.That(actual.Elements().Count(), Is.EqualTo(3));

            var firstValueElement = actual.Elements().ElementAt(0);

            Assert.That(firstValueElement.Name.LocalName, Is.EqualTo("value"));
            Assert.That(firstValueElement.Attributes().Select(a => a.Name.LocalName), Contains.Item("name"));
            Assert.That(firstValueElement.Attribute("name").Value, Is.EqualTo("Blue"));
            Assert.That(firstValueElement.Attributes().Select(a => a.Name.LocalName), Contains.Item("columnValue"));
            Assert.That(
                firstValueElement.Attribute("columnValue").Value,
                Is.EqualTo("Remotion.Data.DomainObjects.UnitTests.Persistence.Rdbms.SchemaGenerationTestDomain.ColorExtensions.Blue"));

            var secondValueElement = actual.Elements().ElementAt(1);

            Assert.That(secondValueElement.Name.LocalName, Is.EqualTo("value"));
            Assert.That(secondValueElement.Attributes().Select(a => a.Name.LocalName), Contains.Item("name"));
            Assert.That(secondValueElement.Attribute("name").Value, Is.EqualTo("Green"));
            Assert.That(secondValueElement.Attributes().Select(a => a.Name.LocalName), Contains.Item("columnValue"));
            Assert.That(
                secondValueElement.Attribute("columnValue").Value,
                Is.EqualTo("Remotion.Data.DomainObjects.UnitTests.Persistence.Rdbms.SchemaGenerationTestDomain.ColorExtensions.Green"));

            var thirdValueElement = actual.Elements().ElementAt(2);

            Assert.That(thirdValueElement.Name.LocalName, Is.EqualTo("value"));
            Assert.That(thirdValueElement.Attributes().Select(a => a.Name.LocalName), Contains.Item("name"));
            Assert.That(thirdValueElement.Attribute("name").Value, Is.EqualTo("Red"));
            Assert.That(thirdValueElement.Attributes().Select(a => a.Name.LocalName), Contains.Item("columnValue"));
            Assert.That(
                thirdValueElement.Attribute("columnValue").Value,
                Is.EqualTo("Remotion.Data.DomainObjects.UnitTests.Persistence.Rdbms.SchemaGenerationTestDomain.ColorExtensions.Red"));
        }