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 }
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 }
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); }