예제 #1
0
        public void WriteObject_ThrowsArgumentNull_MessageWriter()
        {
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);

            ExceptionAssert.ThrowsArgumentNull(
                () => serializer.WriteObject(graph: null, type: null, messageWriter: null, writeContext: new ODataSerializerContext()),
                "messageWriter");
        }
예제 #2
0
        public void WriteObject_ThrowsArgumentNull_WriteContext()
        {
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);

            ExceptionAssert.ThrowsArgumentNull(
                () => serializer.WriteObject(graph: null, type: null, messageWriter: ODataTestUtil.GetMockODataMessageWriter(), writeContext: null),
                "writeContext");
        }
예제 #3
0
        public void WriteObjectInline_ThrowsArgumentNull_WriteContext()
        {
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);

            ExceptionAssert.ThrowsArgumentNull(
                () => serializer.WriteObjectInline(graph: null, expectedType: null, writer: new Mock <ODataWriter>().Object, writeContext: null),
                "writeContext");
        }
예제 #4
0
        public void WriteObject_CanWrite_TopLevelResourceSet_ContainsEmptyCollectionOfDynamicComplexElement()
        {
            // Arrange
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);
            MemoryStream          stream          = new MemoryStream();
            IODataResponseMessage message         = new ODataMessageWrapper(stream);

            ODataMessageWriterSettings settings = new ODataMessageWriterSettings
            {
                ODataUri = new ODataUri {
                    ServiceRoot = new Uri("http://any/"),
                }
            };

            settings.SetContentType(ODataFormat.Json);

            ODataMessageWriter        writer    = new ODataMessageWriter(message, settings);
            IList <SimpleOpenAddress> addresses = new[]
            {
                new SimpleOpenAddress
                {
                    City       = "Redmond",
                    Street     = "Microsoft Rd",
                    Properties = new Dictionary <string, object>
                    {
                        { "StringProp", "abc" },
                        { "Locations", new SimpleOpenAddress[] {} } // empty collection of complex
                    }
                }
            };

            var builder = ODataConventionModelBuilderFactory.Create();

            builder.ComplexType <SimpleOpenAddress>();
            IEdmModel model = builder.GetEdmModel();
            ODataSerializerContext writeContext = new ODataSerializerContext {
                Model = model
            };

            // Act
            serializer.WriteObject(addresses, typeof(IList <SimpleOpenAddress>), writer, writeContext);
            stream.Seek(0, SeekOrigin.Begin);
            string result = JObject.Parse(new StreamReader(stream).ReadToEnd()).ToString();

            // Assert
            Assert.Equal(@"{
  ""@odata.context"": ""http://any/$metadata#Collection(Microsoft.AspNet.OData.Test.Common.SimpleOpenAddress)"",
  ""value"": [
    {
      ""Street"": ""Microsoft Rd"",
      ""City"": ""Redmond"",
      ""StringProp"": ""abc"",
      ""*****@*****.**"": ""#Collection(Microsoft.AspNet.OData.Test.Common.SimpleOpenAddress)"",
      ""Locations"": []
    }
  ]
}", result);
        }
예제 #5
0
        public void WriteObjectInline_ThrowsSerializationException_CannotSerializerNull()
        {
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);

            ExceptionAssert.Throws <SerializationException>(
                () => serializer.WriteObjectInline(graph: null, expectedType: _customersType,
                                                   writer: new Mock <ODataWriter>().Object, writeContext: _writeContext),
                "Cannot serialize a null 'ResourceSet'.");
        }
예제 #6
0
        public void WriteObjectInline_ThrowsSerializationException_IfGraphIsNotEnumerable()
        {
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);

            ExceptionAssert.Throws <SerializationException>(
                () => serializer.WriteObjectInline(graph: 42, expectedType: _customersType,
                                                   writer: new Mock <ODataWriter>().Object, writeContext: _writeContext),
                "ODataResourceSetSerializer cannot write an object of type 'System.Int32'.");
        }
        public async Task WriteObjectInlineAsync_ThrowsArgumentNull_WriteContext()
        {
            // Arrange
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);

            // Act & Assert
            await ExceptionAssert.ThrowsArgumentNullAsync(
                () => serializer.WriteObjectInlineAsync(graph: null, expectedType: null, writer: new Mock <ODataWriter>().Object, writeContext: null),
                "writeContext");
        }
        public void WriteObjectInline_ThrowsArgumentNull_Writer()
        {
            // Arrange
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);

            // Act & Assert
            ExceptionAssert.ThrowsArgumentNull(
                () => serializer.WriteObjectInline(graph: null, expectedType: null, writer: null, writeContext: new ODataSerializerContext()),
                "writer");
        }
예제 #9
0
        public void WriteObjectInline_Throws_NullElementInCollection_IfResourceSetContainsNullElement()
        {
            // Arrange
            IEnumerable instance = new object[] { null };
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);

            // Act & Assert
            ExceptionAssert.Throws <SerializationException>(
                () => serializer.WriteObjectInline(instance, _customersType, new Mock <ODataWriter>().Object, _writeContext),
                "Collections cannot contain null elements.");
        }
        public async Task WriteObjectAsync_ThrowsArgumentNull_WriteContext()
        {
            // Arrange & Act
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);

            // Assert
            await ExceptionAssert.ThrowsArgumentNullAsync(
                () => serializer.WriteObjectAsync(graph: null, type: null, messageWriter: ODataTestUtil.GetMockODataMessageWriter(), writeContext: null),
                "writeContext");
        }
        public void WriteObject_ThrowsArgumentNull_MessageWriter()
        {
            // Arrange & Act
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);

            // Assert
            ExceptionAssert.ThrowsArgumentNull(
                () => serializer.WriteObject(graph: null, type: null, messageWriter: null, writeContext: new ODataSerializerContext()),
                "messageWriter");
        }
        public async Task WriteObjectInlineAsync_ThrowsSerializationException_CannotSerializerNull()
        {
            // Arrange
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);

            // Act & Assert
            await ExceptionAssert.ThrowsAsync <SerializationException>(
                () => serializer.WriteObjectInlineAsync(graph: null, expectedType: _customersType,
                                                        writer: new Mock <ODataWriter>().Object, writeContext: _writeContext),
                "Cannot serialize a null 'ResourceSet'.");
        }
        public async Task WriteObjectInlineAsync_ThrowsSerializationException_IfGraphIsNotEnumerable()
        {
            // Arrange
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);

            // Act & Assert
            await ExceptionAssert.ThrowsAsync <SerializationException>(
                () => serializer.WriteObjectInlineAsync(graph: 42, expectedType: _customersType,
                                                        writer: new Mock <ODataWriter>().Object, writeContext: _writeContext),
                "ODataResourceSetSerializer cannot write an object of type 'System.Int32'.");
        }
예제 #14
0
        public void WriteObjectInline_DoesnotThrow_NullElementInCollection_IfResourceSetContainsNullComplexElement()
        {
            // Arrange
            IEnumerable instance = new object[] { null };
            ODataResourceSetSerializer serializer   = new ODataResourceSetSerializer(_serializerProvider);
            ODataSerializerContext     writeContext = new ODataSerializerContext {
                NavigationSource = null, Model = _model
            };

            // Act & Assert
            ExceptionAssert.DoesNotThrow(() => serializer.WriteObjectInline(instance, _addressesType, new Mock <ODataWriter>().Object, writeContext));
        }
        public void CreateODataOperations_CreateOperations(bool followConventions)
        {
            // Arrange
            string expectedTarget = "aa://Target";
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);
            var builder = new ODataConventionModelBuilder();

            builder.EntitySet <FeedCustomer>("Customers");
            var       function = builder.EntityType <FeedCustomer>().Collection.Function("MyFunction").Returns <int>();
            IEdmModel model    = builder.GetEdmModel();

            IEdmEntitySet customers   = model.EntityContainer.FindEntitySet("Customers");
            IEdmFunction  edmFunction = model.SchemaElements.OfType <IEdmFunction>().First(f => f.Name == "MyFunction");

            Func <ResourceSetContext, Uri> functionLinkFactory = a => new Uri(expectedTarget);
            var operationLinkBuilder = new OperationLinkBuilder(functionLinkFactory, followConventions);

            model.SetOperationLinkBuilder(edmFunction, operationLinkBuilder);

            var request = RequestFactory.Create(method: "get", uri: "http://any", opt => opt.AddModel(model));
            ResourceSetContext resourceSetContext = new ResourceSetContext
            {
                EntitySetBase = customers,
                Request       = request,
            };

            ODataSerializerContext serializerContext = new ODataSerializerContext
            {
                NavigationSource = customers,
                Request          = request,
                Model            = model,
                MetadataLevel    = ODataMetadataLevel.Full,
            };
            string expectedMetadataPrefix = "http://any/$metadata";

            // Act
            ODataOperation actualOperation = serializer.CreateODataOperation(edmFunction, resourceSetContext, serializerContext);

            // Assert
            Assert.NotNull(actualOperation);
            string         expectedMetadata = expectedMetadataPrefix + "#Default.MyFunction";
            ODataOperation expectedFunction = new ODataFunction
            {
                Metadata = new Uri(expectedMetadata),
                Target   = new Uri(expectedTarget),
                Title    = "MyFunction"
            };

            AssertEqual(expectedFunction, actualOperation);
        }
예제 #16
0
        public void CreateODataOperations_CreateOperations(bool followConventions)
        {
            // Arrange
            // Arrange
            string expectedTarget = "aa://Target";
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);
            var builder = ODataConventionModelBuilderFactory.Create();

            builder.EntitySet <FeedCustomer>("Customers");
            var function = builder.EntityType <FeedCustomer>().Collection.Function("MyFunction").Returns <int>();

            function.HasFeedFunctionLink(a => new Uri(expectedTarget), followConventions);
            IEdmModel model = builder.GetEdmModel();

            IEdmEntitySet customers              = model.EntityContainer.FindEntitySet("Customers");
            IEdmFunction  edmFunction            = model.SchemaElements.OfType <IEdmFunction>().First(f => f.Name == "MyFunction");
            string        expectedMetadataPrefix = "http://Metadata";

            var request = RequestFactory.Create();
            ResourceSetContext resourceSetContext = new ResourceSetContext
            {
                EntitySetBase = customers,
                Request       = request,
                Url           = CreateMetadataLinkFactory(expectedMetadataPrefix, request)
            };

            ODataSerializerContext serializerContext = new ODataSerializerContext
            {
                NavigationSource = customers,
                Request          = request,
                Model            = model,
                MetadataLevel    = ODataMetadataLevel.FullMetadata,
                Url = resourceSetContext.Url
            };

            // Act
            ODataOperation actualOperation = serializer.CreateODataOperation(edmFunction, resourceSetContext, serializerContext);

            // Assert
            Assert.NotNull(actualOperation);
            string         expectedMetadata = expectedMetadataPrefix + "#Default.MyFunction";
            ODataOperation expectedFunction = new ODataFunction
            {
                Metadata = new Uri(expectedMetadata),
                Target   = new Uri(expectedTarget),
                Title    = "MyFunction"
            };

            AssertEqual(expectedFunction, actualOperation);
        }
예제 #17
0
        public void CreateResource_Sets_NextPageLinkForPageResult()
        {
            // Arrange
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);
            Uri        expectedNextLink           = new Uri("http://nextlink.com");
            const long ExpectedCountValue         = 1000;

            var result = new PageResult <Customer>(_customers, expectedNextLink, ExpectedCountValue);

            // Act
            ODataResourceSet resourceSet = serializer.CreateResourceSet(result, _customersType, new ODataSerializerContext());

            // Assert
            Assert.Equal(expectedNextLink, resourceSet.NextPageLink);
        }
        public async Task WriteObjectInlineAsync_Throws_NullElementInCollection_IfResourceSetContainsNullElement()
        {
            // Arrange
            IEnumerable instance = new object[] { null };
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            Mock <ODataResourceSerializer> resourceSerializer = new Mock <ODataResourceSerializer>(serializerProvider.Object);

            serializerProvider.Setup(s => s.GetEdmTypeSerializer(It.IsAny <IEdmTypeReference>())).Returns(resourceSerializer.Object);
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(serializerProvider.Object);

            // Act & Assert
            await ExceptionAssert.ThrowsAsync <SerializationException>(
                () => serializer.WriteObjectInlineAsync(instance, _customersType, new Mock <ODataWriter>().Object, _writeContext),
                "Collections cannot contain null elements.");
        }
예제 #19
0
        public void WriteObjectInline_Throws_TypeCannotBeSerialized_IfResourceSetContainsEntityThatCannotBeSerialized()
        {
            // 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 };
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(serializerProvider.Object);

            // Act & Assert
            ExceptionAssert.Throws <SerializationException>(
                () => serializer.WriteObjectInline(instance, _customersType, new Mock <ODataWriter>().Object, _writeContext),
                "'Default.Customer' cannot be serialized using the ODataMediaTypeFormatter.");
        }
        public void WriteObjectInlineAsync_DoesnotThrow_NullElementInCollection_IfResourceSetContainsNullComplexElement()
        {
            // Arrange
            IEnumerable instance = new object[] { null };
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            Mock <ODataResourceSerializer> resourceSerializer = new Mock <ODataResourceSerializer>(serializerProvider.Object);

            serializerProvider.Setup(s => s.GetEdmTypeSerializer(It.IsAny <IEdmTypeReference>())).Returns(resourceSerializer.Object);
            ODataResourceSetSerializer serializer   = new ODataResourceSetSerializer(serializerProvider.Object);
            ODataSerializerContext     writeContext = new ODataSerializerContext {
                NavigationSource = null, Model = _model
            };

            // Act & Assert
            ExceptionAssert.DoesNotThrow(() => serializer.WriteObjectInlineAsync(instance, _addressesType, new Mock <ODataWriter>().Object, writeContext).Wait());
        }
        public async Task WriteObjectAsync_CanWriteTopLevelResourceSetContainsNullComplexElement()
        {
            // Arrange
            ODataSerializerProvider    serializerProvider = GetServiceProvider().GetService <ODataSerializerProvider>();
            ODataResourceSetSerializer serializer         = new ODataResourceSetSerializer(serializerProvider);
            MemoryStream stream = new MemoryStream();
            IODataResponseMessageAsync message = new ODataMessageWrapper(stream);

            ODataMessageWriterSettings settings = new ODataMessageWriterSettings
            {
                ODataUri = new ODataUri {
                    ServiceRoot = new Uri("http://any/"),
                }
            };

            settings.SetContentType(ODataFormat.Json);

            ODataMessageWriter writer    = new ODataMessageWriter(message, settings);
            IList <Address>    addresses = new[]
            {
                new Address {
                    City = "Redmond"
                },
                null,
                new Address {
                    City = "Shanghai"
                }
            };

            ODataSerializerContext writeContext = new ODataSerializerContext {
                Model = _model
            };

            // Act
            await serializer.WriteObjectAsync(addresses, typeof(IList <Address>), writer, writeContext);

            stream.Seek(0, SeekOrigin.Begin);
            string result = new StreamReader(stream).ReadToEnd();

            // Assert
            Assert.Equal("{\"@odata.context\":\"http://any/$metadata#Collection(Default.Address)\"," +
                         "\"value\":[" +
                         "{\"Street\":null,\"City\":\"Redmond\",\"State\":null,\"CountryOrRegion\":null,\"ZipCode\":null}," +
                         "null," +
                         "{\"Street\":null,\"City\":\"Shanghai\",\"State\":null,\"CountryOrRegion\":null,\"ZipCode\":null}" +
                         "]}", result);
        }
예제 #22
0
        public void SetODataFeatureTotalCountValueNull()
        {
            // Arrange
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);
            var request = RequestFactory.Create();

            request.ODataContext().TotalCount = null;

            var result = new object[0];

            // Act
            ODataResourceSet resourceSet = serializer.CreateResourceSet(result, _customersType, new ODataSerializerContext {
                Request = request
            });

            // Assert
            Assert.Null(resourceSet.Count);
        }
예제 #23
0
        public void CreateODataFeed_Sets_DeltaLinkFromContext()
        {
            // Arrange
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);
            Uri expectedDeltaLink = new Uri("http://deltalink.com");
            var request           = RequestFactory.Create();

            request.ODataContext().DeltaLink = expectedDeltaLink;
            var result = new object[0];

            // Act
            ODataResourceSet feed = serializer.CreateResourceSet(result, _customersType, new ODataSerializerContext {
                Request = request
            });

            // Assert
            Assert.Equal(expectedDeltaLink, feed.DeltaLink);
        }
예제 #24
0
        public void CreateResourceSet_Sets_NextPageLinkFromContext()
        {
            // Arrange
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);
            Uri expectedNextLink = new Uri("http://nextlink.com");
            var request          = RequestFactory.Create();

            request.ODataContext().NextLink = expectedNextLink;
            var result = new object[0];

            // Act
            ODataResourceSet resourceSet = serializer.CreateResourceSet(result, _customersType, new ODataSerializerContext {
                Request = request
            });

            // Assert
            Assert.Equal(expectedNextLink, resourceSet.NextPageLink);
        }
예제 #25
0
        public void CreateResourceSet_Sets_CountValueFromContext()
        {
            // Arrange
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);
            const long ExpectedCountValue         = 1000;
            var        request = RequestFactory.Create();

            request.ODataContext().TotalCount = ExpectedCountValue;
            var result = new object[0];

            // Act
            ODataResourceSet resourceSet = serializer.CreateResourceSet(result, _customersType, new ODataSerializerContext {
                Request = request
            });

            // Assert
            Assert.Equal(ExpectedCountValue, resourceSet.Count);
        }
예제 #26
0
        public void WriteObjectInline_WritesEachEntityInstance()
        {
            // Arrange
            Mock <ODataEdmTypeSerializer> customerSerializer = new Mock <ODataEdmTypeSerializer>(ODataPayloadKind.Resource);
            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 ODataResourceSetSerializer(provider);

            // Act
            _serializer.WriteObjectInline(_customers, _customersType, mockWriter.Object, _writeContext);

            // Assert
            customerSerializer.Verify();
        }
예제 #27
0
        public async Task ReadAsync_Roundtrip_ComplexCollection()
        {
            // Arrange
            Address[] addresses = new[]
            {
                new Address {
                    City = "Redmond", StreetAddress = "A", State = "123"
                },
                new Address {
                    City = "Seattle", StreetAddress = "S", State = "321"
                }
            };

            ODataResourceSetSerializer   serializer   = new ODataResourceSetSerializer(_serializerProvider);
            ODataResourceSetDeserializer deserializer = new ODataResourceSetDeserializer(_deserializerProvider);

            MemoryStream               stream   = new MemoryStream();
            ODataMessageWrapper        message  = new ODataMessageWrapper(stream);
            ODataMessageWriterSettings settings = new ODataMessageWriterSettings
            {
                ODataUri = new ODataUri {
                    ServiceRoot = new Uri("http://any/")
                }
            };
            ODataMessageWriter     messageWriter = new ODataMessageWriter(message as IODataResponseMessage, settings, _model);
            ODataMessageReader     messageReader = new ODataMessageReader(message as IODataResponseMessage, new ODataMessageReaderSettings(), _model);
            ODataSerializerContext writeContext  = new ODataSerializerContext {
                RootElementName = "Property", Model = _model
            };
            ODataDeserializerContext readContext = new ODataDeserializerContext()
            {
                Model = _model
            };

            // Act
            await serializer.WriteObjectAsync(addresses, addresses.GetType(), messageWriter, writeContext);

            stream.Seek(0, SeekOrigin.Begin);
            IEnumerable readAddresses = await deserializer.ReadAsync(messageReader, typeof(Address[]), readContext) as IEnumerable;

            // Assert
            Assert.Equal(addresses, readAddresses.Cast <Address>(), new AddressComparer());
        }
예제 #28
0
        public void CreateODataOperation_ThrowsArgumentNull_ForInputParameters()
        {
            // Arrange & Act & Assert
            Mock <ODataSerializerProvider> serializerProvider = new Mock <ODataSerializerProvider>();
            ODataResourceSetSerializer     serializer         = new ODataResourceSetSerializer(serializerProvider.Object);

            // Act & Assert
            ExceptionAssert.ThrowsArgumentNull(() => serializer.CreateODataOperation(null, null, null), "operation");

            // Act & Assert
            IEdmOperation operation = new Mock <IEdmOperation>().Object;

            ExceptionAssert.ThrowsArgumentNull(() => serializer.CreateODataOperation(operation, null, null), "resourceSetContext");

            // Act & Assert
            ResourceSetContext context = new ResourceSetContext();

            ExceptionAssert.ThrowsArgumentNull(() => serializer.CreateODataOperation(operation, context, null), "writeContext");
        }
예제 #29
0
        public void CreateODataOperation_OmitsOperations_WhenNonFullMetadata(ODataMetadataLevel metadataLevel)
        {
            // Arrange
            ODataResourceSetSerializer serializer = new ODataResourceSetSerializer(_serializerProvider);

            IEdmTypeReference returnType = EdmCoreModel.Instance.GetPrimitive(EdmPrimitiveTypeKind.Boolean, isNullable: false);
            IEdmFunction      function   = new EdmFunction("NS", "Function", returnType, isBound: true, entitySetPathExpression: null, isComposable: false);

            ResourceSetContext     resourceSetContext = new ResourceSetContext();
            ODataSerializerContext serializerContext  = new ODataSerializerContext
            {
                MetadataLevel = metadataLevel
            };
            // Act

            ODataOperation operation = serializer.CreateODataOperation(function, resourceSetContext, serializerContext);

            // Assert
            Assert.Null(operation);
        }