public void SendEmailTestCollectionDictionary() { // Arrange var vendorRepository = new VendorRepository(); var vendorsCollection = vendorRepository.RetrieveCollection(); var expected = new List<string>() { "Message sent: Important message for: IBM", "Message sent: Important message for: GE" }; // When casting a collection to a dictionary, we must give .ToDictionary() // a key-selector function argument to extract the keys for the dictionary. // In this case, we want to use the company name as the key. The lambda // expression says for every item v in the collection, use the company name // as the key. var vendors = vendorsCollection.ToDictionary(v => v.CompanyName); // Act var actual = Vendor.SendEmail(vendors.Values, "Test Message"); // Assert CollectionAssert.AreEqual(expected, actual); }
public void SendEmailTestCollectionArray() { // Arrange var vendorRepository = new VendorRepository(); var vendorsCollection = vendorRepository.RetrieveCollection(); var expected = new List<string>() { "Message sent: Important message for: IBM", "Message sent: Important message for: GE" }; // Since .RetrieveCollection() returns an ICollection<Vendor>, we // must cast it in order for us to use vendorsCollection as an Array. var vendors = vendorsCollection.ToArray(); Console.WriteLine(vendors.Length); // Act var actual = Vendor.SendEmail(vendors, "Test Message"); // Assert CollectionAssert.AreEqual(expected, actual); }
public void SendEmailTestCollectionList() { // Arrange var vendorRepository = new VendorRepository(); var vendorsCollection = vendorRepository.RetrieveCollection(); var expected = new List<string>() { "Message sent: Important message for: IBM", "Message sent: Important message for: GE" }; var vendors = vendorsCollection.ToList(); Console.WriteLine(vendors.Count); // Act var actual = Vendor.SendEmail(vendors, "Test Message"); // Assert CollectionAssert.AreEqual(expected, actual); }
public void SendEmailTestAdd() { // Arrange var vendorRepository = new VendorRepository(); var vendorsCollection = vendorRepository.RetrieveCollection(); // Collection has 2 items. vendorsCollection.Add(new Vendor() {CompanyName = "NBC", Email = "*****@*****.**", VendorId = 25}); // The returned collection is MUTABLE, meaning after we add a new vendor to the vendorRepository // and then retrieve the same collection, that collection would have increased by 1. var vendorsCollectionMaster = vendorRepository.RetrieveCollection(); // Collection now has 3 items. // Prevent changes to the collection, .RetrieveCollection() would need to return IEnumerable<T> // instead of ICollection<T>. IEnumerable<T> collections can only be enumerated, not modified // because they're readonly. var expected = new List<string>() { "Message sent: Important message for: IBM", "Message sent: Important message for: GE", "Message sent: Important message for: NBC", }; var vendors = vendorsCollection.ToList(); Console.WriteLine(vendors.Count); // Act var actual = Vendor.SendEmail(vendors, "Test Message"); // Assert CollectionAssert.AreEqual(expected, actual); }
public void RetrieveTestCollection() { // Arrange var repository = new VendorRepository(); var expected = new List<Vendor>(); expected.Add(new Vendor() { CompanyName = "IBM", Email = "*****@*****.**", VendorId = 12345 }); expected.Add(new Vendor() { CompanyName = "GE", Email = "*****@*****.**", VendorId = 54321 }); // Act var actual = repository.RetrieveCollection(); // Assert CollectionAssert.AreEqual(expected, actual.ToList()); }