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); }
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); }); }