예제 #1
0
        public async Task HappyPath()
        {
            var email = "*****@*****.**";
            var user  = await _fixture.LoginAsUser(email, "test");

            _mailService.Reset();
            var sut = _fixture.GetClient <IIdentityApi>();


            var result = await sut.ForgotPassword(new SendPasswordResetCommand(email));

            result.IsSuccessStatusCode.Should().BeTrue();
            _mailService.Messages.Should()
            .HaveSingleMailWithProperReceiverAndSender(@from: "*****@*****.**", to: email)
            .And.ContainProperLink();
            var link = EmailContentExtractor.GetTokenFromForgotPasswordEmail(_mailService.Messages.First());

            var(_, token) = EmailContentExtractor.GetQueryParams(link);

            var newPassword = "******";

            result = await sut.ResetPassword(new ResetPasswordCommand(user.UserId, token, newPassword));

            result.IsSuccessStatusCode.Should().BeTrue();
            await sut.SignIn(new SignInCommand(email, newPassword));
        }
예제 #2
0
        public async Task HappyPath()
        {
            var sut     = _fixture.GetClient <IIdentityApi>();
            var command = new SignUpCommand("*****@*****.**", "TEest12!@");

            var result = await sut.SignUp(command);

            result.IsSuccessStatusCode.Should().BeTrue();
            var mailService = (FakeMailService)_fixture.GetService <IMailService>();

            mailService.Messages.Should()
            .HaveSingleMailWithProperReceiverAndSender(@from: "*****@*****.**", to: command.Email).And
            .ContainProperLink();


            var link = EmailContentExtractor.GetUrlFromActivationMail(mailService.Messages.First());

            var(userId, token) = EmailContentExtractor.GetQueryParams(link);

            var result2 = await sut.ActivateAccount(new ActivateCommand(Guid.Parse(userId), token, "test_nickname"));

            result2.IsSuccessStatusCode.Should().BeTrue();


            var user = await sut.SignIn(new SignInCommand(command.Email, command.Password));

            user.Token.Should().NotBeEmpty();


            var meResult = await sut.Me(user.BearerToken());

            meResult.Id.Should().NotBeEmpty();
            meResult.Email.Should().Be(command.Email);
        }