public void SortingWithGreeniesUseObjectDefaultSort() { var items = new ProductDeliveryResponse[] { new ProductDeliveryResponse { PostalCode = 1, DeliveryDate = DateTime.Now, IsGreenDelivery = false }, new ProductDeliveryResponse { PostalCode = 2, DeliveryDate = DateTime.Now.AddDays(5), IsGreenDelivery = true }, new ProductDeliveryResponse { PostalCode = 3, DeliveryDate = DateTime.Now.AddDays(1), IsGreenDelivery = true }, new ProductDeliveryResponse { PostalCode = 4, DeliveryDate = DateTime.Now.AddDays(2), IsGreenDelivery = true }, new ProductDeliveryResponse { PostalCode = 5, DeliveryDate = DateTime.Now.AddDays(3), IsGreenDelivery = true }, }; var greenCargoPrioritySorter = new ProductDeliveryResponseSorter(DateTime.Now, 3); Array.Sort(items, greenCargoPrioritySorter); Assert.IsTrue(items[0].PostalCode == 3, "Third item is within three days and green!"); Assert.IsTrue(items[1].PostalCode == 4); Assert.IsTrue(items[2].PostalCode == 5); Assert.IsTrue(items[3].PostalCode == 1); Assert.IsTrue(items[4].PostalCode == 2); }
public void SortWithEqualDateReturnGreensFirst() { var items = new ProductDeliveryResponse[] { new ProductDeliveryResponse { PostalCode = 1, DeliveryDate = DateTime.Now, IsGreenDelivery = false }, new ProductDeliveryResponse { PostalCode = 2, DeliveryDate = DateTime.Now, IsGreenDelivery = true }, }; Array.Sort(items); Assert.IsTrue(items[0].PostalCode == 2, "Same same, but different."); }
public void DeliverySorterPrioritizeTests() { var items = new ProductDeliveryResponse[] { new ProductDeliveryResponse { PostalCode = 1, DeliveryDate = DateTime.Now, IsGreenDelivery = false }, new ProductDeliveryResponse { PostalCode = 2, DeliveryDate = DateTime.Now.AddDays(5), IsGreenDelivery = true }, new ProductDeliveryResponse { PostalCode = 3, DeliveryDate = DateTime.Now.AddDays(2), IsGreenDelivery = true } }; var greenCargoPrioritySorter = new ProductDeliveryResponseSorter(DateTime.Now, 3); Assert.IsFalse(greenCargoPrioritySorter.IsPrioritized(items[0]), "Isn't green enough."); Assert.IsFalse(greenCargoPrioritySorter.IsPrioritized(items[1]), "Too slow."); Assert.IsTrue(greenCargoPrioritySorter.IsPrioritized(items[2]), "Waow waow!"); }
public void SortingOfSameTypeUseObjectDefaultSort() { var items = new ProductDeliveryResponse[] { new ProductDeliveryResponse { PostalCode = 1, DeliveryDate = DateTime.Now, IsGreenDelivery = true }, new ProductDeliveryResponse { PostalCode = 2, DeliveryDate = DateTime.Now.AddDays(5), IsGreenDelivery = true }, new ProductDeliveryResponse { PostalCode = 3, DeliveryDate = DateTime.Now.AddDays(2), IsGreenDelivery = true } }; var greenCargoPrioritySorter = new ProductDeliveryResponseSorter(DateTime.Now, 3); Array.Sort(items, greenCargoPrioritySorter); Assert.IsTrue(items[0].PostalCode == 1, "First date first."); Assert.IsTrue(items[1].PostalCode == 3, "Next is next?"); Assert.IsTrue(items[2].PostalCode == 2, "And... last is last!"); }