Exemple #1
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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();
        }