Beispiel #1
0
        public void GetTemplatesKeySegmentTemplate_ReturnsTemplates_ForCompositeKeys()
        {
            // Arrange
            EdmEntityType         customerType  = new EdmEntityType("NS", "Customer");
            EdmStructuralProperty firstProperty = customerType.AddStructuralProperty("firstName", EdmPrimitiveTypeKind.String);
            EdmStructuralProperty lastProperty  = customerType.AddStructuralProperty("lastName", EdmPrimitiveTypeKind.String);

            customerType.AddKeys(firstProperty, lastProperty);
            IDictionary <string, string> keys = new Dictionary <string, string>
            {
                { "firstName", "{key1}" },
                { "lastName", "{key2}" }
            };

            KeySegmentTemplate keySegment = new KeySegmentTemplate(keys, customerType, null);

            // Act & Assert
            IEnumerable <string> templates = keySegment.GetTemplates();

            Assert.Collection(templates,
                              e =>
            {
                Assert.Equal("(firstName={key1},lastName={key2})", e);
            },
                              e =>
            {
                Assert.Equal("/firstName={key1},lastName={key2}", e);
            });

            // Act & Assert
            templates = keySegment.GetTemplates(new ODataRouteOptions
            {
                EnableKeyAsSegment = false
            });

            string template = Assert.Single(templates);

            Assert.Equal("(firstName={key1},lastName={key2})", template);

            // Act & Assert
            templates = keySegment.GetTemplates(new ODataRouteOptions
            {
                EnableKeyInParenthesis = false
            });

            template = Assert.Single(templates);
            Assert.Equal("/firstName={key1},lastName={key2}", template);
        }
Beispiel #2
0
        public void GetTemplatesKeySegmentTemplate_ReturnsTemplates()
        {
            // Arrange
            IDictionary <string, string> keys = new Dictionary <string, string>
            {
                { "customerId", "{key}" }
            };

            KeySegmentTemplate keySegment = new KeySegmentTemplate(keys, _customerType, _customers);

            // Act & Assert
            IEnumerable <string> templates = keySegment.GetTemplates();

            Assert.Collection(templates,
                              e =>
            {
                Assert.Equal("({key})", e);
            },
                              e =>
            {
                Assert.Equal("/{key}", e);
            });

            // Act & Assert
            templates = keySegment.GetTemplates(new ODataRouteOptions
            {
                EnableKeyAsSegment = false
            });

            string template = Assert.Single(templates);

            Assert.Equal("({key})", template);

            // Act & Assert
            templates = keySegment.GetTemplates(new ODataRouteOptions
            {
                EnableKeyInParenthesis = false
            });

            template = Assert.Single(templates);
            Assert.Equal("/{key}", template);
        }