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