public void When_Querying_For_Series_Of_NavigationProperties_Then_Each_Query_Return_Expected_EntityType_Or_Collection()
        {
            using (var scenario =
                    new ODataScenario()
                        .WithSuppliedProducts(Any.Suppliers())
                        .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery<SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet<SuppliedProduct> productSet = new ReadOnlyQueryableSet<SuppliedProduct>(dQuery, context);
                var products = productSet.Expand(p => p.Supplier).ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(25);

                var suppliedProduct = products.CurrentPage.RandomElement() as SuppliedProduct;
                string supplierPath = suppliedProduct.GetPath("Supplier");
                var supplierQuery = context.CreateQuery<Supplier>(supplierPath);
                IReadOnlyQueryableSet<Supplier> supplierSet = new ReadOnlyQueryableSet<Supplier>(supplierQuery, context);
                //TODO - Unable to expand a collection
                var supplier = supplierSet.Expand(s => s.Products).ExecuteSingleAsync().Result;
                suppliedProduct.Supplier.Id.Should().Be(supplier.Id);

                // Hence querying for the SuppliedProducts
                string productsPath = supplier.GetPath("Products");
                dQuery = context.CreateQuery<SuppliedProduct>(productsPath);
                productSet = new ReadOnlyQueryableSet<SuppliedProduct>(dQuery, context);
                products = productSet.ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(5);
                products.CurrentPage.Should().Contain(p => p.Id == suppliedProduct.Id);
            }
        }
Exemplo n.º 2
0
        public void When_Querying_For_Series_Of_NavigationProperties_Then_Each_Query_Return_Expected_EntityType_Or_Collection()
        {
            using (var scenario =
                       new ODataScenario()
                       .WithSuppliedProducts(Any.Suppliers())
                       .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery <SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet <SuppliedProduct> productSet = new ReadOnlyQueryableSet <SuppliedProduct>(dQuery, context);
                var products = productSet.Expand(p => p.Supplier).ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(25);

                var    suppliedProduct = products.CurrentPage.RandomElement() as SuppliedProduct;
                string supplierPath    = suppliedProduct.GetPath("Supplier");
                var    supplierQuery   = context.CreateQuery <Supplier>(supplierPath);
                IReadOnlyQueryableSet <Supplier> supplierSet = new ReadOnlyQueryableSet <Supplier>(supplierQuery, context);
                //TODO - Unable to expand a collection
                var supplier = supplierSet.Expand(s => s.Products).ExecuteSingleAsync().Result;
                suppliedProduct.Supplier.Id.Should().Be(supplier.Id);

                // Hence querying for the SuppliedProducts
                string productsPath = supplier.GetPath("Products");
                dQuery     = context.CreateQuery <SuppliedProduct>(productsPath);
                productSet = new ReadOnlyQueryableSet <SuppliedProduct>(dQuery, context);
                products   = productSet.ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(5);
                products.CurrentPage.Should().Contain(p => p.Id == suppliedProduct.Id);
            }
        }
Exemplo n.º 3
0
        public void When_Using_Filter_Clause_On_Expanded_Navigation_Property_Then_Returned_Sequence_Is_Filtered()
        {
            using (var scenario =
                       new ODataScenario()
                       .WithSuppliedProducts(Any.Suppliers())
                       .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery <SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet <ISuppliedProduct> productSet = new ReadOnlyQueryableSet <ISuppliedProduct>(dQuery, context);
                var products = productSet.Expand(p => (p as SuppliedProduct).Supplier).
                               Where(p => p.Supplier.Id == 2).
                               ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(5);
            }
        }
Exemplo n.º 4
0
        public void When_Using_Expand_Clause_On_EntityType_Interface_Then_Resulting_Sequence_Must_Be_Expanded()
        {
            using (var scenario =
                       new ODataScenario()
                       .WithSuppliedProducts(Any.Suppliers())
                       .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery <SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet <ISuppliedProduct> productSet = new ReadOnlyQueryableSet <ISuppliedProduct>(dQuery, context);

                var products = productSet.Expand(p => p.Supplier)
                               .ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(25);
                products.CurrentPage.Should().OnlyContain(p => p.Supplier != null);
            }
        }
        public void When_Querying_For_NavigationProperty_Then_Return_Single_Expected_EntityType()
        {
            using (var scenario =
                    new ODataScenario()
                        .WithSuppliedProducts(Any.Suppliers())
                        .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery<SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet<SuppliedProduct> productSet = new ReadOnlyQueryableSet<SuppliedProduct>(dQuery, context);
                var products = productSet.Expand(p => p.Supplier).ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(25);

                var suppliedProduct = products.CurrentPage.RandomElement() as SuppliedProduct;
                string supplierPath = suppliedProduct.GetPath("Supplier");
                var supplierQuery = context.CreateQuery<Supplier>(supplierPath);

                IReadOnlyQueryableSet<Supplier> supplierSet = new ReadOnlyQueryableSet<Supplier>(supplierQuery, context);
                var supplier = supplierSet.ExecuteSingleAsync().Result;
                suppliedProduct.Supplier.Id.Should().Be(supplier.Id);
            }
        }
Exemplo n.º 6
0
        public void When_Querying_For_NavigationProperty_Then_Return_Single_Expected_EntityType()
        {
            using (var scenario =
                       new ODataScenario()
                       .WithSuppliedProducts(Any.Suppliers())
                       .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery <SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet <SuppliedProduct> productSet = new ReadOnlyQueryableSet <SuppliedProduct>(dQuery, context);
                var products = productSet.Expand(p => p.Supplier).ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(25);

                var    suppliedProduct = products.CurrentPage.RandomElement() as SuppliedProduct;
                string supplierPath    = suppliedProduct.GetPath("Supplier");
                var    supplierQuery   = context.CreateQuery <Supplier>(supplierPath);

                IReadOnlyQueryableSet <Supplier> supplierSet = new ReadOnlyQueryableSet <Supplier>(supplierQuery, context);
                var supplier = supplierSet.ExecuteSingleAsync().Result;
                suppliedProduct.Supplier.Id.Should().Be(supplier.Id);
            }
        }
Exemplo n.º 7
0
        public void When_Using_Expand_Clause_On_EntityType_Interface_Then_Resulting_Sequence_Must_Be_Expanded()
        {
            using (var scenario =
                    new ODataScenario()
                        .WithSuppliedProducts(Any.Suppliers())
                        .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery<SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet<ISuppliedProduct> productSet = new ReadOnlyQueryableSet<ISuppliedProduct>(dQuery, context);

                var products = productSet.Expand(p => p.Supplier)
                    .ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(25);
                products.CurrentPage.Should().OnlyContain(p => p.Supplier != null);
            }
        }
Exemplo n.º 8
0
        public void When_Using_Filter_Clause_On_Expanded_Navigation_Property_Then_Returned_Sequence_Is_Filtered()
        {
            using (var scenario =
                    new ODataScenario()
                        .WithSuppliedProducts(Any.Suppliers())
                        .Start())
            {
                var context = GetDataServiceContext(scenario.GetBaseAddress());

                var dQuery = context.CreateQuery<SuppliedProduct>("/" + "SuppliedProducts");
                IReadOnlyQueryableSet<ISuppliedProduct> productSet = new ReadOnlyQueryableSet<ISuppliedProduct>(dQuery, context);
                var products = productSet.Expand(p => (p as SuppliedProduct).Supplier).
                    Where(p => p.Supplier.Id == 2).
                    ExecuteAsync().Result;
                products.CurrentPage.Count.Should().Be(5);
            }
        }