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()); }
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."); }
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'."); }
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); }
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)); }
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()); }
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()); }
public void CreateResource_ThrowsArgumentNull_ReadContext() { Assert.ThrowsArgumentNull( () => ODataComplexTypeDeserializer.CreateResource(_addressEdmType, readContext: null), "readContext"); }
public void CreateResource_ThrowsArgumentNull_ComplexType() { Assert.ThrowsArgumentNull( () => ODataComplexTypeDeserializer.CreateResource(complexType: null, readContext: new ODataDeserializerContext()), "complexType"); }