示例#1
0
        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);
        }
示例#2
0
        public async override Task <string> Handle(DeleteTagCommand request, CancellationToken cancellationToken)
        {
            Entity = repo.Find(request.ID);

            Result = repo.Delete(Entity);

            return(Result);
        }
示例#3
0
        public void ShouldRequireValidTagId()
        {
            var command = new DeleteTagCommand {
                Id = Guid.NewGuid()
            };

            Func <Task> act = async() => await SendAsync(command);

            act.Should().ThrowAsync <NotFoundException>();
        }
示例#4
0
        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>();
        }
示例#6
0
        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>();
        }
示例#11
0
        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();
        }
示例#13
0
        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();
        }
示例#15
0
        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);
        }
示例#16
0
        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);
        }
示例#17
0
        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);
 }
示例#19
0
 public async Task <IActionResult> Delete([FromRoute] DeleteTagCommand command)
 {
     return(await Execute(command));
 }