Пример #1
0
        public void OmitStreamProperty(string streamPropertyNameToOmit, int expectedCount)
        {
            var resource = new ODataResource();
            ODataMessageWriterSettings settings = new ODataMessageWriterSettings();

            TestMetadataSelector selector = new TestMetadataSelector();

            selector.PropertyToOmit   = streamPropertyNameToOmit;
            settings.MetadataSelector = selector;
            ODataResourceMetadataBuilder resourceMetadataBuilder = fullMetadataLevel.CreateResourceMetadataBuilder(
                resource,
                personTypeContext,
                null,
                HardCodedTestModel.GetDogType(),
                new SelectedPropertiesNode(SelectedPropertiesNode.SelectionType.EntireSubtree),
                /*isResponse*/ true,
                /*keyAsSegment*/ false,
                /*requestUri*/ null,
                /*settings*/ settings);

            fullMetadataLevel.InjectMetadataBuilder(resource, resourceMetadataBuilder);
            resource.MetadataBuilder.Should().BeSameAs(resourceMetadataBuilder);

            int count = 0;

            while (resource.MetadataBuilder.GetNextUnprocessedStreamProperty() != null)
            {
                count++;
            }
            ;

            Assert.True(count == expectedCount);
        }
        public void OmitNavigationProperties(string navProperty, int expected)
        {
            var resource = new ODataResource();
            ODataMessageWriterSettings settings = new ODataMessageWriterSettings();
            TestMetadataSelector       selector = new TestMetadataSelector();

            selector.PropertyToOmit   = navProperty;
            settings.MetadataSelector = selector;
            ODataResourceMetadataBuilder resourceMetadataBuilder = fullMetadataLevel.CreateResourceMetadataBuilder(
                resource,
                personTypeContext,
                null,
                HardCodedTestModel.GetPersonType(),
                new SelectedPropertiesNode(SelectedPropertiesNode.SelectionType.EntireSubtree),
                /*isResponse*/ true,
                /*keyAsSegment*/ false,
                /*requestUri*/ null,
                /*settings*/ settings);


            fullMetadataLevel.InjectMetadataBuilder(resource, resourceMetadataBuilder);
            Assert.Same(resourceMetadataBuilder, resource.MetadataBuilder);

            int count = 0;

            while (resource.MetadataBuilder.GetNextUnprocessedNavigationLink() != null)
            {
                count++;
            }
            ;

            Assert.True(count == expected);
        }
Пример #3
0
        public void ReturnSpecifiedNavigationLinkWithFullMetadata()
        {
            var resource = new ODataResource();
            ODataMessageWriterSettings settings = new ODataMessageWriterSettings();

            TestMetadataSelector selector = new TestMetadataSelector();

            selector.NavigationPropertyToReturn = new List <IEdmNavigationProperty> {
                (IEdmNavigationProperty)HardCodedTestModel.GetPersonType().FindProperty("MyFriendsDogs")
            };

            settings.MetadataSelector = selector;
            ODataResourceMetadataBuilder resourceMetadataBuilder = fullMetadataLevel.CreateResourceMetadataBuilder(
                resource,
                personTypeContext,
                null,
                HardCodedTestModel.GetPersonType(),
                new SelectedPropertiesNode(SelectedPropertiesNode.SelectionType.EntireSubtree),
                /*isResponse*/ true,
                /*keyAsSegment*/ false,
                /*requestUri*/ null,
                /*settings*/ settings);

            fullMetadataLevel.InjectMetadataBuilder(resource, resourceMetadataBuilder);
            resource.MetadataBuilder.Should().BeSameAs(resourceMetadataBuilder);

            int count = 0;

            while (resource.MetadataBuilder.GetNextUnprocessedNavigationLink() != null)
            {
                count++;
            }
            ;

            Assert.True(count == 1);
        }