예제 #1
0
        public static void GetIdentity_of_StorageComplexTypeMapping_returns_expected_value()
        {
            var complexType1     = new ComplexType("CT1", "N", DataSpace.CSpace);
            var complexType2     = new ComplexType("CT2", "N", DataSpace.CSpace);
            var complexType3     = new ComplexType("CT3", "N", DataSpace.CSpace);
            var complexType4     = new ComplexType("CT4", "N", DataSpace.CSpace);
            var property1        = new EdmProperty("A", TypeUsage.Create(complexType1));
            var property2        = new EdmProperty("B", TypeUsage.Create(complexType2));
            var propertyMapping1 = new ComplexPropertyMapping(property1);
            var propertyMapping2 = new ComplexPropertyMapping(property2);

            var mapping = new ComplexTypeMapping(false);

            mapping.AddType(complexType2);
            mapping.AddType(complexType1);
            mapping.AddIsOfType(complexType4);
            mapping.AddIsOfType(complexType3);
            mapping.AddProperty(propertyMapping2);
            mapping.AddProperty(propertyMapping1);

            Assert.Equal("ComplexProperty(Identity=A),ComplexProperty(Identity=B),N.CT1,N.CT2,N.CT3,N.CT4",
                         BaseMetadataMappingVisitor.IdentityHelper.GetIdentity(mapping));
        }
예제 #2
0
        public void Cannot_add_property_when_read_only()
        {
            var complexType        = new ComplexType();
            var complexTypeMapping = new ComplexTypeMapping(complexType);

            complexTypeMapping.SetReadOnly();

            var scalarPropertyMapping = new ScalarPropertyMapping(new EdmProperty("P"), new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })));

            Assert.Equal(
                Strings.OperationOnReadOnlyItem,
                Assert.Throws <InvalidOperationException>(
                    () => complexTypeMapping.AddProperty(scalarPropertyMapping)).Message);
        }
예제 #3
0
        public void Can_add_remove_properties()
        {
            var complexType           = new ComplexType();
            var complexTypeMapping    = new ComplexTypeMapping(complexType);
            var scalarPropertyMapping = new ScalarPropertyMapping(new EdmProperty("P"), new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })));

            Assert.Empty(complexTypeMapping.Properties);

            complexTypeMapping.AddProperty(scalarPropertyMapping);

            Assert.Same(scalarPropertyMapping, complexTypeMapping.Properties.Single());

            complexTypeMapping.RemoveProperty(scalarPropertyMapping);

            Assert.Empty(complexTypeMapping.Properties);
        }
예제 #4
0
        public void SetReadOnly_is_called_on_child_mapping_items()
        {
            var complexType           = new ComplexType();
            var complexTypeMapping    = new ComplexTypeMapping(complexType);
            var scalarPropertyMapping = new ScalarPropertyMapping(new EdmProperty("P"), new EdmProperty("C", TypeUsage.Create(new PrimitiveType()
            {
                DataSpace = DataSpace.SSpace
            })));
            var conditionMapping = new IsNullConditionMapping(new EdmProperty("P"), true);

            complexTypeMapping.AddProperty(scalarPropertyMapping);
            complexTypeMapping.AddCondition(conditionMapping);

            Assert.False(scalarPropertyMapping.IsReadOnly);
            Assert.False(conditionMapping.IsReadOnly);
            complexTypeMapping.SetReadOnly();
            Assert.True(scalarPropertyMapping.IsReadOnly);
            Assert.True(conditionMapping.IsReadOnly);
        }