public void WhenSilverCustomerHasOrdersWithin30DaysWithAValueOfOver600ThenHeIsQualified() { var customer = GetCustomer("Silver", 1, new List <Order>() { GetOrder(DateTime.UtcNow, 700), }); var statusRepo = new CustomerStatusLevelRepository(); var nextLevel = statusRepo.GetNextLevel(customer.Status.Level); var isQualified = customer.IsQualifiedForNextLevel(nextLevel, 7); Assert.IsTrue(isQualified); }
public void WhenSilverCustomerHasOrdersWithin30DaysWithAValueOfOver2000ThenHeIsNotQualifiedForPlatinum() { var customer = GetCustomer("Silver", 1, new List <Order>() { GetOrder(DateTime.UtcNow, 2000), }); var statusRepo = new CustomerStatusLevelRepository(); var platinumLevel = statusRepo.GetNextLevel(customer.Status.Level + 1); var isQualified = customer.IsQualifiedForNextLevel(platinumLevel, 7); Assert.IsFalse(isQualified); }
public void WhenGoldCustomerHasOrdersWithin30DaysWithAValueLessThan1000ThenHeIsNotQualified() { var customer = GetCustomer("Gold", 2, new List <Order>() { GetOrder(DateTime.UtcNow, 700), }, DateTime.UtcNow.AddDays(-1)); var statusRepo = new CustomerStatusLevelRepository(); var nextLevel = statusRepo.GetNextLevel(customer.Status.Level); var isQualified = customer.IsQualifiedForNextLevel(nextLevel, 7); Assert.IsFalse(isQualified); }
public void WhenRegularCustomerHasNoPriorHistoryThenNotQualified() { var customer = GetCustomer("Regular", 0, new List <Order>() { GetOrder(DateTime.UtcNow, 299) }); var statusRepo = new CustomerStatusLevelRepository(); var nextLevel = statusRepo.GetNextLevel(customer.Status.Level); var isQualified = customer.IsQualifiedForNextLevel(nextLevel, 7); Assert.IsFalse(isQualified); }
public void WhenSilverCustomerWasLastBumpedLessThanSevenDaysAgoHeDoesNotQualify() { var customer = GetCustomer("Silver", 1, new List <Order>() { GetOrder(DateTime.UtcNow, 700), }, DateTime.UtcNow.AddDays(-1)); var statusRepo = new CustomerStatusLevelRepository(); var nextLevel = statusRepo.GetNextLevel(customer.Status.Level); var isQualified = customer.IsQualifiedForNextLevel(nextLevel, 7); Assert.IsFalse(isQualified); }
public void WhenRegularCustomerHasTwoOrdersWithMoreThan30DaysThenHeIsNotQualified() { var customer = GetCustomer("Regular", 0, new List <Order>() { GetOrder(DateTime.UtcNow, 30), GetOrder(DateTime.UtcNow.AddDays(-40), 100) }); var statusRepo = new CustomerStatusLevelRepository(); var nextLevel = statusRepo.GetNextLevel(customer.Status.Level); var isQualified = customer.IsQualifiedForNextLevel(nextLevel, 7); Assert.IsFalse(isQualified); }