Пример #1
0
        public void GetTemplatesNavigationRefSegmentTemplate_ReturnsTemplates_WithRouteOptions()
        {
            // Arrange
            NavigationLinkTemplateSegmentTemplate navigationSegment = new NavigationLinkTemplateSegmentTemplate(_employeeType, _entitySet)
            {
                RelatedKey = "relatedId"
            };

            // Act & Assert
            IEnumerable <string> templates = navigationSegment.GetTemplates(new ODataRouteOptions
            {
                EnableKeyInParenthesis = false
            });
            string template = Assert.Single(templates);

            Assert.Equal("/{navigationProperty}/{relatedId}/$ref", template);

            // Act & Assert
            templates = navigationSegment.GetTemplates(new ODataRouteOptions
            {
                EnableKeyAsSegment = false
            });
            template = Assert.Single(templates);
            Assert.Equal("/{navigationProperty}({relatedId})/$ref", template);
        }
Пример #2
0
        public void TryTranslateSingletonSegmentTemplate_ThrowsArgumentNull_Context()
        {
            // Arrange
            IEdmStructuredType   structuredType   = new Mock <IEdmStructuredType>().Object;
            IEdmNavigationSource navigationSource = new Mock <IEdmNavigationSource>().Object;

            NavigationLinkTemplateSegmentTemplate navigationRefSegment = new NavigationLinkTemplateSegmentTemplate(structuredType, navigationSource);

            // Act & Assert
            ExceptionAssert.ThrowsArgumentNull(() => navigationRefSegment.TryTranslate(null), "context");
        }
Пример #3
0
        public void CtorNavigationRefSegmentTemplate_SetsProperties()
        {
            // Arrange & Act
            IEdmStructuredType   structuredType   = new Mock <IEdmStructuredType>().Object;
            IEdmNavigationSource navigationSource = new Mock <IEdmNavigationSource>().Object;

            NavigationLinkTemplateSegmentTemplate navigationRefSegment = new NavigationLinkTemplateSegmentTemplate(structuredType, navigationSource);

            // Assert
            Assert.Same(structuredType, navigationRefSegment.DeclaringType);
            Assert.Same(navigationSource, navigationRefSegment.NavigationSource);
        }
Пример #4
0
        public void GetTemplatesNavigationRefSegmentTemplate_ReturnsTemplates()
        {
            // Arrange
            NavigationLinkTemplateSegmentTemplate navigationSegment = new NavigationLinkTemplateSegmentTemplate(_employeeType, _entitySet);

            // Act & Assert
            IEnumerable <string> templates = navigationSegment.GetTemplates();
            string template = Assert.Single(templates);

            Assert.Equal("/{navigationProperty}/$ref", template);

            // Arrange
            navigationSegment = new NavigationLinkTemplateSegmentTemplate(_employeeType, _entitySet)
            {
                RelatedKey = "relatedId"
            };

            // Act & Assert
            templates = navigationSegment.GetTemplates();
            Assert.Collection(templates,
                              e => Assert.Equal("/{navigationProperty}({relatedId})/$ref", e),
                              e => Assert.Equal("/{navigationProperty}/{relatedId}/$ref", e));
        }
Пример #5
0
        public void TryTranslateNavigationSegmentTemplate_ReturnsODataNavigationLinkSegment()
        {
            // Arrange
            NavigationLinkTemplateSegmentTemplate navigationSegment = new NavigationLinkTemplateSegmentTemplate(_employeeType, _entitySet);

            RouteValueDictionary          routeValueDictionary = new RouteValueDictionary(new { navigationProperty = "DirectReports" });
            ODataTemplateTranslateContext context = new ODataTemplateTranslateContext
            {
                RouteValues = routeValueDictionary,
                Model       = _model
            };

            // Act
            bool ok = navigationSegment.TryTranslate(context);

            // Assert
            Assert.True(ok);
            ODataPathSegment actual = Assert.Single(context.Segments);
            NavigationPropertyLinkSegment navSegment = Assert.IsType <NavigationPropertyLinkSegment>(actual);

            Assert.Same(_directReportsNav, navSegment.NavigationProperty);
            Assert.Same(_entitySet, navSegment.NavigationSource);
        }