Пример #1
0
        public void CreateResource_CreateDeltaWith_OpenComplexType()
        {
            // Arrange
            ODataConventionModelBuilder builder = new ODataConventionModelBuilder();

            builder.ComplexType <SimpleOpenAddress>();
            IEdmModel model = builder.GetEdmModel();
            IEdmComplexTypeReference addressTypeReference = model.GetEdmTypeReference(typeof(SimpleOpenAddress)).AsComplex();

            ODataDeserializerContext readContext = new ODataDeserializerContext
            {
                Model        = model,
                ResourceType = typeof(Delta <SimpleOpenAddress>)
            };
            var structuralProperties = addressTypeReference.StructuralProperties().Select(p => p.Name);

            // Act
            Delta <SimpleOpenAddress> resource =
                ODataComplexTypeDeserializer.CreateResource(addressTypeReference, readContext) as
                Delta <SimpleOpenAddress>;

            // Assert
            Assert.NotNull(resource);
            Assert.Equal(structuralProperties, resource.GetUnchangedPropertyNames());
        }
Пример #2
0
 public void CreateResource_ThrowsArgument_ModelMissingFromReadContext()
 {
     Assert.ThrowsArgument(
         () => ODataComplexTypeDeserializer.CreateResource(_addressEdmType, new ODataDeserializerContext()),
         "readContext",
         "The EDM model is missing on the read context. The model is required on the read context to deserialize the payload.");
 }
Пример #3
0
 public void CreateResource_Throws_MappingDoesNotContainEntityType()
 {
     Assert.Throws <InvalidOperationException>(
         () => ODataComplexTypeDeserializer.CreateResource(_addressEdmType, new ODataDeserializerContext {
         Model = EdmCoreModel.Instance
     }),
         "The provided mapping does not contain an entry for the entity type 'ODataDemo.Address'.");
 }
Пример #4
0
        public void CreateResource_CreatesAddress_TypedMode()
        {
            // Arrange
            ODataDeserializerContext context = new ODataDeserializerContext {
                Model = _edmModel
            };

            // Act
            var resource = ODataComplexTypeDeserializer.CreateResource(_addressEdmType, context);

            // Assert
            Assert.IsType <ODataEntityDeserializerTests.Address>(resource);
        }
Пример #5
0
        public void CreateResource_CreatesDeltaOfT_IfPatchMode()
        {
            // Arrange
            ODataDeserializerContext readContext = new ODataDeserializerContext
            {
                Model        = _edmModel,
                ResourceType = typeof(Delta <ODataEntityDeserializerTests.Address>)
            };

            // Act & Assert
            Assert.IsType <Delta <ODataEntityDeserializerTests.Address> >(
                ODataComplexTypeDeserializer.CreateResource(_addressEdmType, readContext));
        }
Пример #6
0
        public void CreateResource_CreatesEdmComplexObject_UnTypedMode()
        {
            // Arrange
            ODataDeserializerContext context = new ODataDeserializerContext {
                ResourceType = typeof(IEdmObject)
            };

            // Act
            var resource = ODataComplexTypeDeserializer.CreateResource(_addressEdmType, context);

            // Assert
            EdmComplexObject complexObject = Assert.IsType <EdmComplexObject>(resource);

            Assert.Equal(_addressEdmType, complexObject.GetEdmType(), new EdmTypeReferenceEqualityComparer());
        }
Пример #7
0
        public void CreateResource_CreatesDeltaWith_ExpectedUpdatableProperties()
        {
            // Arrange
            ODataDeserializerContext readContext = new ODataDeserializerContext
            {
                Model        = _edmModel,
                ResourceType = typeof(Delta <ODataEntityDeserializerTests.Address>)
            };
            var structuralProperties = _addressEdmType.StructuralProperties().Select(p => p.Name);

            // Act
            Delta <ODataEntityDeserializerTests.Address> resource =
                ODataComplexTypeDeserializer.CreateResource(_addressEdmType, readContext) as
                Delta <ODataEntityDeserializerTests.Address>;

            // Assert
            Assert.NotNull(resource);
            Assert.Equal(structuralProperties, resource.GetUnchangedPropertyNames());
        }
Пример #8
0
 public void CreateResource_ThrowsArgumentNull_ReadContext()
 {
     Assert.ThrowsArgumentNull(
         () => ODataComplexTypeDeserializer.CreateResource(_addressEdmType, readContext: null),
         "readContext");
 }
Пример #9
0
 public void CreateResource_ThrowsArgumentNull_ComplexType()
 {
     Assert.ThrowsArgumentNull(
         () => ODataComplexTypeDeserializer.CreateResource(complexType: null, readContext: new ODataDeserializerContext()),
         "complexType");
 }