public void SingleLevelTypeSegmentWorks() { NonSystemToken typeSegment = new NonSystemToken("Fully.Qualified.Namespace.Employee", null, new NonSystemToken("WorkEmail", null, null)); PathSegmentToken firstNonTypeToken; IEdmStructuredType entityType = HardCodedTestModel.GetPersonType(); var result = SelectExpandPathBinder.FollowTypeSegments(typeSegment, HardCodedTestModel.TestModel, 800, DefaultUriResolver, ref entityType, out firstNonTypeToken); result.Should().OnlyContain(x => x.Equals(new TypeSegment(HardCodedTestModel.GetEmployeeType(), null))); entityType.Should().Be(HardCodedTestModel.GetEmployeeType()); firstNonTypeToken.ShouldBeNonSystemToken("WorkEmail"); }
public void DeepPath() { NonSystemToken typeSegment = new NonSystemToken("Fully.Qualified.Namespace.Employee", null, new NonSystemToken("Fully.Qualified.Namespace.Manager", null, new NonSystemToken("NumberOfReports", null, null))); PathSegmentToken firstNonTypeToken; IEdmStructuredType entityType = HardCodedTestModel.GetPersonType(); var result = SelectExpandPathBinder.FollowTypeSegments(typeSegment, HardCodedTestModel.TestModel, 800, DefaultUriResolver, ref entityType, out firstNonTypeToken); result.Should().Contain(x => x.As <TypeSegment>().EdmType == HardCodedTestModel.GetEmployeeType()) .And.Contain(x => x.As <TypeSegment>().EdmType == HardCodedTestModel.GetManagerType()); entityType.Should().Be(HardCodedTestModel.GetManagerType()); firstNonTypeToken.ShouldBeNonSystemToken("NumberOfReports"); }