public void Setup() { // Arrange var _stepMock = new Mock <Step>(); _stepMock.SetupGet(s => s.Plant).Returns(TestPlant); var _rdMock = new Mock <RequirementDefinition>(); _rdMock.SetupGet(rd => rd.Id).Returns(2); _rdMock.SetupGet(rd => rd.Plant).Returns(TestPlant); _projectRepositoryMock = new Mock <IProjectRepository>(); var requirement = new TagRequirement(TestPlant, 2, _rdMock.Object); _tag = new Tag(TestPlant, TagType.Standard, "", "", _stepMock.Object, new List <TagRequirement> { requirement }); _tag.SetProtectedIdForTesting(2); _tag.IsVoided = true; _project = new Project(TestPlant, _projectName, ""); _project.AddTag(_tag); _projectRepositoryMock .Setup(x => x.GetProjectByTagIdAsync(_tag.Id)) .Returns(Task.FromResult(_project)); _command = new DeleteTagCommand(_tagId, _rowVersion); _dut = new DeleteTagCommandHandler(_projectRepositoryMock.Object, UnitOfWorkMock.Object); }
public void ShouldNotCallHandleIfTagNotExist() { dbSetTag.Setup(x => x.FindAsync(id)).Returns(null); context.Setup(x => x.Tags).Returns(dbSetTag.Object); DeleteTagCommandHandler deleteTagCommandHandler = new DeleteTagCommandHandler(context.Object, stringLocalizer.Object); DeleteTagCommand deleteTagCommand = new DeleteTagCommand(id); Func <Task> act = async() => await deleteTagCommandHandler.Handle(deleteTagCommand, new CancellationToken()); act.Should().Throw <NotFoundException>(); }
public void DeleteTagCommandHandler_NotExisting_NoChange() { //given var repository = LiteDbHelper.CreateMemoryDb(); var handler = new DeleteTagCommandHandler(repository); var command = new DeleteTagCommand(new Tag()); //when handler.Execute(command); //then Assert.Empty(repository.Database.Query <Tag>()); }
public void ShouldNotCallHandleIfNotSavedChanges() { dbSetTag.Setup(x => x.FindAsync(id)).Returns(new ValueTask <Tag>(Task.FromResult(new Tag { Id = id }))); context.Setup(x => x.Tags).Returns(dbSetTag.Object); context.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(0)); DeleteTagCommandHandler deleteTagCommandHandler = new DeleteTagCommandHandler(context.Object, stringLocalizer.Object); DeleteTagCommand deleteTagCommand = new DeleteTagCommand(id); Func <Task> act = async() => await deleteTagCommandHandler.Handle(deleteTagCommand, new CancellationToken()); act.Should().Throw <RestException>(); }
public async Task ShouldCallHandle() { dbSetTag.Setup(x => x.FindAsync(id)).Returns(new ValueTask <Tag>(Task.FromResult(new Tag { Id = id }))); context.Setup(x => x.Tags).Returns(dbSetTag.Object); context.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult(1)); DeleteTagCommandHandler deleteTagCommandHandler = new DeleteTagCommandHandler(context.Object, stringLocalizer.Object); DeleteTagCommand deleteTagCommand = new DeleteTagCommand(id); var result = await deleteTagCommandHandler.Handle(deleteTagCommand, new CancellationToken()); result.Should().Be(Unit.Value); }
public async Task GivenInvalidRequest_ShouldThrowNotFoundException() { // Arrange var sut = new DeleteTagCommandHandler(_context); var tagId = 10; // Act (Assert) var ex = await Assert.ThrowsAsync <NotFoundException>(() => sut.Handle(new DeleteTagCommand { Id = tagId }, CancellationToken.None)); // Assert Assert.IsType <NotFoundException>(ex); }
public void GivenValidRequest_ShouldSuccessfullyDeleteTag() { // Arrange var sut = new DeleteTagCommandHandler(_context); var entity = new Tag("Test Tag 1"); _context.Tags.Add(entity); _context.SaveChanges(); // Act var result = sut.Handle(new DeleteTagCommand { Id = entity.Id }, CancellationToken.None); var tag = _context.Tags.FirstOrDefault(i => i.Id == entity.Id); // Assert Assert.IsType <Unit>(result.Result); Assert.Null(tag); }
public void DeleteTagCommandHandler_MoreObjects_RemovedProperOne() { //given var targetTag = new Tag(); var tags = new[] { targetTag, new Tag(), new Tag(), new Tag() }; var repository = LiteDbHelper.CreateMemoryDb(); var handler = new DeleteTagCommandHandler(repository); var command = new DeleteTagCommand(targetTag); repository.Database.UpsertBulk(tags); //when handler.Execute(command); //then tags = tags.Skip(1).OrderBy(x => x.Id).ToArray(); var actualTags = repository.Database.Query <Tag>().OrderBy(x => x.Id).ToArray(); Assert.Equal(tags.Length, actualTags.Length); Assert.Equal(tags, actualTags); }