Ejemplo n.º 1
0
        public async Task ChangePassword_Test()
        {
            var userId = await CreateUserTestData();

            await UserAccessModule.ExecuteCommandAsync(new ChangePasswordCommand(userId,
                                                                                 UserRegistrationSampleData.Password, "newPassword123"));
        }
Ejemplo n.º 2
0
        public async Task RegisterNewUserCommand_Test()
        {
            var registrationId = await UserAccessModule.ExecuteCommandAsync(new RegisterNewUserCommand(
                                                                                UserRegistrationSampleData.Login,
                                                                                UserRegistrationSampleData.Password,
                                                                                UserRegistrationSampleData.Email,
                                                                                UserRegistrationSampleData.FirstName,
                                                                                UserRegistrationSampleData.LastName,
                                                                                "confirmLink"));

            var userRegistration = await UserAccessModule.ExecuteQueryAsync(new GetUserRegistrationQuery(registrationId));

            Assert.That(userRegistration.Email, Is.EqualTo(UserRegistrationSampleData.Email));
            Assert.That(userRegistration.Login, Is.EqualTo(UserRegistrationSampleData.Login));
            Assert.That(userRegistration.FirstName, Is.EqualTo(UserRegistrationSampleData.FirstName));
            Assert.That(userRegistration.LastName, Is.EqualTo(UserRegistrationSampleData.LastName));

            var connection   = new SqlConnection(ConnectionString);
            var messagesList = await OutboxMessagesHelper.GetOutboxMessages(connection);

            Assert.That(messagesList.Count, Is.EqualTo(1));

            var newUserRegisteredNotification =
                await GetLastOutboxMessage <NewUserRegisteredNotification>();

            Assert.That(newUserRegisteredNotification.DomainEvent.Login, Is.EqualTo(UserRegistrationSampleData.Login));
        }
Ejemplo n.º 3
0
        public async Task BeforeEachTest()
        {
            const string connectionStringEnvironmentVariable =
                "ASPNETCORE_MyMeetings_IntegrationTests_ConnectionString";

            ConnectionString = EnvironmentVariablesProvider.GetVariable(connectionStringEnvironmentVariable);
            if (ConnectionString == null)
            {
                throw new ApplicationException(
                          $"Define connection string to integration tests database using environment variable: {connectionStringEnvironmentVariable}");
            }

            using (var sqlConnection = new SqlConnection(ConnectionString))
            {
                await ClearDatabase(sqlConnection);
            }

            Logger      = Substitute.For <ILogger>();
            EmailSender = Substitute.For <IEmailSender>();

            UserAccessStartup.Initialize(
                ConnectionString,
                new ExecutionContextMock(Guid.NewGuid()),
                Logger,
                new EmailsConfiguration("*****@*****.**"),
                "key",
                EmailSender);

            UserAccessModule = new UserAccessModule();
        }
Ejemplo n.º 4
0
        public async Task UserGeneralAttributesCommand_Test()
        {
            var userId = await CreateUserTestData();

            await UserAccessModule.ExecuteCommandAsync(new EditUserGeneralAttributesCommand(
                                                           userId,
                                                           EditUserSampleData.NewFirstName,
                                                           EditUserSampleData.NewLastName));

            var user = await UserAccessModule.ExecuteQueryAsync(new GetUserQuery(userId));

            Assert.That(user.FirstName, Is.EqualTo(EditUserSampleData.NewFirstName));
            Assert.That(user.LastName, Is.EqualTo(EditUserSampleData.NewLastName));
        }
        public async Task SendUserRegistrationConfirmationEmail_Test()
        {
            var userRegistrationId = Guid.NewGuid();

            var command = new SendUserRegistrationConfirmationEmailCommand(Guid.NewGuid(), userRegistrationId, UserRegistrationSampleData.Email);

            var email = new EmailMessage(UserRegistrationSampleData.Email, "FootballBanter - Please confirm your registration",
                                         "This should be link to confirmation page. For now, please execute HTTP request " +
                                         $"PATCH http://localhost:5000/userAccess/userRegistrations/{userRegistrationId}/confirm");

            await UserAccessModule.ExecuteCommandAsync(command);

            await EmailSender.Received(Quantity.Exactly(1)).SendEmail(email);
        }
Ejemplo n.º 6
0
        public async Task CreateUser_Test()
        {
            var registrationId = await UserAccessModule.ExecuteCommandAsync(new RegisterNewUserCommand(
                                                                                UserRegistrationSampleData.Login,
                                                                                UserRegistrationSampleData.Password,
                                                                                UserRegistrationSampleData.Email,
                                                                                UserRegistrationSampleData.FirstName,
                                                                                UserRegistrationSampleData.LastName,
                                                                                "confirmLink"));

            await UserAccessModule.ExecuteCommandAsync(new ConfirmUserRegistrationCommand(registrationId));

            var user = await UserAccessModule.ExecuteQueryAsync(new GetUserQuery(registrationId));

            Assert.That(user.Login, Is.EqualTo(UserRegistrationSampleData.Login));
        }
Ejemplo n.º 7
0
        public async Task SendUserRegistrationConfirmationEmail_Test()
        {
            var registrationId = Guid.NewGuid();

            await UserAccessModule.ExecuteCommandAsync(new SendUserRegistrationConfirmationEmailCommand(
                                                           Guid.NewGuid(),
                                                           new UserRegistrationId(registrationId),
                                                           UserRegistrationSampleData.Email));

            var content = "This should be link to confirmation page. For now, please execute HTTP request " +
                          $"PATCH http://localhost:5000/userAccess/userRegistrations/{registrationId}/confirm";
            var email = new EmailMessage(
                UserRegistrationSampleData.Email,
                "MyMeetings - Please confirm your registration",
                content);

            EmailSender.Received(Quantity.Exactly(1)).SendEmail(email);
        }
        public async Task ConfirmUserRegistration_Test()
        {
            var registrationId = await UserAccessModule.ExecuteCommandAsync(new RegisterNewUserCommand(
                                                                                UserRegistrationSampleData.Login,
                                                                                UserRegistrationSampleData.Password,
                                                                                UserRegistrationSampleData.Email,
                                                                                UserRegistrationSampleData.FirstName,
                                                                                UserRegistrationSampleData.LastName));

            await UserAccessModule.ExecuteCommandAsync(new ConfirmUserRegistrationCommand(registrationId));

            var userRegistration = await UserAccessModule.ExecuteQueryAsync(new GetUserRegistrationQuery(registrationId));

            Assert.That(userRegistration.StatusCode, Is.EqualTo(UserRegistrationStatus.Confirmed.Value));

            var userRegistrationConfirmedNotification = await GetLastOutboxMessage <UserRegistrationConfirmedNotification>();

            Assert.That(userRegistrationConfirmedNotification.DomainEvent.UserRegistrationId.Value, Is.EqualTo(registrationId));
        }
Ejemplo n.º 9
0
        protected async Task <Guid> CreateUserTestData()
        {
            var userRegistrationId = await UserAccessModule.ExecuteCommandAsync(new RegisterNewUserCommand(
                                                                                    UserRegistrationSampleData.Login,
                                                                                    UserRegistrationSampleData.Password,
                                                                                    UserRegistrationSampleData.Email,
                                                                                    UserRegistrationSampleData.FirstName,
                                                                                    UserRegistrationSampleData.LastName));

            await UserAccessModule.ExecuteCommandAsync(new ConfirmUserRegistrationCommand(userRegistrationId));

            var userId = await UserAccessModule.ExecuteCommandAsync(new CreateUserCommand(
                                                                        Guid.NewGuid(),
                                                                        new UserRegistrationId(userRegistrationId)));



            return(userId);
        }
Ejemplo n.º 10
0
        public async Task SendUserRegistrationConfirmationEmail_Test()
        {
            var registrationId = Guid.NewGuid();

            var confirmLink = "confirmLink/";
            await UserAccessModule.ExecuteCommandAsync(new SendUserRegistrationConfirmationEmailCommand(
                                                           Guid.NewGuid(),
                                                           new UserRegistrationId(registrationId),
                                                           UserRegistrationSampleData.Email,
                                                           confirmLink));

            string link    = $"<a href=\"{confirmLink}{registrationId}\">link</a>";
            var    content = $"Welcome to MyMeetings application! Please confirm your registration using this {link}.";
            var    email   = new EmailMessage(
                UserRegistrationSampleData.Email,
                "MyMeetings - Please confirm your registration",
                content);

            EmailSender.Received(Quantity.Exactly(1)).SendEmail(email);
        }