コード例 #1
0
        public async Task HandleGetRequirementTypeByIdQuery_KnownId_ShouldReturnRequirementTypeWithAllPropertiesSet()
        {
            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 requirementType = result.Data;

                Assert.AreEqual(_requirementType.Code, requirementType.Code);
                Assert.AreEqual(_requirementType.Title, requirementType.Title);
                Assert.AreEqual(_requirementType.SortKey, requirementType.SortKey);
                Assert.IsFalse(requirementType.IsVoided);

                var requirementDefinitions = requirementType.RequirementDefinitions.ToList();
                Assert.AreEqual(5, requirementDefinitions.Count);

                var requirementDefWithoutFieldDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithoutField.Id);
                AssertRequirementDefinition(requirementDefWithoutFieldDto, _requirementDefWithoutField, null, false, false);

                var requirementDefWithInfoDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithInfo.Id);
                AssertRequirementDefinition(requirementDefWithInfoDto, _requirementDefWithInfo, _infoField, false, true);

                var requirementDefWithNumberDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithNumber.Id);
                AssertRequirementDefinition(requirementDefWithNumberDto, _requirementDefWithNumber, _numberField, true, true);

                var requirementDefWithCheckboxDto = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithCheckbox.Id);
                AssertRequirementDefinition(requirementDefWithCheckboxDto, _requirementDefWithCheckbox, _checkboxField, true, true);

                var requirementDefWithAttachment = requirementDefinitions.Single(rd => rd.Id == _requirementDefWithAttachment.Id);
                AssertRequirementDefinition(requirementDefWithAttachment, _requirementDefWithAttachment, _attachmentField, true, true);
            }
        }
コード例 #2
0
        public async Task HandleGetRequirementTypeByIdQuery_WithTagUsage_ShouldSetDefinitionInUse()
        {
            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 == _requirementDefWithoutField.Id);
                Assert.IsFalse(reqDef.IsInUse);

                var project = AddProject(context, "P", "Project description");
                var journey = AddJourneyWithStep(context, "J", "S1", AddMode(context, "M1", false), AddResponsible(context, "R1"));
                AddTag(context, project, TagType.Standard, "TagNo", "Tag description", journey.Steps.First(),
                       new List <TagRequirement> {
                    new TagRequirement(TestPlant, 2, _requirementDefWithoutField)
                });
            }
            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 == _requirementDefWithoutField.Id);
                Assert.IsTrue(reqDef.IsInUse);
            }
        }
コード例 #3
0
        public async Task HandleGetRequirementTypeByIdQuery_UnknownId_ShouldReturnNull()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new GetRequirementTypeByIdQueryHandler(context);
                var result = await dut.Handle(new GetRequirementTypeByIdQuery(246), default);

                Assert.IsNull(result.Data);
            }
        }
コード例 #4
0
        public async Task HandleGetRequirementTypeByIdQuery_WithoutDefinition_ShouldNotSetRequirementTypeInUse()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new GetRequirementTypeByIdQueryHandler(context);
                var result = await dut.Handle(new GetRequirementTypeByIdQuery(_requirementTypeWithoutDefinition.Id), default);

                Assert.IsFalse(result.Data.IsInUse);
            }
        }
コード例 #5
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);
            }
        }
コード例 #6
0
        public async Task HandleGetRequirementTypeByIdQuery_WithTagFunctionUsage_ShouldSetDefinitionInUse()
        {
            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 == _requirementDefWithoutField.Id);
                Assert.IsFalse(reqDef.IsInUse);

                var tfWithRequirement = AddTagFunction(context, "TFC2", "RC1");
                tfWithRequirement.AddRequirement(new TagFunctionRequirement(TestPlant, 4, _requirementDefWithoutField));

                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 == _requirementDefWithoutField.Id);
                Assert.IsTrue(reqDef.IsInUse);
            }
        }