コード例 #1
0
        public void LiveTest()
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay();
            //databaseSendTableFromMailrelay.limitOnDateName = "createdon";
            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ExecuteOption(new Administration.Option.Options.OptionReport(typeof(SendTableFromMailrelayTest)));
        }
コード例 #2
0
        private void AssertFields(string originalString, string expected, Dictionary <string, object> fields)
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay();

            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester);

            string output = sendTableFromMailrelay.InsertFilledFields(originalString, fields, "yyyy-MM-dd");

            Assert.AreEqual(expected, output);
        }
コード例 #3
0
        private DatabaseSendTableFromMailrelay CreateDatabaseSendTableFromMailrelay(mailTypeEnum mailType = mailTypeEnum.indsamlingskoordinator)
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = new DatabaseSendTableFromMailrelay()
            {
                Name                       = "test",
                matchidname                = GetMatchidname(mailType),
                subject                    = "subject",
                tablerow                   = GetTablerow(mailType),
                urlLoginName               = "test",
                Schedule                   = CreateScheduleAlwaysOnDoOnce(),
                packageid                  = 1,
                mailboxfromid              = 2,
                mailboxreplyid             = 3,
                mailboxreportid            = 4,
                orderbyDescending          = "createdon",
                headerDateFormat           = "dd.MMMM",
                tableDateFormat            = "dd/MM/yyyy",
                requireDataOnDaysFromToday = new List <int>()
                {
                    -1
                },
                sleepTimeOnFailiure = TimeSpan.FromSeconds(1),
                port     = 465,
                sendType = DatabaseSendTableFromMailrelay.SendTypeEnum.Api,
            };

            switch (mailType)
            {
            case mailTypeEnum.indsamlingskoordinator:
                databaseSendTableFromMailrelay.queryCreateTable  = GetQueryCreateTable();
                databaseSendTableFromMailrelay.queryFindContacts = GetQueryFindContacts();
                databaseSendTableFromMailrelay.html = GetHtml();
                break;

            case mailTypeEnum.bykoordinator:
                databaseSendTableFromMailrelay.queryCreateTable  = GetQueryCreateTableBykoordinator();
                databaseSendTableFromMailrelay.queryFindContacts = GetQueryFindContactsBykoordinator();
                databaseSendTableFromMailrelay.html = GetHtmlBykoordinator();
                break;

            default:
                break;
            }

            return(databaseSendTableFromMailrelay);
        }
コード例 #4
0
        public void MailCanBeLimitedOnId()
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay();

            databaseSendTableFromMailrelay.sendType      = DatabaseSendTableFromMailrelay.SendTypeEnum.Smtp;
            databaseSendTableFromMailrelay.contactid     = Guid.Parse("b238f6be-5510-e611-80e9-001c42fd47a5");
            databaseSendTableFromMailrelay.contactidName = "accountid";
            databaseSendTableFromMailrelay.toEmail       = "*****@*****.**";
            databaseSendTableFromMailrelay.fromEmail     = "*****@*****.**";

            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester);

            SystemInterface.Email.DeliveryMethod          = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
            SystemInterface.Email.PickupDirectoryLocation = "c:\\test\\email";

            sendTableFromMailrelay.ExecuteOption(new Administration.Option.Options.OptionReport(typeof(SendTableFromMailrelayTest)));
        }
コード例 #5
0
        public void MissingEmailOrFullnameWillNotBreakExecute()
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay();

            databaseSendTableFromMailrelay.limitOnDateName = "createdon";

            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester);

            sendTableFromMailrelay.SetDynamicsCrmConnectionIfEmpty(_dynamicsCrmConnectionTester);
            EnqueueCrmResponse(new List <DateTime>()
            {
                new DateTime(2000, 1, 1), new DateTime(2000, 1, 2), DateTime.Now.Date.AddHours(-3)
            }, false, false);

            _mailrelayConnectionTester.replies.Enqueue(new MailrelayBoolReply());

            sendTableFromMailrelay.ExecuteOption(new Administration.Option.Options.OptionReport(typeof(SendTableFromMailrelayTest)));
        }
コード例 #6
0
        public void MailCanBeSendtToBykoordinator()
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay(mailTypeEnum.bykoordinator);

            databaseSendTableFromMailrelay.limitOnDateName = "createdon";
            databaseSendTableFromMailrelay.sendType        = DatabaseSendTableFromMailrelay.SendTypeEnum.Smtp;
            databaseSendTableFromMailrelay.fromEmail       = "*****@*****.**";

            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester);

            //sendTableFromMailrelay.SetDynamicsCrmConnectionIfEmpty(_dynamicsCrmConnectionTester);
            //EnqueueCrmResponse(new List<DateTime>() { new DateTime(2000, 1, 1), DateTime.Now, new DateTime(2000, 1, 2), new DateTime(2000, 1, 3), DateTime.Now.AddDays(-1) });

            SystemInterface.Email.DeliveryMethod          = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
            SystemInterface.Email.PickupDirectoryLocation = "c:\\test\\email";

            sendTableFromMailrelay.ExecuteOption(new Administration.Option.Options.OptionReport(typeof(SendTableFromMailrelayTest)));
        }
コード例 #7
0
 public void GenerateDatabase()
 {
     DatabaseSendTableFromMailrelay.Create
     (
         contactid: Guid.NewGuid(),
         html: GetHtml(),
         name: "test",
         matchidname: "new_indsamler2016",
         queryCreateTable: GetQueryCreateTable(),
         queryFindContacts: GetQueryFindContacts(),
         subject: "subject",
         tablerow: GetTablerow(mailTypeEnum.indsamlingskoordinator),
         urlLoginName: "test",
         schedule: new DataLayer.MongoData.Option.Schedule()
     {
         Recurring            = true,
         NextAllowedExecution = DateTime.Now,
         HoursOfDayToSkip     = new List <int>()
         {
             0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23
         },
         TimeBetweenAllowedExecutions = TimeSpan.FromHours(18),
     },
         packageid: 1,
         mailboxfromid: 4,
         mailboxreplyid: 4,
         mailboxreportid: 4,
         orderbyDescending: "createdon",
         headerDateFormat: "dd.MMMM",
         tableDateFormat: "dd/MM/yyyy",
         limitOnDateName: "createdon",
         requireDataOnDaysFromToday: new List <int>()
     {
         -1
     },
         sleepTimeOnFailiure: TimeSpan.FromMinutes(10),
         mongoConnection: Connection
     );
 }
コード例 #8
0
        public void FailedSendWillNotRetry()
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay();

            databaseSendTableFromMailrelay.limitOnDateName = "createdon";

            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester);

            sendTableFromMailrelay.SetDynamicsCrmConnectionIfEmpty(_dynamicsCrmConnectionTester);
            EnqueueCrmResponse(new List <DateTime>()
            {
                new DateTime(2000, 1, 1), new DateTime(2000, 1, 2), DateTime.Now.Date.AddHours(-3)
            });

            Administration.Option.Options.OptionReport report = new Administration.Option.Options.OptionReport(typeof(SendTableFromMailrelayTest));
            sendTableFromMailrelay.ExecuteOption(report);
            bool succeded = report.Success;

            Assert.IsTrue(succeded);
        }
コード例 #9
0
        public void MailCanBeSendt()
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay();

            databaseSendTableFromMailrelay.limitOnDateName = "createdon";

            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester);

            sendTableFromMailrelay.SetDynamicsCrmConnectionIfEmpty(_dynamicsCrmConnectionTester);
            EnqueueCrmResponse(new List <DateTime>()
            {
                new DateTime(2000, 1, 1), DateTime.Now, new DateTime(2000, 1, 2), new DateTime(2000, 1, 3), DateTime.Now.AddDays(-1)
            });

            _mailrelayConnectionTester.replies.Enqueue(new MailrelayBoolReply());

            sendTableFromMailrelay.ExecuteOption(new Administration.Option.Options.OptionReport(typeof(SendTableFromMailrelayTest)));

            sendMail sendMailFunction = (sendMail)_mailrelayConnectionTester.sendFunctions.Single(function => function is sendMail);

            Console.Out.WriteLine(sendMailFunction.html);
        }
コード例 #10
0
        public void MailWillNotBeSentIfLimitedOnDate()
        {
            DatabaseSendTableFromMailrelay databaseSendTableFromMailrelay = CreateDatabaseSendTableFromMailrelay();

            databaseSendTableFromMailrelay.limitOnDateName = "createdon";

            SendTableFromMailrelay sendTableFromMailrelay = new SendTableFromMailrelay(Connection, databaseSendTableFromMailrelay);

            sendTableFromMailrelay.ChangeMailrelayConnection(_mailrelayConnectionTester);

            sendTableFromMailrelay.SetDynamicsCrmConnectionIfEmpty(_dynamicsCrmConnectionTester);
            EnqueueCrmResponse(new List <DateTime>()
            {
                new DateTime(2000, 1, 1), new DateTime(2000, 1, 2), new DateTime(2000, 1, 3)
            });

            _mailrelayConnectionTester.replies.Enqueue(new MailrelayBoolReply());

            sendTableFromMailrelay.ExecuteOption(new Administration.Option.Options.OptionReport(typeof(SendTableFromMailrelayTest)));

            sendMail sendMailFunction = (sendMail)_mailrelayConnectionTester.sendFunctions.SingleOrDefault(function => function is sendMail);

            Assert.IsNull(sendMailFunction);
        }
コード例 #11
0
 public SendTableFromMailrelay(MongoConnection connection, DataLayer.MongoData.Option.OptionBase databaseOption) : base(connection, databaseOption)
 {
     _databaseSendTableFromMailrelay = (DatabaseSendTableFromMailrelay)databaseOption;
 }