public async Task CreateTags_ShouldCreateCorrectCommand()
        {
            CreateTagsCommand _createdCommand = null;

            _mediatorMock
            .Setup(x => x.Send(It.IsAny <CreateTagsCommand>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(new SuccessResult <List <int> >(new List <int> {
                5
            }) as Result <List <int> >))
            .Callback <IRequest <Result <List <int> > >, CancellationToken>((request, cancellationToken) =>
            {
                _createdCommand = request as CreateTagsCommand;
            });

            _createTagsDto.ProjectName = "ProjectName";
            _createTagsDto.StepId      = 2;
            _createTagsDto.TagNos      = new List <string> {
                "TagNo1", "TagNo2"
            };

            await _dut.CreateTags("", _createTagsDto);

            Assert.AreEqual(_createTagsDto.ProjectName, _createdCommand.ProjectName);
            Assert.AreEqual(_createTagsDto.StepId, _createdCommand.StepId);
            Assert.AreEqual(2, _createdCommand.TagNos.Count());
            Assert.AreEqual(_createTagsDto.TagNos.First(), _createdCommand.TagNos.First());
            Assert.AreEqual(_createTagsDto.TagNos.Last(), _createdCommand.TagNos.Last());
        }
Ejemplo n.º 2
0
        public void Constructor_ShouldSetProperties_WithRequirements()
        {
            var dut = new CreateTagsCommand(
                new List <string> {
                "TagNoA"
            },
                "ProjectNameA",
                2,
                new List <RequirementForCommand> {
                new RequirementForCommand(11, 12)
            },
                "RemarkA",
                "SA_A");

            Assert.AreEqual("ProjectNameA", dut.ProjectName);
            Assert.AreEqual("RemarkA", dut.Remark);
            Assert.AreEqual("SA_A", dut.StorageArea);
            Assert.AreEqual(2, dut.StepId);
            Assert.AreEqual(1, dut.Requirements.Count());
            var requirement = dut.Requirements.First();

            Assert.AreEqual(11, requirement.RequirementDefinitionId);
            Assert.AreEqual(12, requirement.IntervalWeeks);
            Assert.AreEqual(1, dut.TagNos.Count());
            Assert.AreEqual("TagNoA", dut.TagNos.First());
        }
Ejemplo n.º 3
0
        public void Validate_ShouldFail_WhenRequirementsNotUnique()
        {
            _rdValidatorMock.Setup(r => r.UsageCoversBothForSupplierAndOtherAsync(new List <int> {
                _rd1Id, _rd1Id
            }, default)).Returns(Task.FromResult(true));
            var command = new CreateTagsCommand(
                new List <string> {
                _tagNo1
            },
                _projectName,
                _stepId,
                new List <RequirementForCommand>
            {
                new RequirementForCommand(_rd1Id, 1),
                new RequirementForCommand(_rd1Id, 1)
            },
                null,
                null);

            var result = _dut.Validate(command);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);
            Assert.IsTrue(result.Errors[0].ErrorMessage.StartsWith("Requirement definitions must be unique!"));
        }
Ejemplo n.º 4
0
        public void Constructor_ShouldSetProperties_WithNullLists()
        {
            var dut = new CreateTagsCommand(null, "", 0, null, null, null);

            Assert.IsNotNull(dut.Requirements);
            Assert.AreEqual(0, dut.Requirements.Count());
            Assert.IsNotNull(dut.TagNos);
            Assert.AreEqual(0, dut.TagNos.Count());
            Assert.IsNull(dut.Remark);
            Assert.IsNull(dut.StorageArea);
        }
Ejemplo n.º 5
0
        public static QueryAsyncJobResultResponse CreateTagsForSnapshot(string resourceId)
        {
            var resourceIds = new List <string> {
                resourceId
            };
            var tags = new Dictionary <string, string> {
                { ConfigurationHelper.TagKey, ConfigurationHelper.TagValue }
            };

            var cmd = new CreateTagsCommand(resourceIds, tags, CreateTagsCommand.SnapshotResourceType);

            cmd.ExecuteCommand();
            Thread.Sleep(ConfigurationHelper.CommandExecutionDelayInSeconds);
            return(cmd.QueryAsyncJobResultResponse);
        }
Ejemplo n.º 6
0
        public void Validate_ShouldFail_WhenNoTagNosGiven()
        {
            var command = new CreateTagsCommand(
                new List <string>(),
                _projectName,
                _stepId,
                _requirements,
                null,
                null);

            var result = _dut.Validate(command);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);
            Assert.IsTrue(result.Errors[0].ErrorMessage.StartsWith("At least 1 TagNo must be given!"));
        }
Ejemplo n.º 7
0
        public void Validate_ShouldFailForSupplierStep_WhenNoRequirementsGiven()
        {
            var command = new CreateTagsCommand(
                new List <string> {
                _tagNo1, _tagNo2
            },
                _projectName,
                _stepId,
                new List <RequirementForCommand>(),
                null,
                null);

            var result = _dut.Validate(command);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);
            Assert.IsTrue(result.Errors[0].ErrorMessage.StartsWith("Requirements must include requirements to be used both for supplier and other than suppliers!"));
        }
Ejemplo n.º 8
0
        public void Validate_ShouldFail_WhenNoTagNosNotUnique()
        {
            var command = new CreateTagsCommand(
                new List <string> {
                "X", "x"
            },
                _projectName,
                _stepId,
                _requirements,
                null,
                null);

            var result = _dut.Validate(command);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);
            Assert.IsTrue(result.Errors[0].ErrorMessage.StartsWith("Tags must be unique!"));
        }
Ejemplo n.º 9
0
        public void Validate_ShouldFailForNonSupplierStep_WhenNoRequirementsGiven()
        {
            _stepValidatorMock.Setup(r => r.IsForSupplierAsync(_stepId, default)).Returns(Task.FromResult(false));
            var command = new CreateTagsCommand(
                new List <string> {
                _tagNo1, _tagNo2
            },
                _projectName,
                _stepId,
                new List <RequirementForCommand>(),
                null,
                null);

            var result = _dut.Validate(command);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);
            Assert.IsTrue(result.Errors[0].ErrorMessage.StartsWith("Requirements must include requirements to be used for other than suppliers!"));
        }
        public async Task <ActionResult <int> > MigrateTags(
            [FromHeader(Name = CurrentPlantMiddleware.PlantHeader)]
            [Required]
            [StringLength(PlantEntityBase.PlantLengthMax, MinimumLength = PlantEntityBase.PlantLengthMin)]
            string plant,
            [FromBody] CreateTagsDto dto)
        {
            var requirements = dto.Requirements?
                               .Select(r =>
                                       new RequirementForCommand(r.RequirementDefinitionId, r.IntervalWeeks));
            var command = new CreateTagsCommand(
                dto.TagNos,
                dto.ProjectName,
                dto.StepId,
                requirements,
                dto.Remark,
                dto.StorageArea);

            var result = await _mediator.Send(command);

            return(this.FromResult(result));
        }
Ejemplo n.º 11
0
        public void Setup_OkState()
        {
            _tagValidatorMock = new Mock <ITagValidator>();

            _stepValidatorMock = new Mock <IStepValidator>();
            _stepValidatorMock.Setup(r => r.ExistsAsync(_stepId, default)).Returns(Task.FromResult(true));
            _stepValidatorMock.Setup(r => r.IsForSupplierAsync(_stepId, default)).Returns(Task.FromResult(true));

            _projectValidatorMock = new Mock <IProjectValidator>();

            _rdValidatorMock = new Mock <IRequirementDefinitionValidator>();
            _rdValidatorMock.Setup(r => r.ExistsAsync(_rd1Id, default)).Returns(Task.FromResult(true));
            _rdValidatorMock.Setup(r => r.ExistsAsync(_rd2Id, default)).Returns(Task.FromResult(true));
            _rdValidatorMock.Setup(r => r.UsageCoversBothForSupplierAndOtherAsync(new List <int> {
                _rd1Id, _rd2Id
            }, default)).Returns(Task.FromResult(true));

            _requirements = new List <RequirementForCommand>
            {
                new RequirementForCommand(_rd1Id, 1),
                new RequirementForCommand(_rd2Id, 1)
            };
            _command = new CreateTagsCommand(
                new List <string> {
                _tagNo1, _tagNo2
            },
                _projectName,
                _stepId,
                _requirements,
                null,
                null);

            _dut = new CreateTagsCommandValidator(
                _tagValidatorMock.Object,
                _stepValidatorMock.Object,
                _projectValidatorMock.Object,
                _rdValidatorMock.Object);
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> CreateTags([FromBody] CreateTagsCommand command)
        {
            var response = await _mediator.Send(command);

            return(CreateResponse(response));
        }
Ejemplo n.º 13
0
        public void Setup()
        {
            _modeRepositoryMock = new Mock <IModeRepository>();
            _modeMock           = new Mock <Mode>();
            _modeMock.SetupGet(m => m.Plant).Returns(TestPlant);
            _modeMock.SetupGet(x => x.Id).Returns(ModeId);
            _modeRepositoryMock
            .Setup(r => r.GetByIdAsync(ModeId))
            .Returns(Task.FromResult(_modeMock.Object));

            // Arrange
            _step = new Step(TestPlant, "S", _modeMock.Object, new Responsible(TestPlant, "RC", "RD"));
            _step.SetProtectedIdForTesting(StepId);

            _journeyRepositoryMock = new Mock <IJourneyRepository>();
            _journeyRepositoryMock
            .Setup(x => x.GetStepByStepIdAsync(StepId))
            .Returns(Task.FromResult(_step));

            _projectRepositoryMock = new Mock <IProjectRepository>();
            _projectRepositoryMock
            .Setup(x => x.Add(It.IsAny <Project>()))
            .Callback <Project>(project =>
            {
                _projectAddedToRepository = project;
            });

            _rtRepositoryMock = new Mock <IRequirementTypeRepository>();
            var rdMock1 = new Mock <RequirementDefinition>();

            rdMock1.SetupGet(x => x.Id).Returns(ReqDefId1);
            rdMock1.SetupGet(x => x.Plant).Returns(TestPlant);
            var rdMock2 = new Mock <RequirementDefinition>();

            rdMock2.SetupGet(x => x.Id).Returns(ReqDefId2);
            rdMock2.SetupGet(x => x.Plant).Returns(TestPlant);
            _rtRepositoryMock
            .Setup(r => r.GetRequirementDefinitionsByIdsAsync(new List <int> {
                ReqDefId1, ReqDefId2
            }))
            .Returns(Task.FromResult(new List <RequirementDefinition> {
                rdMock1.Object, rdMock2.Object
            }));

            _mainTagDetails1 = new PCSTagDetails
            {
                AreaCode              = "AreaCode1",
                AreaDescription       = "AreaDescription1",
                CallOffNo             = "CalloffNo1",
                CommPkgNo             = "CommPkgNo1",
                Description           = "Description1",
                DisciplineCode        = "DisciplineCode1",
                DisciplineDescription = "DisciplineDescription1",
                McPkgNo            = "McPkgNo1",
                PurchaseOrderNo    = "PurchaseOrderNo1",
                TagFunctionCode    = "TagFunctionCode1",
                TagNo              = TestTagNo1,
                ProjectDescription = TestProjectDescription
            };
            _mainTagDetails2 = new PCSTagDetails
            {
                AreaCode              = "AreaCode2",
                AreaDescription       = "AreaDescription2",
                CallOffNo             = "CalloffNo2",
                CommPkgNo             = "CommPkgNo2",
                Description           = "Description2",
                DisciplineCode        = "DisciplineCode2",
                DisciplineDescription = "DisciplineDescription1",
                McPkgNo            = "McPkgNo2",
                PurchaseOrderNo    = "PurchaseOrderNo2",
                TagFunctionCode    = "TagFunctionCode2",
                TagNo              = TestTagNo2,
                ProjectDescription = TestProjectDescription
            };

            IList <PCSTagDetails> mainTagDetailList = new List <PCSTagDetails> {
                _mainTagDetails1, _mainTagDetails2
            };

            _tagApiServiceMock = new Mock <ITagApiService>();
            _tagApiServiceMock
            .Setup(x => x.GetTagDetailsAsync(TestPlant, TestProjectName, new List <string> {
                TestTagNo1, TestTagNo2
            }))
            .Returns(Task.FromResult(mainTagDetailList));

            _command = new CreateTagsCommand(
                new List <string> {
                TestTagNo1, TestTagNo2
            },
                TestProjectName,
                _step.Id,
                new List <RequirementForCommand>
            {
                new RequirementForCommand(ReqDefId1, Interval1),
                new RequirementForCommand(ReqDefId2, Interval2),
            },
                "Remark",
                "SA");

            _dut = new CreateTagsCommandHandler(
                _projectRepositoryMock.Object,
                _journeyRepositoryMock.Object,
                _modeRepositoryMock.Object,
                _rtRepositoryMock.Object,
                UnitOfWorkMock.Object,
                PlantProviderMock.Object,
                _tagApiServiceMock.Object);
        }