public async Task ReturnAUser()
        {
            var user = Substitute.ForPartsOf <User>(UserId, Name, _notes);

            _repository.GetByIdAsync <User>(UserId).Returns(user);

            var result = await _sut.Handle(new GetUserQuery(UserId), new CancellationToken());

            Assert.Equal(Name, result.Name);
            Assert.Equal(user.id, result.id);
            Assert.True(_notes.SequenceEqual(result.Notes));
        }
        protected override async Task <Result <string> > ExecuteCommand(CreateUserCommand command)
        {
            var existingUser = await _userManagementRepository.GetByIdAsync <User>(command.UserId);

            if (existingUser != null)
            {
                return(Ok());
            }

            var user = _userFactory.Create(command.UserId, command.Name, command.Notes);

            user.Init();
            await _userManagementRepository.SaveAsync(user);

            return(Ok());
        }
        public async Task NotSaveUserWhenUserIsAlreadyExist()
        {
            // Arrange
            var command = new CreateUserCommand(UserId, Name, _notes);
            var user    = Substitute.ForPartsOf <User>(UserId, Name, _notes);

            _repository.GetByIdAsync <User>(UserId).ReturnsForAnyArgs(user);

            // Act
            var result = await _sut.Handle(command, CancellationToken.None);

            // Assert
            Assert.True(result.IsSuccess);
            _userFactory.DidNotReceive().Create(Arg.Is(UserId), Arg.Is(Name), Arg.Is(_notes));
            user.DidNotReceive().Init();
            await _repository.DidNotReceive().SaveAsync(Arg.Is <User>(p => p.id == UserId && p.Name == Name && p.Notes.SequenceEqual(_notes)));
        }
Beispiel #4
0
 protected override async Task <User> ExecuteQuery(GetUserQuery query)
 {
     return(await _repository.GetByIdAsync <User>(query.UserId));
 }