示例#1
0
        private static void RecordCheckBoxValues(List <CheckBoxFieldValue> values, TagRequirement requirement, RequirementDefinition requirementDefinition)
        {
            var checkBoxValues =
                values.ToDictionary(keySelector => keySelector.FieldId, elementSelector => elementSelector.IsChecked);

            requirement.RecordCheckBoxValues(checkBoxValues, requirementDefinition);
        }
示例#2
0
        public async Task HandleGetRequirementTypeByIdQuery_AfterPreservationRecorded_ShouldSetFieldInUse()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new GetRequirementTypeByIdQueryHandler(context);
                var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default);

                var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithCheckbox.Id);
                Assert.IsFalse(reqDef.Fields.Single().IsInUse);

                var journey        = AddJourneyWithStep(context, "J1", "S", AddMode(context, "M1", false), AddResponsible(context, "R1"));
                var tagRequirement = new TagRequirement(TestPlant, 2, _requirementDefWithCheckbox);
                var tag            = new Tag(TestPlant,
                                             TagType.Standard,
                                             "TagNo",
                                             "Description",
                                             journey.Steps.ElementAt(0),
                                             new List <TagRequirement>
                {
                    tagRequirement
                });
                tag.StartPreservation();

                context.Tags.Add(tag);
                context.SaveChangesAsync().Wait();

                tagRequirement.RecordCheckBoxValues(
                    new Dictionary <int, bool>
                {
                    { _checkboxField.Id, true }
                },
                    _requirementDefWithCheckbox);
                context.SaveChangesAsync().Wait();
            }

            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new GetRequirementTypeByIdQueryHandler(context);
                var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementType.Id), default);

                var reqDef = result.Data.RequirementDefinitions.Single(rd => rd.Id == _requirementDefWithCheckbox.Id);
                Assert.IsTrue(reqDef.Fields.Single().IsInUse);
            }
        }
示例#3
0
        public async Task AnyExcludedFieldsIsInUseAsync_TheExcludedFieldHasRecordedPreservation_ShouldReturnTrue()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var stepMock = new Mock <Step>();
                stepMock.SetupGet(s => s.Plant).Returns(TestPlant);
                var project        = AddProject(context, "P", "D");
                var tagRequirement = new TagRequirement(TestPlant, 4, _reqDefWithTwoFields);
                var tag            = new Tag(TestPlant, TagType.Standard, "TagNo", "Desc", stepMock.Object, new List <TagRequirement>
                {
                    tagRequirement
                });
                tag.StartPreservation();
                project.AddTag(tag);
                context.SaveChangesAsync().Wait();

                var requirementDefinition = context.RequirementDefinitions.Include(rd => rd.Fields)
                                            .Single(rd => rd.Id == _reqDefWithTwoFields.Id);
                tagRequirement.RecordCheckBoxValues(
                    new Dictionary <int, bool> {
                    { _cbFieldId, true }
                },
                    requirementDefinition);
                context.SaveChangesAsync().Wait();
            }

            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new RequirementDefinitionValidator(context);
                var result = await dut.AnyExcludedFieldsIsInUseAsync(_reqDefWithTwoFields.Id, new List <int> {
                    _numberFieldId
                }, default);

                Assert.IsTrue(result);
            }
        }