public void RetrieveAllTest() { // Arrange var repository = new VendorRepository(); var expected = new List<Vendor>() { new Vendor() { VendorId = 10, CompanyName = "Amazon", Email = "*****@*****.**" }, new Vendor() { VendorId = 69, CompanyName = "ESPN", Email = "*****@*****.**" }, new Vendor() { VendorId = 82, CompanyName = "Uber", Email = "*****@*****.**" } }; // Actual var vendors = repository.RetrieveAll(); //var vendorQuery = from v in vendors // where v.Email.Contains(".net") // orderby v.CompanyName // select v; // LINQ methods such as Where takes in a delegate as the argument. The delegate // must be in the form of Func<Vendor, bool>, where Vendor is the parameter and // bool is the return type. To test this, we wrote a private method called // FilterCompanies and inserted into LINQ's Where method. //var vendorQuery = vendors.Where(FilterCompanies) // .OrderBy(OrderCompaniesByName); // Using lambda expressions within LINQ methods, instead of delegates, reduces clutter. var vendorQuery = vendors.Where(v => v.Email.Contains(".net")) .OrderBy(v => v.CompanyName); // Assert CollectionAssert.AreEqual(expected, vendorQuery.ToList()); }