コード例 #1
0
        public async Task DuplicateAreaTag_AsPlanner_ShouldDuplicateTag()
        {
            // Arrange
            var tagsResult = await TagsControllerTestsHelper.GetAllTagsAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                TestFactory.ProjectWithAccess);

            var initialTagsCount       = tagsResult.Tags.Count;
            var readyToBeDuplicatedTag = tagsResult.Tags.FirstOrDefault(t => t.ReadyToBeDuplicated);

            Assert.IsNotNull(readyToBeDuplicatedTag, "Bad test setup: Didn't find tag to duplicate.");

            // Act
            var id = await TagsControllerTestsHelper.DuplicateAreaTagAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                readyToBeDuplicatedTag.Id,
                AreaTagType.SiteArea,
                KnownDisciplineCode,
                KnownAreaCode,
                null,
                "Desc",
                null,
                null);

            // Assert
            await AssertNewTagCreatedAsync(UserType.Planner, TestFactory.PlantWithAccess, id, initialTagsCount);
            await AssertInHistoryAsLatestEventAsync(id, UserType.Planner, EventType.TagCreated);
        }
コード例 #2
0
        private async Task AssertNewTagCreatedAsync(
            UserType userType,
            string plant,
            int id,
            int initialTagsCount)
        {
            Assert.IsTrue(id > 0);
            var tagsResult = await TagsControllerTestsHelper.GetAllTagsAsync(
                userType,
                plant,
                TestFactory.ProjectWithAccess);

            Assert.AreEqual(initialTagsCount + 1, tagsResult.Tags.Count);
            Assert.IsNotNull(tagsResult.Tags.SingleOrDefault(t => t.Id == id));
        }
コード例 #3
0
        public async Task CreateStandardTag_AsPlanner_ShouldCreateStandardTag()
        {
            // Arrange
            var tagsResult = await TagsControllerTestsHelper.GetAllTagsAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                TestFactory.ProjectWithAccess);

            var initialTagsCount = tagsResult.Tags.Count;

            // Act
            var id = await CreateStandardTagAsync(TwoStepJourneyWithTags.Steps.First().Id, false);

            // Assert
            await AssertNewTagCreatedAsync(UserType.Planner, TestFactory.PlantWithAccess, id, initialTagsCount);
        }
コード例 #4
0
        public async Task GetAllTags_AsPreserver_ShouldGetTags()
        {
            // Act
            var tagsResult = await TagsControllerTestsHelper.GetAllTagsAsync(
                UserType.Preserver, TestFactory.PlantWithAccess,
                TestFactory.ProjectWithAccess);

            // Assert
            Assert.IsTrue(tagsResult.Tags.Count > 0);

            var siteAreaTag = tagsResult.Tags.Single(t => t.Id == TagIdUnderTest_ForSiteAreaTagReadyForBulkPreserve_NotStarted);

            Assert.IsNotNull(siteAreaTag.TagNo);
            Assert.IsNotNull(siteAreaTag.RowVersion);
        }
コード例 #5
0
        public async Task TestInitialize()
        {
            var result = await TagsControllerTestsHelper.GetAllTagsAsync(
                UserType.Preserver, TestFactory.PlantWithAccess,
                TestFactory.ProjectWithAccess);

            Assert.IsNotNull(result);

            InitialTagsCount = result.MaxAvailable;
            Assert.IsTrue(InitialTagsCount > 0, "Bad test setup: Didn't find any tags at startup");
            Assert.AreEqual(InitialTagsCount, result.Tags.Count);

            var journeys = await JourneysControllerTestsHelper.GetJourneysAsync(UserType.LibraryAdmin, TestFactory.PlantWithAccess);

            TwoStepJourneyWithTags = journeys.Single(j => j.Title == KnownTestData.TwoStepJourneyWithTags);

            TagIdUnderTest_ForStandardTagReadyForBulkPreserve_NotStarted
                = TestFactory.Instance.SeededData[KnownPlantData.PlantA].TagId_ForStandardTagReadyForBulkPreserve_NotStarted;
            TagIdUnderTest_ForStandardTagWithAttachmentRequirement_Started
                = TestFactory.Instance.SeededData[KnownPlantData.PlantA].TagId_ForStandardTagWithAttachmentRequirement_Started;
            TagIdUnderTest_ForStandardTagWithInfoRequirement_Started
                = TestFactory.Instance.SeededData[KnownPlantData.PlantA].TagId_ForStandardTagWithInfoRequirement_Started;
            TagIdUnderTest_ForStandardTagWithCbRequirement_Started
                = TestFactory.Instance.SeededData[KnownPlantData.PlantA].TagId_ForStandardTagWithCbRequirement_Started;
            TagIdUnderTest_ForSiteAreaTagReadyForBulkPreserve_NotStarted
                = TestFactory.Instance.SeededData[KnownPlantData.PlantA].TagId_ForSiteAreaTagReadyForBulkPreserve_NotStarted;

            TagIdUnderTest_ForStandardTagWithAttachmentsAndActionAttachments_Started
                = TestFactory.Instance.SeededData[KnownPlantData.PlantA].TagId_ForStandardTagWithAttachmentsAndActionAttachments_Started;
            TagIdUnderTest_ForSiteAreaTagWithAttachmentsAndActionAttachments_NotStarted
                = TestFactory.Instance.SeededData[KnownPlantData.PlantA].TagId_ForSiteAreaTagWithAttachmentsAndActionAttachments_NotStarted;

            TestFactory.Instance
            .DisciplineApiServiceMock
            .Setup(service => service.TryGetDisciplineAsync(TestFactory.PlantWithAccess, KnownDisciplineCode))
            .Returns(Task.FromResult(new PCSDiscipline
            {
                Code = KnownDisciplineCode, Description = $"{KnownDisciplineCode} - Description"
            }));

            TestFactory.Instance
            .AreaApiServiceMock
            .Setup(service => service.TryGetAreaAsync(TestFactory.PlantWithAccess, KnownAreaCode))
            .Returns(Task.FromResult(new PCSArea
            {
                Code = KnownAreaCode, Description = $"{KnownAreaCode} - Description"
            }));
        }
コード例 #6
0
        public async Task CreatePoAreaTag_AsPlanner_ShouldCreatePoAreaTag()
        {
            // Arrange
            var tagsResult = await TagsControllerTestsHelper.GetAllTagsAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                TestFactory.ProjectWithAccess);

            var initialTagsCount = tagsResult.Tags.Count;
            var supplierStepId   = TwoStepJourneyWithTags.Steps.First(s => s.Mode.ForSupplier).Id;

            // Act
            var id = await CreateAreaTagAsync(
                AreaTagType.PoArea,
                supplierStepId,
                KnownPOCode,
                false);

            // Assert
            await AssertNewTagCreatedAsync(UserType.Planner, TestFactory.PlantWithAccess, id, initialTagsCount);
        }
コード例 #7
0
        public async Task Reschedule_AsPlanner_ShouldRescheduleTags()
        {
            // Arrange
            var tagIdUnderTest = await CreateAreaTagAsync(
                AreaTagType.PreArea,
                TwoStepJourneyWithTags.Steps.First().Id,
                null,
                true);

            var tagsResult = await TagsControllerTestsHelper.GetAllTagsAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                TestFactory.ProjectWithAccess);

            var tagToReschedule = tagsResult.Tags.Single(t => t.Id == tagIdUnderTest);

            // Act
            var currentRowVersion = tagToReschedule.RowVersion;
            var idAndRowVersions  = await TagsControllerTestsHelper.RescheduleAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                new List <IdAndRowVersion>
            {
                new IdAndRowVersion
                {
                    Id         = tagIdUnderTest,
                    RowVersion = currentRowVersion
                }
            },
                52,
                RescheduledDirection.Later,
                "Test");

            // Assert
            Assert.IsNotNull(idAndRowVersions);
            Assert.AreEqual(1, idAndRowVersions.Count);

            var requirementDetailDto = idAndRowVersions.Single();

            AssertRowVersionChange(currentRowVersion, requirementDetailDto.RowVersion);
            await AssertInHistoryAsLatestEventAsync(tagToReschedule.Id, UserType.Planner, EventType.Rescheduled);
        }
コード例 #8
0
        public async Task Transfer_AsPlanner_ShouldTransferTags()
        {
            // Arrange
            var tagIdUnderTest = await CreateAreaTagAsync(
                AreaTagType.PreArea,
                TwoStepJourneyWithTags.Steps.First().Id,
                null,
                true);

            var tagsResult = await TagsControllerTestsHelper.GetAllTagsAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                TestFactory.ProjectWithAccess);

            var tagToTransfer = tagsResult.Tags.Single(t => t.Id == tagIdUnderTest);

            Assert.IsTrue(tagToTransfer.ReadyToBeTransferred, "Bad test setup: Didn't find tag ready to be transferred");
            var currentRowVersion = tagToTransfer.RowVersion;

            // Act
            var idAndRowVersions = await TagsControllerTestsHelper.TransferAsync(
                UserType.Planner, TestFactory.PlantWithAccess,
                new List <IdAndRowVersion>
            {
                new IdAndRowVersion
                {
                    Id         = tagIdUnderTest,
                    RowVersion = currentRowVersion
                }
            });

            // Assert
            Assert.IsNotNull(idAndRowVersions);
            Assert.AreEqual(1, idAndRowVersions.Count);

            var requirementDetailDto = idAndRowVersions.Single();

            AssertRowVersionChange(currentRowVersion, requirementDetailDto.RowVersion);
            await AssertInHistoryAsLatestEventAsync(tagToTransfer.Id, UserType.Planner, EventType.TransferredManually);
        }