コード例 #1
0
        public void Linq6_Customers_Returns5()
        {
            var init = DataSource.Customers.ToList();
            var aft  = LinqTask.Linq6(DataSource.Customers).ToList();

            Assert.That(LinqTask.Linq6(DataSource.Customers).Count(), Is.EqualTo(5));
        }
コード例 #2
0
        public void Linq4_Customers_CustomersAndDateOfEntry()
        {
            var result = LinqTask.Linq4(DataSource.Customers).ToList();

            Assert.That(() => result.Count, Is.EqualTo(DataSource.Customers.Count - 4));
            foreach (var(customer, dateOfEntry) in result)
            {
                Assert.That(FindCustomerOrdersMinDate(customer), Is.EqualTo(dateOfEntry));
            }
        }
コード例 #3
0
        public void Linq7_Customers_Returns5()
        {
            var expectedResult = new[]
            {
                new Linq7CategoryGroup
                {
                    Category          = "Beverages",
                    UnitsInStockGroup = new[]
                    {
                        new Linq7UnitsInStockGroup
                        {
                            UnitsInStock = 39,
                            Prices       = new [] { 19.0000M }
                        },
                        new Linq7UnitsInStockGroup
                        {
                            UnitsInStock = 17,
                            Prices       = new [] { 18.0000M }
                        }
                    }
                },
                new Linq7CategoryGroup
                {
                    Category          = "Condiments",
                    UnitsInStockGroup = new[]
                    {
                        new Linq7UnitsInStockGroup
                        {
                            UnitsInStock = 15,
                            Prices       = new [] { 10.0000M, 40.0000M }
                        },
                        new Linq7UnitsInStockGroup
                        {
                            UnitsInStock = 13,
                            Prices       = new [] { 30.0000M }
                        }
                    }
                }
            };

            var result = LinqTask.Linq7(DataSource.Products);

            foreach (var categoryGroup in result)
            {
                var expectedCategoryGroup = expectedResult.Single(_ => _.Category == categoryGroup.Category);
                foreach (var unitInStockGroup in categoryGroup.UnitsInStockGroup)
                {
                    var expectedUnitInStockGroup = expectedCategoryGroup
                                                   .UnitsInStockGroup.Single(_ => _.UnitsInStock == unitInStockGroup.UnitsInStock);
                    CollectionAssert.AreEqual(expectedUnitInStockGroup.Prices, unitInStockGroup.Prices);
                }
            }
        }
コード例 #4
0
        public void Linq6_Customers_ReturnsFilteredCustomers()
        {
            var expectedResult = DataSource.Customers.ToList();

            expectedResult.RemoveAt(0);
            expectedResult.RemoveAt(0);
            expectedResult.RemoveAt(3);

            var result = LinqTask.Linq6(DataSource.Customers).ToList();

            CollectionAssert.AreEquivalent(expectedResult, result);
        }
コード例 #5
0
        public void Linq2UsingGroup_CustomersAndSuppliers_2CustomersHaveSuppliers()
        {
            var result = LinqTask.Linq2UsingGroup(DataSource.Customers, DataSource.Suppliers).ToList();

            Assert.That(() => result.Count, Is.EqualTo(DataSource.Customers.Count));
            foreach (var(customer, suppliers) in result)
            {
                foreach (var supplier in suppliers)
                {
                    StringAssert.AreEqualIgnoringCase(customer.City, supplier.City);
                    StringAssert.AreEqualIgnoringCase(customer.Country, supplier.Country);
                }
            }
        }
コード例 #6
0
        public void Linq8_Products_ReturnsGroupedProducts()
        {
            decimal cheap = 10, middle = 30, expensive = 40;
            var     result = LinqTask.Linq8(DataSource.Products, cheap, middle, expensive).ToList();

            var cheapProducts = result.Single(_ => _.category == cheap).products;

            Assert.That(cheapProducts.Count(), Is.EqualTo(1));
            var middleProducts = result.Single(_ => _.category == middle).products;

            Assert.That(middleProducts.Count(), Is.EqualTo(3));
            var expensiveProducts = result.Single(_ => _.category == expensive).products;

            Assert.That(expensiveProducts.Count(), Is.EqualTo(1));
        }
コード例 #7
0
        public void Linq5_Customers_CustomersAndDateOfEntry()
        {
            var result = LinqTask.Linq5(DataSource.Customers).ToList();

            Assert.That(() => result.Count, Is.EqualTo(DataSource.Customers.Count - 1));
            foreach (var(customer, dateOfEntry) in result)
            {
                Assert.That(FindCustomerOrdersMinDate(customer), Is.EqualTo(dateOfEntry));
            }

            Assert.That(result[0].customer, Is.EqualTo(DataSource.Customers[1]));
            Assert.That(result[1].customer, Is.EqualTo(DataSource.Customers[3]));
            Assert.That(result[2].customer, Is.EqualTo(DataSource.Customers[2]));
            Assert.That(result[3].customer, Is.EqualTo(DataSource.Customers[4]));
            Assert.That(result[4].customer, Is.EqualTo(DataSource.Customers[0]));
        }
コード例 #8
0
        public void Linq9_Customers_ReturnsGroupedProducts()
        {
            var expected = new List <(string city, int averageIncome, int averageIntensity)>
            {
                ("Berlin", 2022, 3),
                ("Mexico D.F.", 680, 2),
                ("London", 690, 1)
            };

            var result = LinqTask.Linq9(DataSource.Customers).ToList();

            foreach (var valueTuple in result)
            {
                var expectedValue = expected.Single(_ => _.city == valueTuple.city);
                Assert.That(expectedValue.averageIncome, Is.EqualTo(valueTuple.averageIncome));
                Assert.That(expectedValue.averageIntensity, Is.EqualTo(valueTuple.averageIntensity));
            }
        }
コード例 #9
0
 public void Linq4_NullCustomer_ThrowsArgumentNullException()
 {
     Assert.That(() => LinqTask.Linq4(null).ToList(), Throws.ArgumentNullException);
 }
コード例 #10
0
 public int Linq3_Limit_ReturnsCustomersCount(decimal limit)
 {
     return(LinqTask.Linq3(DataSource.Customers, limit).Count());
 }
コード例 #11
0
 public void Linq10_NullSuppliers_ThrowsArgumentNullException()
 {
     Assert.That(() => LinqTask.Linq10(null).ToList(), Throws.ArgumentNullException);
 }
コード例 #12
0
        public void Linq10_Suppliers_ReturnsAggregateString()
        {
            string result = LinqTask.Linq10(DataSource.Suppliers);

            StringAssert.AreEqualIgnoringCase("UKUSAJapanSpainBrazilSwedenGermanyAustralia", result);
        }
コード例 #13
0
 public void Linq8_NullProducts_ThrowsArgumentNullException()
 {
     Assert.That(() => LinqTask.Linq8(null, 42, 42, 42).ToList(), Throws.ArgumentNullException);
 }
コード例 #14
0
 public void Linq1_NullSource_ThrowsArgumentNullException()
 {
     Assert.That(() => LinqTask.Linq1(null, 42).ToList(), Throws.ArgumentNullException);
 }