public void ReadInline() { // Arrange var deserializerProvider = new Mock<ODataDeserializerProvider>(EdmTestHelpers.GetModel()).Object; var deserializer = new ODataComplexTypeDeserializer(_addressEdmType, deserializerProvider); ODataComplexValue complexValue = new ODataComplexValue { Properties = new[] { new ODataProperty { Name = "Street", Value = "12"}, new ODataProperty { Name = "City", Value = "Redmond"} }, TypeName = "ODataDemo.Address" }; // Act ODataEntityDeserializerTests.Address address = deserializer.ReadInline( complexValue, new ODataDeserializerReadContext()) as ODataEntityDeserializerTests.Address; // Assert Assert.NotNull(address); Assert.Equal(address.Street, "12"); Assert.Equal(address.City, "Redmond"); Assert.Null(address.Country); Assert.Null(address.State); Assert.Null(address.ZipCode); }
public void Ctor_SetsProperty_ComplexType() { IEdmComplexTypeReference complexType = new Mock <IEdmComplexTypeReference>().Object; ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(complexType, new DefaultODataDeserializerProvider()); Assert.Equal(deserializer.ComplexType, complexType); }
public void ReadInline_ThrowsArgumentNull_ReadContext() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(new DefaultODataDeserializerProvider()); Assert.ThrowsArgumentNull( () => deserializer.ReadInline(42, _addressEdmType, readContext: null), "readContext"); }
public void ReadComplexValue_CanReadComplexValue() { // Arrange var deserializerProvider = new Mock <ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(_addressEdmType, deserializerProvider); ODataComplexValue complexValue = new ODataComplexValue { Properties = new[] { new ODataProperty { Name = "Street", Value = "12" }, new ODataProperty { Name = "City", Value = "Redmond" } }, TypeName = "ODataDemo.Address" }; ODataDeserializerContext readContext = new ODataDeserializerContext() { Model = _edmModel }; // Act var address = deserializer.ReadComplexValue(complexValue, readContext) as ODataEntityDeserializerTests.Address; // Assert Assert.NotNull(address); Assert.Equal(address.Street, "12"); Assert.Equal(address.City, "Redmond"); Assert.Null(address.Country); Assert.Null(address.State); Assert.Null(address.ZipCode); }
public void ReadComplexValue_ThrowsArgumentNull_ComplexValue() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(_addressEdmType, new DefaultODataDeserializerProvider()); Assert.ThrowsArgumentNull( () => deserializer.ReadComplexValue(complexValue: null, readContext: new ODataDeserializerContext()), "complexValue"); }
public void CreateResource_Throws_MappingDoesNotContainEntityType() { Assert.Throws <InvalidOperationException>( () => ODataComplexTypeDeserializer.CreateResource(_addressEdmType, new ODataDeserializerContext { Model = EdmCoreModel.Instance }), "The provided mapping doesn't contain an entry for the entity type 'ODataDemo.Address'."); }
/// <summary> /// Initializes a new instance of the <see cref="DefaultODataDeserializerProvider"/> class. /// </summary> public DefaultODataDeserializerProvider() { _actionPayloadDeserializer = new ODataActionPayloadDeserializer(this); _entityDeserializer = new ODataEntityDeserializer(this); _feedDeserializer = new ODataFeedDeserializer(this); _collectionDeserializer = new ODataCollectionDeserializer(this); _complexDeserializer = new ODataComplexTypeDeserializer(this); }
public void ReadInline_ThrowsArgumentNull_ReadContext() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(_addressEdmType, new DefaultODataDeserializerProvider()); Assert.ThrowsArgumentNull( () => deserializer.ReadInline(42, readContext: null), "readContext"); }
public void ReadComplexValue_ThrowsArgumentNull_ComplexValue() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(new DefaultODataDeserializerProvider()); Assert.ThrowsArgumentNull( () => deserializer.ReadComplexValue(complexValue: null, complexType: _addressEdmType, readContext: new ODataDeserializerContext()), "complexValue"); }
public void ReadComplexValue_ThrowsArgument_ModelMissingFromReadContext() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(_addressEdmType, new DefaultODataDeserializerProvider()); Assert.ThrowsArgument( () => deserializer.ReadComplexValue(new ODataComplexValue(), readContext: 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 Constructor_Succeeds_ForValidComplexType() { var deserializerProvider = new Mock<ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(_addressEdmType, deserializerProvider); Assert.Equal(deserializer.DeserializerProvider, deserializerProvider); Assert.Equal(deserializer.ComplexType.Definition, EdmTestHelpers.GetEdmType("ODataDemo.Address")); Assert.Equal(deserializer.ODataPayloadKind, ODataPayloadKind.Property); }
public void ReadInline_Throws_ArgumentMustBeOfType() { var deserializerProvider = new Mock <ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(deserializerProvider); Assert.ThrowsArgument( () => deserializer.ReadInline(new ODataComplexValue(), new EdmEntityType("NS", "Name").AsReference(), new ODataDeserializerContext()), "edmType", "The argument must be of type 'Complex'."); }
public void ReadInline_Throws_ForNonODataComplexValues() { var deserializerProvider = new Mock<ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(deserializerProvider); Assert.ThrowsArgument( () => deserializer.ReadInline(10, _addressEdmType, new ODataDeserializerContext()), "item"); }
public void ReadInline_Throws_ArgumentMustBeOfType() { var deserializerProvider = new Mock<ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(deserializerProvider); Assert.ThrowsArgument( () => deserializer.ReadInline(new ODataComplexValue(), new EdmEntityType("NS", "Name").AsReference(), new ODataDeserializerContext()), "edmType", "The argument must be of type 'Complex'."); }
public void Constructor_Succeeds_ForValidComplexType() { var deserializerProvider = new Mock <ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(_addressEdmType, deserializerProvider); Assert.Equal(deserializer.DeserializerProvider, deserializerProvider); Assert.Equal(deserializer.ComplexType.Definition, EdmTestHelpers.GetEdmType("ODataDemo.Address")); Assert.Equal(deserializer.ODataPayloadKind, ODataPayloadKind.Property); }
public void ReadInline_Throws_ForNonODataComplexValues() { var deserializerProvider = new Mock <ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(_addressEdmType, deserializerProvider); Assert.ThrowsArgument( () => deserializer.ReadInline(10, new ODataDeserializerContext()), "item"); }
public void ReadInline_Throws_ForNonODataComplexValues() { var deserializerProvider = new StubODataDeserializerProvider(); var deserializer = new ODataComplexTypeDeserializer(_addressEdmType, deserializerProvider); Assert.ThrowsArgument(() => { deserializer.ReadInline(10, new ODataDeserializerContext() { Model = _edmModel }); }, "item"); }
public void ReadInline_Throws_ForNonODataComplexValues() { var deserializerProvider = new Mock<ODataDeserializerProvider>(EdmTestHelpers.GetModel()).Object; var deserializer = new ODataComplexTypeDeserializer(_addressEdmType, deserializerProvider); Assert.ThrowsArgument(() => { deserializer.ReadInline(10, new ODataDeserializerReadContext()); }, "item"); }
public void GetODataDeserializer_Complex() { ODataDeserializerProvider deserializerProvider = new DefaultODataDeserializerProvider(); ODataDeserializer deserializer = deserializerProvider.GetODataDeserializer(_edmModel, typeof(ODataEntityDeserializerTests.Address)); Assert.NotNull(deserializer); ODataComplexTypeDeserializer complexDeserializer = Assert.IsType <ODataComplexTypeDeserializer>(deserializer); Assert.Equal(deserializer.ODataPayloadKind, ODataPayloadKind.Property); Assert.Equal(complexDeserializer.DeserializerProvider, deserializerProvider); Assert.True(complexDeserializer.ComplexType.IsEquivalentTo(_edmModel.GetEdmTypeReference(typeof(ODataEntityDeserializerTests.Address)))); Assert.Equal(complexDeserializer.EdmType, complexDeserializer.ComplexType); }
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 GetODataDeserializer_Complex() { ODataDeserializerProvider deserializerProvider = new DefaultODataDeserializerProvider(); HttpRequestMessage request = new HttpRequestMessage(); ODataDeserializer deserializer = deserializerProvider.GetODataDeserializer(_edmModel, typeof(ODataEntityDeserializerTests.Address), request); Assert.NotNull(deserializer); ODataComplexTypeDeserializer complexDeserializer = Assert.IsType <ODataComplexTypeDeserializer>(deserializer); Assert.Equal(deserializer.ODataPayloadKind, ODataPayloadKind.Property); Assert.Equal(complexDeserializer.DeserializerProvider, deserializerProvider); }
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 ReadInline_ReturnsNull_IfItemIsNull() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(new DefaultODataDeserializerProvider()); Assert.Null(deserializer.ReadInline(item: null, edmType: _addressEdmType, readContext: new ODataDeserializerContext())); }
public void ReadComplexValue_CanReadComplexValue() { // Arrange var deserializerProvider = new Mock<ODataDeserializerProvider>().Object; var deserializer = new ODataComplexTypeDeserializer(deserializerProvider); ODataComplexValue complexValue = new ODataComplexValue { Properties = new[] { new ODataProperty { Name = "Street", Value = "12"}, new ODataProperty { Name = "City", Value = "Redmond"} }, TypeName = "ODataDemo.Address" }; ODataDeserializerContext readContext = new ODataDeserializerContext() { Model = _edmModel }; // Act var address = deserializer.ReadComplexValue(complexValue, _addressEdmType, readContext) as ODataEntityDeserializerTests.Address; // Assert Assert.NotNull(address); Assert.Equal(address.Street, "12"); Assert.Equal(address.City, "Redmond"); Assert.Null(address.Country); Assert.Null(address.State); Assert.Null(address.ZipCode); }
public void ReadComplexValue_ThrowsArgument_ModelMissingFromReadContext() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(new DefaultODataDeserializerProvider()); Assert.ThrowsArgument( () => deserializer.ReadComplexValue(new ODataComplexValue(), _addressEdmType, readContext: 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 ReadInline_ReturnsNull_IfItemIsNull() { ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(_addressEdmType, new DefaultODataDeserializerProvider()); Assert.Null(deserializer.ReadInline(item: null, readContext: new ODataDeserializerContext())); }
public void Ctor_SetsProperty_ComplexType() { IEdmComplexTypeReference complexType = new Mock<IEdmComplexTypeReference>().Object; ODataComplexTypeDeserializer deserializer = new ODataComplexTypeDeserializer(complexType, new DefaultODataDeserializerProvider()); Assert.Equal(deserializer.ComplexType, complexType); }