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(); } }
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 ) ); }
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 ); }
private static ReminderModel GetReminder(string emailAddress) { ReminderModel reminder = new ReminderModel() { Day = 7, Month = 6, Email = emailAddress, Name = "Patrick Epstein", Password = "******", TimeZoneOffset = -2 }; return reminder; }