public void ListOrdersShouldSucceedWhenMorePagesQueriedThanExist()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(successfulResponses, expectedRequestBaseUrl);
            var          orders = client.ListOrders("not_checking_this", locationId, 1, 10); // Note that we specify pages 1-10 when only 3 pages exist

            Assert.AreEqual(orders.Count, 9);
        }
        public void ListFilteredOrdersShouldSucceedWithNoModifierFunctions()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(
                successfulResponses, expectedRequestBaseUrl);
            var orders = client.ListFilteredOrders("not_checking_this", locationId, 1, 3);

            Assert.AreEqual(orders.Count, 9);
        }
        public void ListOrdersShouldFailWith204ForInvalidStartPageNumbers()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(
                successfulResponses, expectedRequestBaseUrl);
            var orders = client.ListOrders("not_checking_this", locationId, 5, 10);

            Assert.AreEqual(orders.Count, 0);
        }
        public void ListFilteredOrdersShouldSucceedWithAnOrderingFunction()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(
                successfulResponses, expectedRequestBaseUrl);
            var orders = client.ListFilteredOrders("not_checking_this", locationId, 1, 3, null,
                                                   ((x, y) => (0 - string.Compare(x.OrderIdentifier, y.OrderIdentifier)))); // i.e. orderbydecending

            Assert.AreEqual(orders.Count, 9);
            Assert.AreEqual(orders[0].OrderIdentifier, "i");
            Assert.AreEqual(orders[8].OrderIdentifier, "a");
        }
        public void ListFilteredOrdersShouldSucceedWithAFilterFunction()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(
                successfulResponses, expectedRequestBaseUrl);
            var orders = client.ListFilteredOrders("not_checking_this", locationId, 1, 3,
                                                   (x => (x.OrderIdentifier == "c" || x.OrderIdentifier == "i")), null);

            Assert.AreEqual(orders.Count, 2);
            Assert.AreEqual(orders[0].OrderIdentifier, "c");
            Assert.AreEqual(orders[1].OrderIdentifier, "i");
        }
        public void ListOrdersShouldSucceedDespiteInvalidEndPageNumbers()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(successfulResponses, expectedRequestBaseUrl);

            var orders = client.ListOrders("not_checking_this", locationId, 1, 10);

            Assert.AreEqual(orders.Count, 9);

            orders = client.ListOrders("not_checking_this", locationId, 3, 11);
            Assert.AreEqual(orders.Count, 3);
        }
        public void ListOrdersShouldSucceedWhenAllPagesQueried()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(successfulResponses, expectedRequestBaseUrl);
            var          orders = client.ListOrders("not_checking_this", locationId, 1, 3);

            Assert.AreEqual(orders.Count, 9);
            Assert.AreEqual(orders[0].OrderIdentifier, "a");
            Assert.AreEqual(orders[1].OrderIdentifier, "b");
            Assert.AreEqual(orders[2].OrderIdentifier, "c");
            Assert.AreEqual(orders[3].OrderIdentifier, "d");
            Assert.AreEqual(orders[4].OrderIdentifier, "e");
            Assert.AreEqual(orders[5].OrderIdentifier, "f");
            Assert.AreEqual(orders[6].OrderIdentifier, "g");
            Assert.AreEqual(orders[7].OrderIdentifier, "h");
            Assert.AreEqual(orders[8].OrderIdentifier, "i");
        }
        public void ListOrdersShouldSucceedAndAreThereMorePagesShouldBeValid()
        {
            IQueryOrders client = ClientModuleUnitTestingUtilities.GetMockedLevelUpModuleWithPaging <IQueryOrders>(successfulResponses, expectedRequestBaseUrl);
            bool         areThereMorePages;

            var orders = client.ListOrders("not_checking_this", locationId, 1, 1, out areThereMorePages);

            Assert.IsTrue(areThereMorePages);

            orders = client.ListOrders("not_checking_this", locationId, 1, 3, out areThereMorePages);
            Assert.IsFalse(areThereMorePages);

            orders = client.ListOrders("not_checking_this", locationId, 3, 3, out areThereMorePages);
            Assert.IsFalse(areThereMorePages);

            orders = client.ListOrders("not_checking_this", locationId, 2, 5, out areThereMorePages);
            Assert.IsFalse(areThereMorePages);
        }