Beispiel #1
0
        public Livro VincularAutorNoLivro(VinculacaoAutorLivroDto vinculacaoAutorLivro)
        {
            if (vinculacaoAutorLivro == null)
            {
                throw new System.ArgumentNullException(nameof(vinculacaoAutorLivro));
            }

            var identificadorLivro = vinculacaoAutorLivro.LivroId;
            var livro = _livroRepository.GetById(identificadorLivro);

            if (livro == null)
            {
                throw new Exception($"O livro de identificador {identificadorLivro} não existe!");
            }

            var identificadorAutor = vinculacaoAutorLivro.AutorId;
            var autor = _autorRepository.GetById(identificadorAutor);

            if (autor == null)
            {
                throw new Exception($"O autor de identificador {identificadorAutor} não existe!");
            }

            if (_livroRepository.ExisteAutorVinculadoNoLivro(identificadorLivro, identificadorAutor))
            {
                throw new Exception($"O autor já está cadastrado no livro!");
            }

            livro.Autor   = autor;
            livro.AutorId = autor.Id;
            _livroRepository.Update(livro);

            return(livro);
        }
Beispiel #2
0
        public void SetUp()
        {
            livroRepositoryMock = Substitute.For <ILivroRepository>();
            autorRepositoryMock = Substitute.For <IAutorRepository>();

            vinculacaoAutorLivroMock         = Substitute.For <VinculacaoAutorLivroDto>();
            vinculacaoAutorLivroMock.AutorId = 1;
            vinculacaoAutorLivroMock.LivroId = 1;

            livroMock    = Substitute.For <Livro>();
            livroMock.Id = vinculacaoAutorLivroMock.LivroId;

            autorMock    = Substitute.For <Autor>();
            livroMock.Id = vinculacaoAutorLivroMock.AutorId;

            livroRepositoryMock.ExisteAutorVinculadoNoLivro(vinculacaoAutorLivroMock.LivroId,
                                                            vinculacaoAutorLivroMock.AutorId).Returns(false);
        }