public async Task DeveInserirAutor_ERetornarIdDiferenteZero()
        {
            var mapper  = AutoMapperHelper.Mapper;
            var command = new Mock <IAutorRepository>();

            var autorInserido = AutorBogus.GerarAutor();

            var viewModel = new InserirAutorViewModel
            {
                Nome  = autorInserido.Nome,
                Email = autorInserido.Email,
                Pais  = autorInserido.Pais
            };

            var esperado = new AutorViewModel
            {
                Id    = autorInserido.Id,
                Nome  = autorInserido.Nome,
                Email = autorInserido.Email,
                Pais  = autorInserido.Pais
            };

            command
            .Setup(x => x.InserirAutor(It.IsAny <Domain.Entities.Autor>()))
            .ReturnsAsync(autorInserido);

            var useCase = new InserirAutorUseCase(mapper, command.Object);

            var resultado = await useCase.Executar(viewModel);

            command.Verify(x => x.InserirAutor(It.IsAny <Domain.Entities.Autor>()), Times.Once);
            resultado.Should().BeEquivalentTo(esperado);
        }
Ejemplo n.º 2
0
        public async Task <AutorViewModel> Executar(InserirAutorViewModel autorViewModel)
        {
            var autor = _mapper.Map <Autor>(autorViewModel);

            autor = await _autorRepository.InserirAutor(autor);

            return(_mapper.Map <AutorViewModel>(autor));
        }
Ejemplo n.º 3
0
        public void Mapeamento_DeveMapear_InserirAutorViewModel_ParaAutor()
        {
            var viewModel = new InserirAutorViewModel
            {
                Nome  = "Autor",
                Email = "*****@*****.**",
                Pais  = "Brasil"
            };
            var esperado = new Autor(Guid.Empty, viewModel.Nome, viewModel.Email, viewModel.Pais);

            var resultado = _mapper.Map <Autor>(viewModel);

            resultado.Should().BeEquivalentTo(esperado);
        }
        public async Task <IActionResult> Post(InserirAutorViewModel inserirAutorViewModel)
        {
            var autor = await _inserirAutorUseCase.Executar(inserirAutorViewModel);

            return(_responseFormatter.FormatarResposta(TipoRequisicao.Post, autor));
        }