Esempio n. 1
0
        public void GeometryParameterShouldParseCorrectly()
        {
            var point = GeometryPoint.Create(1.0, 2.0);
            ICollection <OperationSegmentParameter> parsedParameters;

            TryParseOperationParameters("GetColorAtPosition", "position=geometry'" + SpatialHelpers.WriteSpatial(point) + "',includeAlpha=true", null, HardCodedTestModel.GetColorAtPositionFunction(), out parsedParameters).Should().BeTrue();
            parsedParameters.Should().HaveCount(2);
            parsedParameters.First().ShouldBeConstantParameterWithValueType("position", point);
        }
Esempio n. 2
0
        public void WildcardDoesNotPreemptOtherSelectionItems()
        {
            // Arrange
            ODataSelectPath coolPeoplePath = new ODataSelectPath(new OperationSegment(new[] { HardCodedTestModel.GetColorAtPositionFunction() }, null));
            ODataSelectPath stuffPath      = new ODataSelectPath(new DynamicPathSegment("stuff"));

            SelectExpandBinder binderForPainting = new SelectExpandBinder(this.V4configuration,
                                                                          new ODataPathInfo(HardCodedTestModel.GetPaintingType(), null), null);

            SelectToken selectToken = new SelectToken(new SelectTermToken[]
            {
                new SelectTermToken(new NonSystemToken("Fully.Qualified.Namespace.GetColorAtPosition", null, null)), // operation
                new SelectTermToken(new NonSystemToken("Owner", null, null)),                                        // navigation property
                new SelectTermToken(new NonSystemToken("stuff", null, null)),                                        // dynamic property
                new SelectTermToken(new NonSystemToken("Colors", null, null)),                                       // structural property
                new SelectTermToken(new NonSystemToken("*", null, null))                                             // *
            });

            // Act
            SelectExpandClause clause = binderForPainting.Bind(null, selectToken);

            // Assert
            Assert.NotNull(clause);
            Assert.Equal(4, clause.SelectedItems.Count());

            // one is "*"
            Assert.Single(clause.SelectedItems.OfType <WildcardSelectItem>());

            IList <PathSelectItem> pathSelectItems = clause.SelectedItems.OfType <PathSelectItem>().ToList();

            Assert.Equal(3, pathSelectItems.Count);
            Assert.Contains(pathSelectItems, (x) => x.SelectedPath.Equals(coolPeoplePath));
            Assert.Contains(pathSelectItems, (x) => x.SelectedPath.Equals(stuffPath));
            Assert.Contains(pathSelectItems, (x) =>
            {
                NavigationPropertySegment segment = x.SelectedPath.LastSegment as NavigationPropertySegment;
                if (segment != null)
                {
                    return(segment.NavigationProperty.Name == "Owner");
                }

                return(false);
            });
        }