public async Task DeleteAsync_DeleteInvalidPublication_ObjectNotFoundException()
        {
            // Arrange
            var getablePublication    = new Mock <IGetablePublication>();
            var publicationRepository = new Mock <IRepositoryAsync <PublicationEntity> >();
            var editPublication       = new EditPublication(
                getablePublication.Object,
                publicationRepository.Object);

            getablePublication.Setup(gp => gp.GetById(_publication.Id))
            .Throws(new ObjectNotFoundException($"Publication by Id: {_publication.Id} not found."));

            // Act
            Func <Task> act = async() => await editPublication.DeleteAsync(_publication.Id);

            // Assert
            await Assert.ThrowsAsync <ObjectNotFoundException>(act);
        }
        public async Task DeleteAsync_DeletePublication_Publication()
        {
            // Arrange
            var getablePublication    = new Mock <IGetablePublication>();
            var publicationRepository = new Mock <IRepositoryAsync <PublicationEntity> >();
            var editPublication       = new EditPublication(
                getablePublication.Object,
                publicationRepository.Object);

            getablePublication.Setup(gp => gp.GetById(_publication.Id))
            .Returns(_publication);

            // Act
            var result = await editPublication.DeleteAsync(_publication.Id);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(_publication, result);
            Assert.Equal(_publication.Id, result.Id);
        }