public async Task WriteDeltaFeedInlineAsync_Can_WriteCollectionOfIEdmChangedObjects() { // Arrange IEdmTypeReference edmType = new EdmEntityTypeReference(new EdmEntityType("NS", "Name"), isNullable: false); IEdmCollectionTypeReference feedType = new EdmCollectionTypeReference(new EdmCollectionType(edmType)); Mock <IEdmChangedObject> edmObject = new Mock <IEdmChangedObject>(); edmObject.Setup(e => e.GetEdmType()).Returns(edmType); var mockWriter = new Mock <ODataWriter>(); Mock <ODataSerializerProvider> provider = new Mock <ODataSerializerProvider>(); Mock <ODataResourceSerializer> customerSerializer = new Mock <ODataResourceSerializer>(provider.Object); customerSerializer.Setup(s => s.WriteDeltaObjectInlineAsync(edmObject.Object, edmType, mockWriter.Object, _writeContext)).Verifiable(); Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>(); serializerProvider.Setup(s => s.GetEdmTypeSerializer(edmType)).Returns(customerSerializer.Object); ODataDeltaFeedSerializer serializer = new ODataDeltaFeedSerializer(serializerProvider.Object); // Act await serializer.WriteDeltaFeedInlineAsync(new[] { edmObject.Object }, feedType, mockWriter.Object, _writeContext); // Assert customerSerializer.Verify(); }
public async Task WriteDeltaFeedInlineAsync_ThrowsArgumentNull_WriteContext() { // Arrange Mock <ODataSerializerProvider> provider = new Mock <ODataSerializerProvider>(); ODataDeltaFeedSerializer serializer = new ODataDeltaFeedSerializer(provider.Object); // Act & Assert await ExceptionAssert.ThrowsArgumentNullAsync( () => serializer.WriteDeltaFeedInlineAsync(graph: null, expectedType: null, writer: new Mock <ODataWriter>().Object, writeContext: null), "writeContext"); }
public async Task WriteDeltaFeedInlineAsync_Throws_NullElementInCollection_IfFeedContainsNullElement() { // Arrange IEnumerable instance = new object[] { null }; Mock <ODataSerializerProvider> provider = new Mock <ODataSerializerProvider>(); ODataDeltaFeedSerializer serializer = new ODataDeltaFeedSerializer(provider.Object); // Act await ExceptionAssert.ThrowsAsync <SerializationException>( () => serializer.WriteDeltaFeedInlineAsync(instance, _customersType, new Mock <ODataWriter>().Object, _writeContext), "Collections cannot contain null elements."); }
public async Task WriteDeltaFeedInlineAsync_ThrowsSerializationException_IfGraphIsNotEnumerable() { // Arrange Mock <ODataSerializerProvider> provider = new Mock <ODataSerializerProvider>(); ODataDeltaFeedSerializer serializer = new ODataDeltaFeedSerializer(provider.Object); // Act & Assert await ExceptionAssert.ThrowsAsync <SerializationException>( () => serializer.WriteDeltaFeedInlineAsync(graph: 42, expectedType: _customersType, writer: new Mock <ODataWriter>().Object, writeContext: _writeContext), "ODataDeltaFeedSerializer cannot write an object of type 'System.Int32'."); }
public async Task WriteDeltaFeedInlineAsync_ThrowsSerializationException_CannotSerializerNull() { // Arrange Mock <ODataSerializerProvider> provider = new Mock <ODataSerializerProvider>(); ODataDeltaFeedSerializer serializer = new ODataDeltaFeedSerializer(provider.Object); // Act & Assert await ExceptionAssert.ThrowsAsync <SerializationException>( () => serializer.WriteDeltaFeedInlineAsync(graph: null, expectedType: _customersType, writer: new Mock <ODataWriter>().Object, writeContext: _writeContext), "Cannot serialize a null 'deltafeed'."); }
public async Task WriteDeltaFeedInlineAsync_Throws_TypeCannotBeSerialized_IfFeedContainsEntityThatCannotBeSerialized() { // Arrange Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>(); var request = RequestFactory.Create(); serializerProvider.Setup(s => s.GetODataPayloadSerializer(typeof(int), request)).Returns <ODataSerializer>(null); IEnumerable instance = new object[] { 42 }; ODataDeltaFeedSerializer serializer = new ODataDeltaFeedSerializer(serializerProvider.Object); // Act await ExceptionAssert.ThrowsAsync <SerializationException>( () => serializer.WriteDeltaFeedInlineAsync(instance, _customersType, new Mock <ODataWriter>().Object, _writeContext), "ODataDeltaFeedSerializer cannot write an object of type 'System.Object[]'."); }
public async Task WriteDeltaFeedInlineAsync_WritesEachEntityInstance() { // Arrange Mock <ODataSerializerProvider> serializeProvider = new Mock <ODataSerializerProvider>(); Mock <ODataResourceSerializer> customerSerializer = new Mock <ODataResourceSerializer>(serializeProvider.Object); ODataSerializerProvider provider = ODataTestUtil.GetMockODataSerializerProvider(customerSerializer.Object); var mockWriter = new Mock <ODataWriter>(); customerSerializer.Setup(s => s.WriteDeltaObjectInlineAsync(_deltaFeedCustomers[0], _customersType.ElementType(), mockWriter.Object, _writeContext)).Verifiable(); _serializer = new ODataDeltaFeedSerializer(provider); // Act await _serializer.WriteDeltaFeedInlineAsync(_deltaFeedCustomers, _customersType, mockWriter.Object, _writeContext); // Assert customerSerializer.Verify(); }