Esempio n. 1
0
        public async Task ShouldDeleteUserAccountCorrectly()
        {
            //Arrange
            User user            = new User("test", "test", "test", "test");
            var  dateDeleted     = new DateTime();
            var  usersRepository = new Mock <IUsersRepository>();

            usersRepository.Setup(x => x.Get(It.IsAny <Guid>()))
            .Returns(user);

            usersRepository.Setup(x => x.UpdateAsync(It.IsAny <User>()))
            .Callback <User>(x =>
            {
                user        = x;
                dateDeleted = user.ChangedAt;
            })
            .Returns(Task.CompletedTask);


            var deleteUserHandler = new DeleteUserHandler(usersRepository.Object);
            var command           = new DeleteUserCommand(user.Id);

            //Act
            await deleteUserHandler.HandleAsync(command);

            //Assert

            usersRepository.Verify(x => x.Get(It.IsAny <Guid>()), Times.Once);
            usersRepository.Verify(x => x.UpdateAsync(It.IsAny <User>()), Times.Once);
            Assert.That(user.IsDeleted);
            Assert.That(user.ChangedAt, Is.EqualTo(dateDeleted));
        }
Esempio n. 2
0
        public void UpdatesUserInRepository_RaisesIntegrationEvent()
        {
            var user = new Domain.User(Id, "A B", "*****@*****.**", false);

            var repository = new Mock <IUserRepository>(MockBehavior.Strict);

            repository.Setup(r => r.GetAsync(user.Id)).Returns(Task.FromResult(user)).Verifiable();
            repository.Setup(r => r.DeleteAsync(user)).Returns(Task.CompletedTask).Verifiable();
            repository.Setup(r => r.SaveChanges()).Returns(Task.CompletedTask).Verifiable();

            var busPublisher = new Mock <IBusPublisher>(MockBehavior.Strict);

            busPublisher.Setup(p => p.Publish <IUserDeleted>(It.Is <IUserDeleted>(e => ValidateEquality(e)))).Returns(Task.CompletedTask).Verifiable();

            var handler = new DeleteUserHandler(repository.Object, busPublisher.Object);
            var result  = handler.HandleAsync(Cmd, new Mock <ICorrelationContext>().Object).GetAwaiter().GetResult();

            Assert.IsTrue(result.Successful);
            repository.Verify();
            busPublisher.Verify();
        }