private IEnumerable <IEdmEntityContainerElement> ComputeElements() { List <IEdmEntityContainerElement> elements = new List <IEdmEntityContainerElement>(); // don't import this.Extends' elements. // (all IEdmxxx like IEdmEntityContainer should let extension methods handle cross model searches). foreach (CsdlEntitySet entitySet in this.entityContainer.EntitySets) { CsdlSemanticsEntitySet semanticsSet = new CsdlSemanticsEntitySet(this, entitySet); elements.Add(semanticsSet); } foreach (CsdlSingleton singleton in entityContainer.Singletons) { CsdlSemanticsSingleton semanticsSingleton = new CsdlSemanticsSingleton(this, singleton); elements.Add(semanticsSingleton); } foreach (CsdlOperationImport operationImport in this.entityContainer.OperationImports) { this.AddOperationImport(operationImport, elements); } return(elements); }
public void FindNavigationTargetShouldReturnSetIfItIsFound() { var testSubject = new CsdlSemanticsEntitySet(this.semanticContainer, this.csdlEntitySet); var result = testSubject.FindNavigationTarget(this.navigationProperty); result.Should().BeAssignableTo<CsdlSemanticsEntitySet>(); result.As<CsdlSemanticsEntitySet>().Name.Should().Be("EntitySet"); result.Errors().Should().BeEmpty(); }
public void FindNavigationTargetShouldReturnUnresolvedEntitySetIfEntitySetIsNotFound() { var nonExistentBinding = new CsdlNavigationPropertyBinding("Navigation", "NonExistent", null, new CsdlLocation(1, 1)); var testSubject = new CsdlSemanticsEntitySet(this.semanticContainer, new CsdlEntitySet("Fake", "FQ.NS.EntityType", new[] { nonExistentBinding }, null, null)); var result = testSubject.FindNavigationTarget(this.navigationProperty); result.Should().BeAssignableTo<UnresolvedEntitySet>(); result.As<UnresolvedEntitySet>().Name.Should().Be("NonExistent"); result.Errors().Should().Contain(e => e.ErrorLocation == nonExistentBinding.Location && e.ErrorCode == EdmErrorCode.BadUnresolvedEntitySet); }
public void FindNavigationTargetShouldReturnNullIfNavigationPropertyHasNoBinding() { var testSubject = new CsdlSemanticsEntitySet(this.semanticContainer, this.csdlEntitySet); Assert.IsTrue(testSubject.FindNavigationTarget(new CsdlSemanticsNavigationProperty(this.semanticEntityType, new CsdlNavigationProperty("Fake", "FQ.NS.EntityType", null, null, false, null, Enumerable.Empty<CsdlReferentialConstraint>(), null, null))) is IEdmUnknownEntitySet); }
private IEdmNavigationPropertyBinding ParseSingleBinding(string path, string target, CsdlLocation location = null) { var binding = new CsdlNavigationPropertyBinding(path, target, null, location); var testSubject = new CsdlSemanticsEntitySet(this.semanticContainer, new CsdlEntitySet("Fake", "FQ.NS.EntityType", new[] { binding }, null, null)); testSubject.NavigationPropertyBindings.Should().HaveCount(1); var result = testSubject.NavigationPropertyBindings.Single(); return result; }
private IEnumerable<IEdmEntityContainerElement> ComputeElements() { List<IEdmEntityContainerElement> elements = new List<IEdmEntityContainerElement>(); // don't import this.Extends' elements. // (all IEdmxxx like IEdmEntityContainer should let extension methods handle cross model searches). foreach (CsdlEntitySet entitySet in this.entityContainer.EntitySets) { CsdlSemanticsEntitySet semanticsSet = new CsdlSemanticsEntitySet(this, entitySet); elements.Add(semanticsSet); } foreach (CsdlSingleton singleton in entityContainer.Singletons) { CsdlSemanticsSingleton semanticsSingleton = new CsdlSemanticsSingleton(this, singleton); elements.Add(semanticsSingleton); } foreach (CsdlOperationImport operationImport in this.entityContainer.OperationImports) { this.AddOperationImport(operationImport, elements); } return elements; }