public void CanUnprogressTask() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); var sessionToken = Service.SignIn("[email protected]", "qwerty123") .Ok() .SessionToken; var task = Service.CreateTask(sessionToken, "My task description").Ok().HasTaskStatus(TaskStatus.NotStarted); Service.GetWorkspace(sessionToken).Ok().HasOnlyTasks(task); task = Service.ProgressTask(sessionToken, task.TaskId).Ok().HasTaskStatus(TaskStatus.InProgress); Service.GetWorkspace(sessionToken).Ok().HasOnlyTasks(task); task = Service.ProgressTask(sessionToken, task.TaskId).Ok().HasTaskStatus(TaskStatus.Done); Service.GetWorkspace(sessionToken).Ok().HasOnlyTasks(task); task = Service.UnprogressTask(sessionToken, task.TaskId).Ok().HasTaskStatus(TaskStatus.InProgress); Service.GetWorkspace(sessionToken).Ok().HasOnlyTasks(task); task = Service.UnprogressTask(sessionToken, task.TaskId).Ok().HasTaskStatus(TaskStatus.NotStarted); Service.GetWorkspace(sessionToken).Ok().HasOnlyTasks(task); }
public void CantSignUpWhenEmailAlreadyUsedAndConfirmed() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); var secret = SignUpConfirmationNotifier.LastSecret.AssertNotEmptyString("Secret"); Service.ConfirmSignUpRequest(secret).Ok(); Service.SignUp("[email protected]", "qwerty").Error(ServiceError.UserAlreadyRegistered); }
public void CantResetPasswordTwiceUsingSameSecret() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); ResetPasswordNotifier.Reset(); Service.RequestPasswordReset("[email protected]").Ok(); Service.ResetPassword(ResetPasswordNotifier.LastSecret, "qwerty").Ok(); Service.ResetPassword(ResetPasswordNotifier.LastSecret, "qwerty1").Error(ServiceError.NoSuchPendingPasswordResetRequest); }
public void NewUserDoesNotHaveAnyTasks() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); var sessionToken = Service.SignIn("[email protected]", "qwerty123") .Ok() .HasSessionToken() .SessionToken; Service.GetWorkspace(sessionToken).Ok().HasNoTasks(); }
public void CanGetUserInfoWithValidSessionToken() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); var secret = SignUpConfirmationNotifier.LastSecret.AssertNotEmptyString("Secret"); Service.ConfirmSignUpRequest(secret).Ok(); var sessionToken = Service.SignIn("[email protected]", "qwerty123").Ok().SessionToken; Service.GetUserInfo(sessionToken).Ok() .HasGoodUserId() .HasEmail("[email protected]"); }
public void CanSignInWithSignUpConfirmation() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Assert.AreEqual("[email protected]", SignUpConfirmationNotifier.LastEmail); var secret = SignUpConfirmationNotifier.LastSecret.AssertNotEmptyString("Secret"); WelcomeNotifier.Reset(); Service.ConfirmSignUpRequest(secret).Ok(); Assert.AreEqual("[email protected]", WelcomeNotifier.LastEmail); Service.SignIn("[email protected]", "qwerty123").Ok(); }
public void CanResetPasswordWithValidSecret() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); ResetPasswordNotifier.Reset(); Service.RequestPasswordReset("[email protected]").Ok(); Service.ResetPassword(ResetPasswordNotifier.LastSecret, "qwerty").Ok(); Service.SignIn("[email protected]", "qwerty").Ok(); Service.SignIn("[email protected]", "qwerty123").Error(ServiceError.InvalidPassword); }
public void CanDeleteTask() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); var sessionToken = Service.SignIn("[email protected]", "qwerty123") .Ok() .SessionToken; var task = Service.CreateTask(sessionToken, "My task description").Ok(); Service.GetWorkspace(sessionToken).Ok().HasOnlyTasks(task); Service.DeleteTask(sessionToken, task.TaskId).Ok(); Service.GetWorkspace(sessionToken).Ok().HasNoTasks(); }
public void CanChangePasswordWithValidSessionToken() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); var sessionToken = Service.SignIn("[email protected]", "qwerty123") .Ok() .HasSessionToken() .SessionToken; Service.ChangePassword(sessionToken, "qwerty123", "qwerty").Ok(); Service.SignIn("[email protected]", "qwerty").Ok(); Service.SignIn("[email protected]", "qwerty123").Error(ServiceError.InvalidPassword); }
public void SessionExpiresIfIdleIsTooLong() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); var sessionToken = Service.SignIn("[email protected]", "qwerty123") .Ok() .HasSessionToken() .SessionToken; Service.Ping(sessionToken).Ok(); TimeProvider.TickSeconds(SessionTimeToExpire); Service.Ping(sessionToken).Error(ServiceError.SessionExpired); }
public void CanUsePingToKeepSessionAlive() { SignUpConfirmationNotifier.Reset(); Service.SignUp("[email protected]", "qwerty123").Ok(); Service.ConfirmSignUpRequest(SignUpConfirmationNotifier.LastSecret).Ok(); var sessionToken = Service.SignIn("[email protected]", "qwerty123") .Ok() .HasSessionToken() .SessionToken; Service.GetUserInfo(sessionToken).Ok(); TimeProvider.TickSeconds(SessionTtlSeconds / 2); Service.Ping(sessionToken); TimeProvider.TickSeconds(SessionTtlSeconds); Service.GetUserInfo(sessionToken).Ok(); }