public void WriteObjectInline_Can_WriteCollectionOfIEdmObjects() { // Arrange IEdmTypeReference edmType = new EdmEntityTypeReference(new EdmEntityType("NS", "Name"), isNullable: false); IEdmCollectionTypeReference feedType = new EdmCollectionTypeReference(new EdmCollectionType(edmType)); Mock <IEdmObject> edmObject = new Mock <IEdmObject>(); edmObject.Setup(e => e.GetEdmType()).Returns(edmType); var mockWriter = new Mock <ODataWriter>(); Mock <ODataEdmTypeSerializer> customSerializer = new Mock <ODataEdmTypeSerializer>(ODataPayloadKind.Entry); customSerializer.Setup(s => s.WriteObjectInline(edmObject.Object, edmType, mockWriter.Object, _writeContext)).Verifiable(); Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>(); serializerProvider.Setup(s => s.GetEdmTypeSerializer(edmType)).Returns(customSerializer.Object); ODataFeedSerializer serializer = new ODataFeedSerializer(serializerProvider.Object); // Act serializer.WriteObjectInline(new[] { edmObject.Object }, feedType, mockWriter.Object, _writeContext); // Assert customSerializer.Verify(); }
public void WriteObjectInline_ThrowsArgumentNull_WriteContext() { ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); Assert.ThrowsArgumentNull( () => serializer.WriteObjectInline(graph: null, expectedType: null, writer: new Mock <ODataWriter>().Object, writeContext: null), "writeContext"); }
public void WriteObjectInline_ThrowsSerializationException_IfGraphIsNotEnumerable() { ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); Assert.Throws <SerializationException>( () => serializer.WriteObjectInline(graph: 42, expectedType: _customersType, writer: new Mock <ODataWriter>().Object, writeContext: _writeContext), "ODataFeedSerializer cannot write an object of type 'System.Int32'."); }
public void WriteObjectInline_ThrowsSerializationException_CannotSerializerNull() { ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); Assert.Throws <SerializationException>( () => serializer.WriteObjectInline(graph: null, expectedType: _customersType, writer: new Mock <ODataWriter>().Object, writeContext: _writeContext), "Cannot serialize a null 'feed'."); }
public void WriteObjectInline_Throws_NullElementInCollection_IfFeedContainsNullElement() { // Arrange IEnumerable instance = new object[] { null }; ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); // Act Assert.Throws <SerializationException>( () => serializer.WriteObjectInline(instance, _customersType, new Mock <ODataWriter>().Object, _writeContext), "Collections cannot contain null elements."); }
public void WriteObjectInline_Throws_TypeCannotBeSerialized_IfFeedContainsEntityThatCannotBeSerialized() { // Arrange Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>(); HttpRequestMessage request = new HttpRequestMessage(); serializerProvider.Setup(s => s.GetODataPayloadSerializer(_model, typeof(int), request)).Returns <ODataSerializer>(null); IEnumerable instance = new object[] { 42 }; ODataFeedSerializer serializer = new ODataFeedSerializer(serializerProvider.Object); // Act Assert.Throws <SerializationException>( () => serializer.WriteObjectInline(instance, _customersType, new Mock <ODataWriter>().Object, _writeContext), "'Default.Customer' cannot be serialized using the ODataMediaTypeFormatter."); }
public void WriteObjectInline_WritesEachEntityInstance() { // Arrange Mock <ODataEdmTypeSerializer> customerSerializer = new Mock <ODataEdmTypeSerializer>(ODataPayloadKind.Entry); ODataSerializerProvider provider = ODataTestUtil.GetMockODataSerializerProvider(customerSerializer.Object); var mockWriter = new Mock <ODataWriter>(); customerSerializer.Setup(s => s.WriteObjectInline(_customers[0], _customersType.ElementType(), mockWriter.Object, _writeContext)).Verifiable(); customerSerializer.Setup(s => s.WriteObjectInline(_customers[1], _customersType.ElementType(), mockWriter.Object, _writeContext)).Verifiable(); _serializer = new ODataFeedSerializer(provider); // Act _serializer.WriteObjectInline(_customers, _customersType, mockWriter.Object, _writeContext); // Assert customerSerializer.Verify(); }
public void WriteObjectInline_Can_WriteCollectionOfIEdmObjects() { // Arrange IEdmTypeReference edmType = new EdmEntityTypeReference(new EdmEntityType("NS", "Name"), isNullable: false); IEdmCollectionTypeReference feedType = new EdmCollectionTypeReference(new EdmCollectionType(edmType)); Mock<IEdmObject> edmObject = new Mock<IEdmObject>(); edmObject.Setup(e => e.GetEdmType()).Returns(edmType); var mockWriter = new Mock<ODataWriter>(); Mock<ODataEdmTypeSerializer> customSerializer = new Mock<ODataEdmTypeSerializer>(ODataPayloadKind.Entry); customSerializer.Setup(s => s.WriteObjectInline(edmObject.Object, edmType, mockWriter.Object, _writeContext)).Verifiable(); Mock<ODataSerializerProvider> serializerProvider = new Mock<ODataSerializerProvider>(); serializerProvider.Setup(s => s.GetEdmTypeSerializer(edmType)).Returns(customSerializer.Object); ODataFeedSerializer serializer = new ODataFeedSerializer(serializerProvider.Object); // Act serializer.WriteObjectInline(new[] { edmObject.Object }, feedType, mockWriter.Object, _writeContext); // Assert customSerializer.Verify(); }
public void WriteObjectInline_WritesEachEntityInstance() { // Arrange Mock<ODataEdmTypeSerializer> customerSerializer = new Mock<ODataEdmTypeSerializer>(ODataPayloadKind.Entry); ODataSerializerProvider provider = ODataTestUtil.GetMockODataSerializerProvider(customerSerializer.Object); var mockWriter = new Mock<ODataWriter>(); customerSerializer.Setup(s => s.WriteObjectInline(_customers[0], _customersType.ElementType(), mockWriter.Object, _writeContext)).Verifiable(); customerSerializer.Setup(s => s.WriteObjectInline(_customers[1], _customersType.ElementType(), mockWriter.Object, _writeContext)).Verifiable(); _serializer = new ODataFeedSerializer(provider); // Act _serializer.WriteObjectInline(_customers, _customersType, mockWriter.Object, _writeContext); // Assert customerSerializer.Verify(); }
public void WriteObjectInline_Throws_TypeCannotBeSerialized_IfFeedContainsEntityThatCannotBeSerialized() { // Arrange Mock<ODataSerializerProvider> serializerProvider = new Mock<ODataSerializerProvider>(); HttpRequestMessage request = new HttpRequestMessage(); serializerProvider.Setup(s => s.GetODataPayloadSerializer(_model, typeof(int), request)).Returns<ODataSerializer>(null); IEnumerable instance = new object[] { 42 }; ODataFeedSerializer serializer = new ODataFeedSerializer(serializerProvider.Object); // Act Assert.Throws<SerializationException>( () => serializer.WriteObjectInline(instance, _customersType, new Mock<ODataWriter>().Object, _writeContext), "'Default.Customer' cannot be serialized using the ODataMediaTypeFormatter."); }
public void WriteObjectInline_Throws_NullElementInCollection_IfFeedContainsNullElement() { // Arrange IEnumerable instance = new object[] { null }; ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); // Act Assert.Throws<SerializationException>( () => serializer.WriteObjectInline(instance, _customersType, new Mock<ODataWriter>().Object, _writeContext), "Collections cannot contain null elements."); }
public void WriteObjectInline_ThrowsSerializationException_IfGraphIsNotEnumerable() { ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); Assert.Throws<SerializationException>( () => serializer.WriteObjectInline(graph: 42, expectedType: _customersType, writer: new Mock<ODataWriter>().Object, writeContext: _writeContext), "ODataFeedSerializer cannot write an object of type 'System.Int32'."); }
public void WriteObjectInline_ThrowsSerializationException_CannotSerializerNull() { ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); Assert.Throws<SerializationException>( () => serializer.WriteObjectInline(graph: null, expectedType: _customersType, writer: new Mock<ODataWriter>().Object, writeContext: _writeContext), "Cannot serialize a null 'feed'."); }
public void WriteObjectInline_ThrowsArgumentNull_WriteContext() { ODataFeedSerializer serializer = new ODataFeedSerializer(new DefaultODataSerializerProvider()); Assert.ThrowsArgumentNull( () => serializer.WriteObjectInline(graph: null, expectedType: null, writer: new Mock<ODataWriter>().Object, writeContext: null), "writeContext"); }