public void ShouldNotCallHandleIfDiscussionNotExist() { dbSetDiscussion.Setup(x => x.FindAsync(id)).Returns(null); context.Setup(x => x.Discussions).Returns(dbSetDiscussion.Object); EditDiscussionCommandHandler editDiscussionCommandHandler = new EditDiscussionCommandHandler(context.Object, stringLocalizer.Object); EditDiscussionCommand editDiscussionCommand = new EditDiscussionCommand(discussionDto); Func <Task> act = async() => await editDiscussionCommandHandler.Handle(editDiscussionCommand, new CancellationToken()); act.Should().ThrowAsync <NotFoundException>(); }
public void ShouldNotCallHandleIfNotSavedChanges() { dbSetDiscussion.Setup(x => x.FindAsync(id)).Returns(new ValueTask <Discussion>(Task.FromResult(discussion))); context.Setup(x => x.Discussions).Returns(dbSetDiscussion.Object); context.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(0)); EditDiscussionCommandHandler editDiscussionCommandHandler = new EditDiscussionCommandHandler(context.Object, stringLocalizer.Object); EditDiscussionCommand editDiscussionCommand = new EditDiscussionCommand(discussionDto); Func <Task> act = async() => await editDiscussionCommandHandler.Handle(editDiscussionCommand, new CancellationToken()); act.Should().Throw <RestException>(); }
public async Task ShouldCallHandle() { dbSetDiscussion.Setup(x => x.FindAsync(id)).Returns(new ValueTask <Discussion>(Task.FromResult(discussion))); context.Setup(x => x.Discussions).Returns(dbSetDiscussion.Object); context.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(1)); EditDiscussionCommandHandler editDiscussionCommandHandler = new EditDiscussionCommandHandler(context.Object, stringLocalizer.Object); EditDiscussionCommand editDiscussionCommand = new EditDiscussionCommand(discussionDto); var result = await editDiscussionCommandHandler.Handle(editDiscussionCommand, new CancellationToken()); result.Should().Be(Unit.Value); discussion.Title.Should().Be(discussionDto.Title); discussion.Description.Should().Be(discussionDto.Description); }