Exemplo n.º 1
0
        public void Handle_ThrowsInvalidCredentialException_WhenUserIdIsFound_ButPasswordDontMatch()
        {
            //Arrange
            var command = fixture.Create <AuthenticateWithCredentialsCommand>();

            var readUser = fixture.Create <Budget.Users.Domain.ReadModel.User>();

            readModelUserRepository.GetByUserName(Arg.Any <string>()).Returns(readUser);

            var subscription = new UserSubscribed(
                Guid.NewGuid(),
                fixture.Create <string>(),
                fixture.Create <string>(),
                fixture.Create <string>(),
                "*****@*****.**"
                );
            var passwordChange = new PasswordChanged(subscription.AggregateId, command.UserName);
            var userEvents     = new Event[] {
                subscription,
                passwordChange
            };
            var writeModelUser = writeModelUserFactory.Load(subscription.AggregateId, userEvents);

            writeModelUserRepository.Get(Arg.Any <Guid>()).Returns(writeModelUser);
            var cancellationToken = new CancellationToken();

            //Act
            Assert.ThrowsAsync <InvalidCredentialException>(() => handler.Handle(command, cancellationToken));

            //Assert
        }
Exemplo n.º 2
0
        public void HandleSubscribe_ThrowsUsernameAlreadyTakenException_WhenUsernameIsAlreadyTaken()
        {
            //Arrange
            SubscribeCommand command = new SubscribeCommand(
                fixture.Create <string>(),
                fixture.Create <string>(),
                fixture.Create <string>(),
                "*****@*****.**",
                fixture.Create <string>()
                );

            CancellationToken token = new CancellationToken();

            userReadRepository.GetByUserName(Arg.Is(command.UserName)).Returns(
                new Budget.Users.Domain.ReadModel.User(
                    Guid.NewGuid(),
                    fixture.Create <string>(),
                    fixture.Create <string>(),
                    fixture.Create <string>(),
                    fixture.Create <string>(),
                    fixture.Create <DateTime>()
                    )
                );

            //Act
            Assert.ThrowsAsync <UsernameAlreadyTakenException>(() => handler.Handle(command, token));

            //Assert
        }
Exemplo n.º 3
0
        public void GetUserByUserName_CallsRepository_ReturnsUser()
        {
            //Arrange
            string userName = fixture.Create <string>();

            User user = new User(
                Guid.NewGuid(),
                userName,
                fixture.Create <string>(),
                fixture.Create <string>(),
                fixture.Create <string>(),
                fixture.Create <DateTime>()
                );

            userRepository.GetByUserName(Arg.Is(userName)).Returns(user);

            GetUserByUserNameRequest request = new GetUserByUserNameRequest(userName);

            CancellationToken token = new CancellationToken();

            //Act
            Task <User> task = handler.Handle(request, token);

            task.Wait();

            User result = task.Result;

            //Assert
            userRepository.Received(1).GetByUserName(Arg.Is(userName));

            result.Should().NotBeNull();
            result.Should().BeEquivalentTo(user);
        }