示例#1
0
        public async Task AddUserHandler_Should_Add_User()
        {
            // Arrange...
            Domain.Models.User addedUser = _fixture.Create <Domain.Models.User>();
            var mockUnitOfWork           = Substitute.For <IUnitOfWork>();

            mockUnitOfWork.UserRepository.When(x => x.Create(Arg.Any <User>()))
            .Do(x => x.Arg <User>().Id = addedUser.Id);
            mockUnitOfWork.CompleteAsync().Returns(1);
            var mockMapper = Substitute.For <IMapper>();

            mockMapper.Map <Domain.Models.User>(Arg.Any <Application.Commands.AddUserCommand>()).Returns(addedUser);

            var sut            = new AddUserCommandHandler(mockUnitOfWork, mockMapper);
            var addUserCommand = _fixture.Create <AddUserCommand>();
            var ct             = new CancellationToken();

            // Act...
            var actualUserId = await sut.Handle(addUserCommand, ct);

            // Assert...
            actualUserId.Should().Be(addedUser.Id);
            mockUnitOfWork.UserRepository.Received(1).Create(Arg.Any <User>());
            await mockUnitOfWork.Received(1).CompleteAsync();
        }
        public void user_add_command_failed()
        {
            var fixture = new Fixture().Customize(new AutoNSubstituteCustomization {
                ConfigureMembers = true
            });

            var finalUser = fixture.Create <User>();
            var command   = fixture.Build <AddUserCommand>()
                            .With(user => user.CommercialEmail, finalUser.CommercialEmail.Value)
                            .With(user => user.Cnpj, finalUser.Cnpj.Value)
                            .With(user => user.Name, finalUser.Name.Value)
                            .Create();

            var mediator = fixture.Create <IMediator>();
            var logger   = fixture.Create <ILogger <AddUserCommandHandler> >();
            var db       = fixture.Create <IDbSession <IUserRepository> >();
            var handler  = new AddUserCommandHandler(logger, mediator, db);


            var result = handler.Execute(command);

            db.DidNotReceive().Repository.Add(finalUser);
            db.DidNotReceive().SaveChanges();

            Assert.True(!result.IsSucceed && result.Violations.Count == 3);
        }
示例#3
0
        public void Setup()
        {
            repositoryMock      = Substitute.For <IUserRepository>();
            mediatorHandlerMock = Substitute.For <IMediatorHandler>();
            var unitOfWorkMock = Substitute.For <IUnitOfWork>();

            unitOfWorkMock.CommitAsync().Returns(true);
            handler = new AddUserCommandHandler(repositoryMock, unitOfWorkMock, new NotificationContext(), mediatorHandlerMock);
        }
            private AddUserCommandHandler GetCommandHandler()
            {
                AddUserCommandHandler  sut  = new AddUserCommandHandler();
                IReadRepository <User> read = Substitute.For <IReadRepository <User> >();

                sut.ReadRepository = read;
                IWriteRepository <User> write = Substitute.For <IWriteRepository <User> >();

                sut.WriteRepository = write;
                return(sut);
            }
            public void Execute_Should_Not_Add_Invalid_User()
            {
                AddUserCommandHandler sut = GetCommandHandler();

                AddUserCommand command = UserCommandHandlerTestHelper.GetAddCommand("a".PadLeft(101, 'a'));

                string expectedInvalid = string.Format(MessagesModel.MaxLength, "100");

                UserCommandResult result = sut.Execute(command);

                var calls = sut.WriteRepository.ReceivedCalls().Count();

                Assert.AreEqual(0, calls);
            }
        public async Task AddUserHandler_Should_Add_User()
        {
            // Arrange...
            var unitOfWork     = GetUnitOfWork(out var inMemoryContext);
            var mapper         = GetMapper();
            var sut            = new AddUserCommandHandler(unitOfWork, mapper);
            var addUserCommand = _fixture.Create <AddUserCommand>();
            var ct             = new CancellationToken();

            // Act...
            var addedUserId = await sut.Handle(addUserCommand, ct);

            // Assert...
            inMemoryContext.Users.Count().Should().Be(1);
        }
        public async void ShouldAddUser()
        {
            var fixture = new Fixture();

            using (DatabaseContext dbContext = DbContextHelpers.CreateDatabaseContext())
            {
                var command = fixture.Create <AddUserCommand>();
                var handler = new AddUserCommandHandler(dbContext);

                await handler.Handle(command, CancellationToken.None);

                var created = await dbContext.Users.FindAsync(command.UserId);

                created.Id.Should().Be(command.UserId);
            }
        }
示例#8
0
        public void AddUserHandler_Should_Throw_When_Command_Is_Null()
        {
            // Arrange...
            var mockUnitOfWork = Substitute.For <IUnitOfWork>();
            var mockMapper     = Substitute.For <IMapper>();

            var sut = new AddUserCommandHandler(mockUnitOfWork, mockMapper);

            const AddUserCommand addUserCommand = null;
            var ct = new CancellationToken();

            // Act...
            Func <Task> action = async() => await sut.Handle(addUserCommand, ct);

            // Assert...
            action.Should().Throw <ArgumentNullException>();
        }
        public async Task AddUserCommandHandlerShouldReturnUserObject()
        {
            var user = new User()
            {
                Password = "******",
                Username = "******"
            };

            var userCommand = new AddUserCommand(user)
            {
                User = user
            };

            var handler = new AddUserCommandHandler(_userRepositoryMock.Object);

            _userRepositoryMock.Setup(a => a.Add(userCommand.User)).ReturnsAsync(user);

            var result = await handler.Handle(userCommand, new CancellationToken());

            result.Should().BeOfType <User>();
        }
示例#10
0
        public void CreateUser_Successfully(User user)
        {
            var handler = new AddUserCommandHandler(base.UnitOfWorkMock.Object);

            var result = handler.Handle(new AddUserCommand()
            {
                User = new BasicUserVm()
                {
                    Name            = user.Name,
                    Email           = user.Email,
                    Lastname        = user.Lastname,
                    TelephoneNumber = user.TelephoneNumber,
                    Age             = user.Age,
                    Address         = user.Address.Select(u => new AddressVm {
                        Description = u.Description
                    }).ToList()
                }
            }, default);

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <Task <Response <UserVm> > >(result);
            Assert.AreEqual(StatusCodes.Status200OK, result.Result.StatusCode);
        }
示例#11
0
 public AddUserCommandHandlerShould()
 {
     _userRepositoryMock = new Mock <IUserRepository>();
     _sut = new AddUserCommandHandler(_userRepositoryMock.Object, new EntityFactory());
 }
        public void user_add_command_succed()
        {
            var fixture = new Fixture().Customize(new AutoNSubstituteCustomization {
                ConfigureMembers = true
            });

            fixture.Register <EntityId>(() => EntityId.From(fixture.Create <Guid>()));
            fixture.Register <Name>(() => Name.From(fixture.Create <string>()));
            fixture.Register <Version>(() => Version.From(fixture.Create <int>()));
            fixture.Register <SocialSecurityId>(() => SocialSecurityId.From(fixture.Create <string>()));
            fixture.Register <Email>(() => Email.From(string.Format($"{fixture.Create<string>()}@teste.com")));
            fixture.Register <User>(() => User.From(fixture.Create <EntityId>(),
                                                    fixture.Create <Name>(), fixture.Create <SocialSecurityId>(),
                                                    fixture.Create <Email>(), fixture.Create <Version>()));

            var finalUser = fixture.Create <User>();

            var command = fixture.Build <AddUserCommand>()
                          .With(user => user.CommercialEmail, finalUser.CommercialEmail.Value)
                          .With(user => user.Cnpj, finalUser.Cnpj.Value)
                          .With(user => user.Name, finalUser.Name.Value)
                          .Create();

            var mediator = fixture.Create <IMediator>();
            var logger   = fixture.Create <ILogger <AddUserCommandHandler> >();
            var db       = fixture.Create <IDbSession <IUserRepository> >();
            var handler  = new AddUserCommandHandler(logger, mediator, db);

            var result = handler.Execute(command);

            db.Received().Repository.Add(finalUser);
            db.Received().SaveChanges();
            mediator.Received(1).Publish(Arg.Any <UserAddedEvent>());

            Assert.True(result.IsSucceed);
        }