public void SendOutMailsThatAreDue_ClaimedDueDateHasPassedLongAgo_StatusDoSomething() { using (ShimsContext.Create()) { var result = new AutomaticMailSendTestResult(); SetupAutomaticMailSendingEngine("12:Krävd", DateTime.Now.AddDays(-24), new DateTime(1970, 1, 1), result).SendOutMailsThatAreDue(); Assert.AreEqual(1, result.NumberOfLogMessages, "Number of messages logged was not as expected."); Assert.AreEqual(1, result.NumberOfReindexes, "Number of reindexes was not as expected."); Assert.AreEqual(1, result.NumberOfSignals, "Number of signals was not as expected."); Assert.AreEqual(null, result.MailTemplate, "The fetched template was not as expected."); Assert.AreEqual("02:Åtgärda", result.NewStatus, "The new status was not as expected."); } }
public void SendOutMailsThatAreDue_ClaimedDueDateWasTenDaysAgo_LoanPeriodReallyReallyOverMailIsSentOut() { using (ShimsContext.Create()) { var result = new AutomaticMailSendTestResult(); SetupAutomaticMailSendingEngine("12:Krävd", DateTime.Now.AddDays(-10), new DateTime(1970, 1, 1), result).SendOutMailsThatAreDue(); Assert.AreEqual(2, result.NumberOfLogMessages, "Number of messages logged was not as expected."); Assert.AreEqual(1, result.NumberOfReindexes, "Number of reindexes was not as expected."); Assert.AreEqual(1, result.NumberOfSignals, "Number of signals was not as expected."); Assert.AreEqual("LoanPeriodReallyReallyOverMailTemplate", result.MailTemplate, "The fetched template was not as expected."); Assert.AreEqual(null, result.NewStatus, "The new status was not as expected."); } }
public void SendOutMailsThatAreDue_ClaimedDueDateIsFarIntoTheFuture_NothingHappens() { using (ShimsContext.Create()) { var result = new AutomaticMailSendTestResult(); SetupAutomaticMailSendingEngine("12:Krävd", DateTime.Now.AddDays(24), new DateTime(1970, 1, 1), result).SendOutMailsThatAreDue(); Assert.AreEqual(0, result.NumberOfLogMessages, "Number of messages logged was not as expected."); Assert.AreEqual(0, result.NumberOfReindexes, "Number of reindexes was not as expected."); Assert.AreEqual(0, result.NumberOfSignals, "Number of signals was not as expected."); Assert.AreEqual(null, result.MailTemplate, "The fetched template was not as expected."); Assert.AreEqual(null, result.NewStatus, "The new status was not as expected."); } }
public void SendOutMailsThatAreDue_OnLoanDueDateIsInFiveDays_CourtesyNoticeIsSentOut() { using (ShimsContext.Create()) { var result = new AutomaticMailSendTestResult(); SetupAutomaticMailSendingEngine("11:Utlånad", DateTime.Now.AddDays(5), new DateTime(1970, 1, 1), result).SendOutMailsThatAreDue(); Assert.AreEqual(2, result.NumberOfLogMessages, "Number of messages logged was not as expected."); Assert.AreEqual(1, result.NumberOfReindexes, "Number of reindexes was not as expected."); Assert.AreEqual(1, result.NumberOfSignals, "Number of signals was not as expected."); Assert.AreEqual("CourtesyNoticeMailTemplate", result.MailTemplate, "The fetched template was not as expected."); Assert.AreEqual(null, result.NewStatus, "The new status was not as expected."); } }
private IAutomaticMailSendingEngine SetupAutomaticMailSendingEngine(string status, DateTime dueDate, DateTime deliveryDate, AutomaticMailSendTestResult result) { var fakeSearchResults = new List <OrderItemModel>() { new OrderItemModel() { Status = status, OrderId = "cth-123", PatronName = "John Doe", PatronEmail = "*****@*****.**", DueDate = dueDate, DeliveryDate = deliveryDate } }; IOrderItemSearcher orderItemsSearcher = GetFakeSearcher(fakeSearchResults); ITemplateService templateService = new Templates.Fakes.StubITemplateService() { GetTemplateDataStringOrderItemModel = (nodeName, orderItem) => { result.MailTemplate = nodeName; return("FEJKMAIL"); } }; IOrderItemManager orderItemManager = new Chalmers.ILL.OrderItems.Fakes.StubIOrderItemManager() { SetStatusInt32StringStringBooleanBoolean = (nodeId, statusPrevalue, eventId, doReindex, doSignal) => { result.NewStatus = statusPrevalue; if (doReindex) { result.NumberOfReindexes++; } if (doSignal) { result.NumberOfSignals++; } }, AddLogItemInt32StringStringStringBooleanBoolean = (nodeId, type, msg, eventId, doReindex, doSignal) => { result.NumberOfLogMessages++; if (doReindex) { result.NumberOfReindexes++; } if (doSignal) { result.NumberOfSignals++; } } }; IMailService mailService = new Chalmers.ILL.Mail.Fakes.StubIMailService() { SendMailOutgoingMailModel = (mailModel) => { Assert.AreEqual("cth-123", mailModel.OrderId, "The order id was not as expected."); Assert.AreEqual("John Doe", mailModel.recipientName, "The recipient name was not as expected."); Assert.AreEqual("*****@*****.**", mailModel.recipientEmail, "The recipient email address was not as expected."); Assert.AreEqual("FEJKMAIL", mailModel.message, "The sent email message was not as expected."); } }; return(new AutomaticMailSendingEngine(orderItemsSearcher, templateService, orderItemManager, mailService)); }