public void StaticOverridesAreApplied() { var testingStaticOverrides = new OverrideList(); testingStaticOverrides.Add(new ToOverride().Prepend("*****@*****.**")); testingStaticOverrides.Add(new CcOverride().Prepend("*****@*****.**")); testingStaticOverrides.Add(new BccOverride().Prepend("*****@*****.**")); testingStaticOverrides.Add(new SubjectOverride().Prepend("SubjectSpecialString")); testingStaticOverrides.Add(new BodyOverride().Prepend("BodySpecialString")); var staticOverridesProviderMock = new Mock <IStaticOverridesProvider>(); staticOverridesProviderMock.Setup(m => m.StaticOverrides).Returns(testingStaticOverrides); MailMessageQueue queue = new MailMessageQueue(Repository, AttachmentFileSystem); MailMessageDequeuer dequeuer = new MailMessageDequeuer(Config, SmtpClient, Repository, AttachmentFileSystem, staticOverridesProviderMock.Object); var mm = new MailMessage(); queue.EnqueueMessage(mm); var emailQueueItem = Repository.Fetch().First(); var fl = new DequeueFilterList(); fl.And(new IdDequeueFilter(emailQueueItem.ID)); var result = dequeuer.SendQueuedMessages(fl, new OverrideList()); var sent = result.First().SentMailMessage; Assert.AreEqual("*****@*****.**", sent.To.ToString(), "Static To Override was not applied"); Assert.AreEqual("*****@*****.**", sent.CC.ToString(), "Static Cc Override was not applied"); Assert.AreEqual("*****@*****.**", sent.Bcc.ToString(), "Static Bcc Override was not applied"); Assert.AreEqual("SubjectSpecialString", sent.Subject, "Static Subject Override was not applied"); Assert.AreEqual("BodySpecialString", sent.Body, "Static Body Override was not applied"); }
private OverrideList CreateStaticOverrideList() { OverrideList list = new OverrideList(); StaticOverrideConfigurationSectionGroup section = (StaticOverrideConfigurationSectionGroup)ConfigurationManager.GetSection("staticOverrides"); if (section != null) { foreach (StaticOverrideConfigurationElement overrideConfig in section.StaticOverrides) { MailMessageOverride mmOverride = (MailMessageOverride)Activator.CreateInstance(overrideConfig.StaticOverrideType); if (overrideConfig.DoOverride) { mmOverride.Override(overrideConfig.Override); } if (overrideConfig.DoAppend) { mmOverride.Append(overrideConfig.Append); } if (overrideConfig.DoPrepend) { mmOverride.Prepend(overrideConfig.Prepend); } if (overrideConfig.Clear) { mmOverride.Clear(); } list.Add(mmOverride); } } return(list); }
private OverrideList CreateStaticOverrideList() { OverrideList list = new OverrideList(); StaticOverrideConfigurationSectionGroup section = (StaticOverrideConfigurationSectionGroup)ConfigurationManager.GetSection("staticOverrides"); if (section != null) { foreach (StaticOverrideConfigurationElement overrideConfig in section.StaticOverrides) { MailMessageOverride mmOverride = (MailMessageOverride)Activator.CreateInstance(overrideConfig.StaticOverrideType); if(overrideConfig.DoOverride) { mmOverride.Override(overrideConfig.Override); } if (overrideConfig.DoAppend) { mmOverride.Append(overrideConfig.Append); } if (overrideConfig.DoPrepend) { mmOverride.Prepend(overrideConfig.Prepend); } if (overrideConfig.Clear) { mmOverride.Clear(); } list.Add(mmOverride); } } return list; }
protected override bool ParseArguments(string[] args) { filterList = new DequeueFilterList(); overrideList = new OverrideList(); bool dateRangeApplied = false; DateTime dateFrom = DateTime.MinValue, dateTo = DateTime.MaxValue; bool idRangeApplied = false; int idMin = 0, idMax = int.MaxValue; OptionSet optionSet = new OptionSet() //filters .Add("tf=|tofilter=", v => filterList.And(new ToFilter(v))) .Add("bcf=|bodycontainsfilter=", v => filterList.And(new BodyContainsFilter(v))) .Add("bef=|bodyexactfilter=", v => filterList.And(new BodyExactFilter(v))) .Add("fd=|fromdate=", (DateTime v) => { dateRangeApplied = true; dateFrom = v; }) .Add("td=|todate=", (DateTime v) => { dateRangeApplied = true; dateTo = v; }) .Add("idf=|idfilter=|id=", (int v) => filterList.And(new IdDequeueFilter(v))) .Add("rtf=|retriesfilter=", (byte v) => filterList.And(new RetriesFilter(v))) .Add("sent=|sentfilter=|issent=", (bool v) => filterList.And(new SentStatusDequeueFilter(v))) .Add("scf=|subjectcontainsfilter=", v => filterList.And(new SubjectContainsFilter(v))) .Add("sef=|subjectexactfilter=", v => filterList.And(new SubjectExactFilter(v))) .Add("idrf=|idfrom=", (int v) => { idRangeApplied = true; idMin = v; }) .Add("idrt=|idto=", (int v) => { idRangeApplied = true; idMax = v; }) .Add("haf|hasattachmentsfilter", "filter on whether an email has attachments", v => filterList.And(new HasAttachmentsFilter(true))) //overrides .Add("to=|tooverride=", v => overrideList.Add(new ToOverride().Override(v))) .Add("cc=|ccoverride=", v => overrideList.Add(new CcOverride().Override(v))) .Add("bcc=|bccoverride=", v => overrideList.Add(new BccOverride().Override(v))) .Add("subject=|subjectoverride=", v => overrideList.Add(new SubjectOverride().Override(v))) .Add("body=|bodyoverride=", v => overrideList.Add(new BodyOverride().Override(v))) .Add("toa=|toappend=", v => overrideList.Add(new ToOverride().Append(v))) .Add("cca=|ccappend=", v => overrideList.Add(new CcOverride().Append(v))) .Add("bcca=|bccappend=", v => overrideList.Add(new BccOverride().Append(v))) .Add("subjecta=|subjectappend=", v => overrideList.Add(new SubjectOverride().Append(v))) .Add("bodya=|bodyappend=", v => overrideList.Add(new BodyOverride().Append(v))) .Add("top=|toprepend=", v => overrideList.Add(new ToOverride().Prepend(v))) .Add("ccp=|ccprepend=", v => overrideList.Add(new CcOverride().Prepend(v))) .Add("bccp=|bccprepend=", v => overrideList.Add(new BccOverride().Prepend(v))) .Add("subjectp=|subjectprepend=", v => overrideList.Add(new SubjectOverride().Prepend(v))) .Add("bodyp=|bodyprepend=", v => overrideList.Add(new BodyOverride().Prepend(v))) .Add("da|donotaudit", "whether to audit whether the email was sent (default=true)", v => Audit = false) ; try { optionSet.Parse(args); } catch (OptionException) { Console.WriteLine("Error"); return(false); } if (dateRangeApplied) { filterList.And(new DateRangeFilter(dateFrom, dateTo)); } if (idRangeApplied) { filterList.And(new IdRangeDequeueFilter(idMin, idMax)); } return(true); }
public void StaticOverridesAreApplied() { var testingStaticOverrides = new OverrideList(); testingStaticOverrides.Add(new ToOverride().Prepend("*****@*****.**")); testingStaticOverrides.Add(new CcOverride().Prepend("*****@*****.**")); testingStaticOverrides.Add(new BccOverride().Prepend("*****@*****.**")); testingStaticOverrides.Add(new SubjectOverride().Prepend("SubjectSpecialString")); testingStaticOverrides.Add(new BodyOverride().Prepend("BodySpecialString")); var staticOverridesProviderMock = new Mock<IStaticOverridesProvider>(); staticOverridesProviderMock.Setup(m => m.StaticOverrides).Returns(testingStaticOverrides); MailMessageQueue queue = new MailMessageQueue(Repository, AttachmentFileSystem); MailMessageDequeuer dequeuer = new MailMessageDequeuer(Config, SmtpClient, Repository, AttachmentFileSystem, staticOverridesProviderMock.Object); var mm = new MailMessage(); queue.EnqueueMessage(mm); var emailQueueItem = Repository.Fetch().First(); var fl = new DequeueFilterList(); fl.And(new IdDequeueFilter(emailQueueItem.ID)); var result = dequeuer.SendQueuedMessages(fl, new OverrideList()); var sent = result.First().SentMailMessage; Assert.AreEqual("*****@*****.**", sent.To.ToString(), "Static To Override was not applied"); Assert.AreEqual("*****@*****.**", sent.CC.ToString(), "Static Cc Override was not applied"); Assert.AreEqual("*****@*****.**", sent.Bcc.ToString(), "Static Bcc Override was not applied"); Assert.AreEqual("SubjectSpecialString", sent.Subject, "Static Subject Override was not applied"); Assert.AreEqual("BodySpecialString", sent.Body, "Static Body Override was not applied"); }
protected override bool ParseArguments(string[] args) { filterList = new DequeueFilterList(); overrideList = new OverrideList(); bool dateRangeApplied = false; DateTime dateFrom = DateTime.MinValue, dateTo = DateTime.MaxValue; bool idRangeApplied = false; int idMin = 0, idMax = int.MaxValue; OptionSet optionSet = new OptionSet() //filters .Add("tf=|tofilter=", v => filterList.And(new ToFilter(v))) .Add("bcf=|bodycontainsfilter=", v => filterList.And(new BodyContainsFilter(v))) .Add("bef=|bodyexactfilter=", v => filterList.And(new BodyExactFilter(v))) .Add("fd=|fromdate=", (DateTime v) => { dateRangeApplied = true; dateFrom = v; }) .Add("td=|todate=", (DateTime v) => { dateRangeApplied = true; dateTo = v; }) .Add("idf=|idfilter=|id=", (int v) => filterList.And(new IdDequeueFilter(v))) .Add("rtf=|retriesfilter=", (byte v) => filterList.And(new RetriesFilter(v))) .Add("sent=|sentfilter=|issent=", (bool v) => filterList.And(new SentStatusDequeueFilter(v))) .Add("scf=|subjectcontainsfilter=", v => filterList.And(new SubjectContainsFilter(v))) .Add("sef=|subjectexactfilter=", v => filterList.And(new SubjectExactFilter(v))) .Add("idrf=|idfrom=", (int v) => { idRangeApplied = true; idMin = v; }) .Add("idrt=|idto=", (int v) => { idRangeApplied = true; idMax = v; }) .Add("haf|hasattachmentsfilter", "filter on whether an email has attachments", v => filterList.And(new HasAttachmentsFilter(true))) //overrides .Add("to=|tooverride=", v=> overrideList.Add(new ToOverride().Override(v))) .Add("cc=|ccoverride=", v => overrideList.Add(new CcOverride().Override(v))) .Add("bcc=|bccoverride=", v => overrideList.Add(new BccOverride().Override(v))) .Add("subject=|subjectoverride=", v => overrideList.Add(new SubjectOverride().Override(v))) .Add("body=|bodyoverride=", v => overrideList.Add(new BodyOverride().Override(v))) .Add("toa=|toappend=", v => overrideList.Add(new ToOverride().Append(v))) .Add("cca=|ccappend=", v => overrideList.Add(new CcOverride().Append(v))) .Add("bcca=|bccappend=", v => overrideList.Add(new BccOverride().Append(v))) .Add("subjecta=|subjectappend=", v => overrideList.Add(new SubjectOverride().Append(v))) .Add("bodya=|bodyappend=", v => overrideList.Add(new BodyOverride().Append(v))) .Add("top=|toprepend=", v => overrideList.Add(new ToOverride().Prepend(v))) .Add("ccp=|ccprepend=", v => overrideList.Add(new CcOverride().Prepend(v))) .Add("bccp=|bccprepend=", v => overrideList.Add(new BccOverride().Prepend(v))) .Add("subjectp=|subjectprepend=", v => overrideList.Add(new SubjectOverride().Prepend(v))) .Add("bodyp=|bodyprepend=", v => overrideList.Add(new BodyOverride().Prepend(v))) .Add("da|donotaudit", "whether to audit whether the email was sent (default=true)" , v => Audit = false) ; try { optionSet.Parse(args); } catch (OptionException) { Console.WriteLine("Error"); return false; } if (dateRangeApplied) { filterList.And(new DateRangeFilter(dateFrom, dateTo)); } if (idRangeApplied) { filterList.And(new IdRangeDequeueFilter(idMin, idMax)); } return true; }