Exemple #1
0
        public void AddReminder(ReminderModel reminder, int emailID, DateTime nextRemindingDate)
        {
            try
              {
            var sqlCom = _db.GetWriteCommand( @"INSERT INTO reminder
                                              (Day, Month, Name, EmailID, TimeZoneOffset,
                                                CreationDate, NextRemindingDate, ReminderID)
                                      VALUES (?Day, ?Month, ?Name, ?EmailID,?TimeZoneOffset,
                                              ?CreationDate, ?NextRemindingDate,?ID);" );
            sqlCom.Parameters.AddWithValue( "?Day", reminder.Day );
            sqlCom.Parameters.AddWithValue( "?Month", reminder.Month );
            sqlCom.Parameters.AddWithValue( "?Name", reminder.Name );
            sqlCom.Parameters.AddWithValue( "?EmailID", emailID );
            sqlCom.Parameters.AddWithValue( "?TimeZoneOffset", reminder.TimeZoneOffset );
            sqlCom.Parameters.AddWithValue( "?CreationDate", DateTime.Now );
            sqlCom.Parameters.AddWithValue( "?NextRemindingDate", nextRemindingDate );
            sqlCom.Parameters.AddWithValue( "?ID", Guid.NewGuid() );

            sqlCom.ExecuteNonQuery();
              }
              finally
              {
            _db.CloseConnections();
              }
        }
Exemple #2
0
        public void CreateReminder()
        {
            ReminderModel reminder = new ReminderModel()
              {
            Day = 7,
            Month = 6,
            Email = Guid.NewGuid().ToString() + "@gmx.de",
            Name = "Patrick Epstein",
            Password = "******",
            TimeZoneOffset = -2
              };

              //Create reminder with unknown email address
              FakeMessageService messageService = new FakeMessageService();
              HomeController controller = new HomeController( messageService );
              var controllerResult = controller.CreateReminder( reminder ) as ViewResult;

              //Verify Controller Result
              Assert.That( controllerResult.ViewName == "Success" );
              Assert.That( (bool)controllerResult.ViewData["EmailVerified"], Is.False );
              //Assert verification email sent
              Assert.That( messageService.IsVerificationEmailSent(), Is.True );
              string verificationCode = messageService.SentVerificationCode;
              Assert.False( string.IsNullOrEmpty( verificationCode ) );
              Assert.That( messageService.VerificationEmailsSentCount, Is.EqualTo( 1 ) );

              //Try to create another reminder, same mail address still not verfied
              reminder.Name = "Heinz Erhardt";
              reminder.Day = 14;
              reminder.Month = 4;
              controllerResult = controller.CreateReminder( reminder ) as ViewResult;

              //Verify Controller Result
              Assert.That( controllerResult.ViewName == "Success" );
              Assert.That( (bool)controllerResult.ViewData["EmailVerified"], Is.False );
              //Verify no new email was sent out
              Assert.That( messageService.VerificationEmailsSentCount, Is.EqualTo( 1 ) );

              //Try to verify email address (emulate link clicking in email)
              VerificationController verificationController = new VerificationController();
              controllerResult = verificationController.VerifyMailAddress( verificationCode ) as ViewResult;

              //Verify Controller Result
              Assert.True( (bool)controllerResult.ViewData["VerificationSuccess"] );

              //Try to create another reminder, same mail address and now also verfied
              reminder.Name = "Karl Gustav";
              reminder.Day = 18;
              reminder.Month = 2;
              controllerResult = controller.CreateReminder( reminder ) as ViewResult;

              //Verify Controller Result
              Assert.That( controllerResult.ViewName == "Success" );
              Assert.That( (bool)controllerResult.ViewData["EmailVerified"], Is.True );

              //Verify no new email was sent out
              Assert.That( messageService.VerificationEmailsSentCount, Is.EqualTo( 1 ) );
        }
Exemple #3
0
        public void GetNextRemindingDateTest()
        {
            var homeController = new HomeController();
              ReminderModel germanyModel = new ReminderModel()
              {
            Day = 7,
            Month = 6,
            TimeZoneOffset = -2 //Germany daylight saving time (sommerzeit)
              };

              //assert with date later than reminder date of this year
              var germanyActual = homeController.GetNextRemindingDate( germanyModel, DateTime.Now );
              DateTime germanyExpected = new DateTime( 2012, 6, 7, 0, 0, 0 );
              Assert.AreEqual( germanyActual, germanyExpected );

              //assert wiht date before reminder date
              DateTime beforeDate = new DateTime( 2009, 6, 4 );
              germanyActual = homeController.GetNextRemindingDate( germanyModel, beforeDate );
              germanyExpected = new DateTime( 2011, 6, 7, 0, 0, 0 );
              Assert.AreEqual( germanyActual, germanyExpected );
        }
Exemple #4
0
 private static ReminderModel GetReminder(string emailAddress)
 {
     ReminderModel reminder = new ReminderModel()
       {
     Day = 7,
     Month = 6,
     Email = emailAddress,
     Name = "Patrick Epstein",
     Password = "******",
     TimeZoneOffset = -2
       };
       return reminder;
 }