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 async override Task <string> Handle(DeleteTagCommand request, CancellationToken cancellationToken) { Entity = repo.Find(request.ID); Result = repo.Delete(Entity); return(Result); }
public void ShouldRequireValidTagId() { var command = new DeleteTagCommand { Id = Guid.NewGuid() }; Func <Task> act = async() => await SendAsync(command); act.Should().ThrowAsync <NotFoundException>(); }
public async Task <ActionResult> Delete(string id) { var deleteTagCommand = new DeleteTagCommand() { Id = id }; await this._mediator.Send(deleteTagCommand); return(this.NoContent()); }
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 Validate_ShouldFail_WhenInvalidRowVersion() { const string invalidRowVersion = "String"; var command = new DeleteTagCommand(_tagId, invalidRowVersion); _rowVersionValidatorMock.Setup(r => r.IsValid(invalidRowVersion)).Returns(false); var result = _dut.Validate(command); Assert.IsFalse(result.IsValid); Assert.AreEqual(1, result.Errors.Count); Assert.IsTrue(result.Errors[0].ErrorMessage.StartsWith("Not a valid row version!")); }
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 void Setup_OkState() { _tagValidatorMock = new Mock <ITagValidator>(); _tagValidatorMock.Setup(r => r.ExistsAsync(_tagId, default)).Returns(Task.FromResult(true)); _tagValidatorMock.Setup(r => r.IsVoidedAsync(_tagId, default)).Returns(Task.FromResult(true)); _rowVersionValidatorMock = new Mock <IRowVersionValidator>(); _rowVersionValidatorMock.Setup(r => r.IsValid(_rowVersion)).Returns(true); _command = new DeleteTagCommand(_tagId, _rowVersion); _dut = new DeleteTagCommandValidator( _tagValidatorMock.Object, _rowVersionValidatorMock.Object); }
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 ShouldGetTagList() { var createTagCommand = new CreateTagCommand("t1", createProjectDto.Id); var createTagDto = await SendAsync(createTagCommand); var getTagListQuery = new GetTagListQuery(createProjectDto.Id); var getTagListDto = await SendAsync(getTagListQuery); getTagListDto.ShouldNotBeNull(); getTagListDto.Data.ShouldNotBeNull(); getTagListDto.Count.ShouldNotBe(0); getTagListDto.Data.ShouldBeOfType <List <GetTagDto> >(); var deleteTagCommand = new DeleteTagCommand(createTagDto.Id, createProjectDto.Id); await SendAsync(deleteTagCommand); }
public async Task should_delete_tag() { await RunAsNewUserAsync(); var tagId = await SendAsync(F.Create <CreateTagCommand>()); var command = new DeleteTagCommand { Id = tagId }; await SendAsync(command); var tag = await FindAsync <Tag>(tagId); tag.Should().BeNull(); }
public async Task ShouldGetTag() { var createTagCommand = new CreateTagCommand("t1", createProjectDto.Id); var createTagDto = await SendAsync(createTagCommand); var getTagQuery = new GetTagQuery(createTagDto.Id, createProjectDto.Id); var getTagDto = await SendAsync(getTagQuery); getTagDto.ShouldNotBeNull(); getTagDto.Name.ShouldBe("t1"); getTagDto.Description.ShouldBeNull(); getTagDto.ProjectId.ShouldBe(createProjectDto.Id); var deleteTagCommand = new DeleteTagCommand(createTagDto.Id, createProjectDto.Id); await SendAsync(deleteTagCommand); }
public async Task should_delete_tag_by_another_user_in_the_same_workspace() { var runAs = await RunAsNewUserAsync(); var tagId = await SendAsync(F.Create <CreateTagCommand>()); RunAs(await CreateUserAsync(), runAs.Workspace); var command = new DeleteTagCommand { Id = tagId }; await SendAsync(command); var tag = await FindAsync <Tag>(tagId); tag.Should().BeNull(); }
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); }
public async Task ShouldUpdateTag() { var createTagCommand = new CreateTagCommand("t1", createProjectDto.Id); var createTagDto = await SendAsync(createTagCommand); var updateTagCommand = new UpdateTagCommand(createTagDto.Id, createProjectDto.Id, "t edit", "description 1"); await SendAsync(updateTagCommand); var scenarioEntity = await ExecuteDbContextAsync(db => db.Tags .SingleOrDefaultAsync(p => p.Id.Equals(createTagDto.Id)) ); scenarioEntity.ShouldNotBeNull(); scenarioEntity.Name.ShouldBe("t edit"); scenarioEntity.Description.ShouldBe("description 1"); var deleteTagCommand = new DeleteTagCommand(createTagDto.Id, createProjectDto.Id); await SendAsync(deleteTagCommand); }
public async Task ShouldCreateAndDeleteTag() { var createTagCommand = new CreateTagCommand("t1", createProjectDto.Id); var createTagDto = await SendAsync(createTagCommand); var tagEntity = await ExecuteDbContextAsync(db => db.Tags .SingleOrDefaultAsync(p => p.Id.Equals(createTagDto.Id)) ); tagEntity.ShouldNotBeNull(); tagEntity.Name.ShouldBe("t1"); var deleteTagCommand = new DeleteTagCommand(createTagDto.Id, createProjectDto.Id); await SendAsync(deleteTagCommand); tagEntity = await ExecuteDbContextAsync(db => db.Tags .SingleOrDefaultAsync(p => p.Id.Equals(createTagDto.Id)) ); tagEntity.ShouldBeNull(); }
public ActionResult Delete(DeleteTagCommand command) { return new DeleteResponder(this) .RespondWith(mediator, command, afterCommandSent: UpdateTagSelectList); }
public async Task <IActionResult> Delete([FromRoute] DeleteTagCommand command) { return(await Execute(command)); }