public static DatabaseAddMailrelaySubscriberFromLead CreateIfValid(MongoConnection connection, Guid leadId, string name, string urlLoginName, string emailaddress1, DatabaseWebCampaign webCampaign) { if (string.IsNullOrWhiteSpace(emailaddress1)) { return(null); } if (webCampaign == null) { return(null); } DatabaseAddMailrelaySubscriberFromLead databaseAddMailrelaySubscriberFromLead = DatabaseAddMailrelaySubscriberFromLead.Create ( connection, webCampaign, urlLoginName, leadId, emailaddress1, name, new DataLayer.MongoData.Option.Schedule() { NextAllowedExecution = DateTime.Now, Recurring = false, TimeBetweenAllowedExecutions = TimeSpan.FromSeconds(30), } ); return(databaseAddMailrelaySubscriberFromLead); }
public void AddMailrelaySubscriberFromLeadTestAddsASubscriber() { DatabaseWebCampaign webCampaign = GetWebcampaign(); DatabaseAddMailrelaySubscriberFromLead databaseAddMailrelaySubscriberFromLead = AddMailrelaySubscriberFromLead.CreateIfValid(Connection, Guid.Empty, "test", "test", "test", webCampaign); AddMailrelaySubscriberFromLead addMailrelaySubscriberFromLead = new AddMailrelaySubscriberFromLead(Connection, databaseAddMailrelaySubscriberFromLead); _mailrelayConnectionTester.replies.Enqueue(new MailrelayArrayReply <getSubscribersReply>() { status = 1, data = new List <getSubscribersReply>() }); _mailrelayConnectionTester.replies.Enqueue(new MailrelayIntReply() { status = 1, data = 1 }); ExecuteWithFakeMailrelayConnection(addMailrelaySubscriberFromLead); Console.Out.WriteLine(_mailrelayConnectionTester); Assert.IsTrue(_mailrelayConnectionTester.sendFunctions.Any(function => function is addSubscriber)); }
public void AddMailrelaySubscriberFromLeadTestCanUpdateASubscriber() { DatabaseWebCampaign webCampaign = GetWebcampaign(); string email = "test"; DatabaseAddMailrelaySubscriberFromLead databaseAddMailrelaySubscriberFromLead = AddMailrelaySubscriberFromLead.CreateIfValid(Connection, _lead.Id, "test", "test", email, webCampaign); AddMailrelaySubscriberFromLead addMailrelaySubscriberFromLead = new AddMailrelaySubscriberFromLead(Connection, databaseAddMailrelaySubscriberFromLead); int randomId = new Random().Next(0, int.MaxValue); _mailrelayConnectionTester.replies.Enqueue(new MailrelayArrayReply <getSubscribersReply>() { status = 1, data = new List <getSubscribersReply>() { new getSubscribersReply() { email = email, id = randomId.ToString(), fields = new Dictionary <string, string>(), groups = new List <string>(), }, } }); _mailrelayConnectionTester.replies.Enqueue(new MailrelayIntReply() { status = 1, data = 1 }); ExecuteWithFakeMailrelayConnection(addMailrelaySubscriberFromLead); Console.Out.WriteLine(_mailrelayConnectionTester); updateSubscriber updateSubscriberFunction = (updateSubscriber)_mailrelayConnectionTester.sendFunctions.Single(function => function is updateSubscriber); Assert.AreEqual(email, updateSubscriberFunction.email); Assert.AreEqual(randomId, updateSubscriberFunction.id); }
public AddMailrelaySubscriberFromLead(MongoConnection connection, DataLayer.MongoData.Option.OptionBase databaseOption) : base(connection, databaseOption) { _databaseAddMailrelaySubscriberFromLead = (DatabaseAddMailrelaySubscriberFromLead)databaseOption; }