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