示例#1
0
        public DeleteArticleCommandHandlerTests()
        {
            _articleManagementService    = Mock.Of <IArticleManagementService>();
            _deleteArticleCommandHandler = new DeleteArticleCommandHandler(_articleManagementService);

            _deleteArticleCommand = new DeleteArticleCommand(SomeSlug);
        }
        public DeleteArticleCommandTest()
        {
            this.mockArticleService          = new Mock <IArticleService>();
            this.deleteArticleCommandHandler = new DeleteArticleCommandHandler(this.mockArticleService.Object);

            this.deleteArticleCommand = new DeleteArticleCommand(TestSlug);
        }
        public void ShouldNotCallHandleIfArticleNotExist()
        {
            dbSetArticle.Setup(x => x.FindAsync(id)).Returns(null);
            context.Setup(x => x.Articles).Returns(dbSetArticle.Object);

            DeleteArticleCommandHandler deleteArticleCommandHandler = new DeleteArticleCommandHandler(context.Object, stringLocalizer.Object);
            DeleteArticleCommand        deleteArticleCommand        = new DeleteArticleCommand(id);

            Func <Task> act = async() => await deleteArticleCommandHandler.Handle(deleteArticleCommand, new CancellationToken());

            act.Should().Throw <NotFoundException>();
        }
示例#4
0
        public async Task GivenTheRequestIsValid_WhenTheUserIsTheAuthorOfArticle_DeletesArticleFromDbContext()
        {
            // Arrange
            var deleteArticleCommand = new DeleteArticleCommand("Why Beer is God's Gift to the World".ToSlug());

            // Act
            var request = new DeleteArticleCommandHandler(_logger, Context, CurrentUserContext);
            var result  = await request.Handle(deleteArticleCommand, CancellationToken.None);

            // Assert, verify removal from the database
            result.ShouldNotBeNull();
            Context.Articles.FirstOrDefault(a => a.Slug == "Why Beer is God's Gift to the World".ToSlug())?.ShouldBeNull();
        }
        public void ShouldNotCallHandleIfNotSavedChanges()
        {
            dbSetArticle.Setup(x => x.FindAsync(id)).Returns(new ValueTask <Article>(Task.FromResult(new Article {
                Id = id
            })));
            context.Setup(x => x.Articles).Returns(dbSetArticle.Object);
            context.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(0));

            DeleteArticleCommandHandler deleteArticleCommandHandler = new DeleteArticleCommandHandler(context.Object, stringLocalizer.Object);
            DeleteArticleCommand        deleteArticleCommand        = new DeleteArticleCommand(id);

            Func <Task> act = async() => await deleteArticleCommandHandler.Handle(deleteArticleCommand, new CancellationToken());

            act.Should().Throw <RestException>();
        }
        public async Task ShouldCallHandle()
        {
            dbSetArticle.Setup(x => x.FindAsync(id)).Returns(new ValueTask <Article>(Task.FromResult(new Article {
                Id = id
            })));
            context.Setup(x => x.Articles).Returns(dbSetArticle.Object);
            context.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(1));

            DeleteArticleCommandHandler deleteArticleCommandHandler = new DeleteArticleCommandHandler(context.Object, stringLocalizer.Object);
            DeleteArticleCommand        deleteArticleCommand        = new DeleteArticleCommand(id);

            var result = await deleteArticleCommandHandler.Handle(deleteArticleCommand, new CancellationToken());

            result.Should().Be(Unit.Value);
        }
示例#7
0
        public async Task GivenTheRequestIsValid_WhenTheArticleDoesNotExist_ThrowsApiExceptionForNotFound()
        {
            // Arrange
            var deleteArticleCommand = new DeleteArticleCommand("How to train your dragon".ToSlug());

            // Act
            var request = new DeleteArticleCommandHandler(_logger, Context, CurrentUserContext);

            // Assert
            await Should.ThrowAsync <ConduitApiException>(async() =>
            {
                await request.Handle(deleteArticleCommand, CancellationToken.None);
            });

            Context.Articles.FirstOrDefault(a => a.Slug == "How to train your dragon".ToSlug()).ShouldNotBeNull();
        }
示例#8
0
        public async Task DeleteArticleCommandTestAsync(string identityUserId, int articleId, DeleteArticleResponse result)
        {
            DeleteArticleCommand request = new DeleteArticleCommand
            {
                Id             = articleId,
                IdentityUserId = identityUserId,
            };
            DeleteArticleCommandHandler handler = new DeleteArticleCommandHandler(_deleteFixture.Context);
            var expectedResult = await handler.Handle(request, new CancellationToken());

            Assert.Equal(expectedResult.IsSuccessful, result.IsSuccessful);
            if (expectedResult.IsSuccessful)
            {
                Article deletedArticle = _deleteFixture.Context.Articles.Find(expectedResult.Id);
                Assert.Null(deletedArticle);
                Assert.Equal(expectedResult.ViewRole, result.ViewRole);
                Assert.Equal(expectedResult.EditRole, result.EditRole);
            }
            Assert.Equal(expectedResult.Message, result.Message);
        }
示例#9
0
 void GivenSystemUnderTest()
 {
     _sut = new DeleteArticleCommandHandler(_articleRepository);
 }