Exemplo n.º 1
0
 public async Task SwapSteps_AsPreserver_ShouldReturnForbidden_WhenPermissionMissing()
 => await JourneysControllerTestsHelper.SwapStepsAsync(
     UserType.Preserver,
     TestFactory.PlantWithAccess,
     9999,
     new StepIdAndRowVersion
 {
     Id         = 2,
     RowVersion = TestFactory.AValidRowVersion
 },
     new StepIdAndRowVersion
 {
     Id         = 12,
     RowVersion = TestFactory.AValidRowVersion
 },
     HttpStatusCode.Forbidden);
Exemplo n.º 2
0
 public async Task SwapSteps_AsAdmin_ShouldReturnForbidden_WhenNoAccessToPlant()
 => await JourneysControllerTestsHelper.SwapStepsAsync(
     UserType.LibraryAdmin,
     TestFactory.PlantWithoutAccess,
     9999,
     new StepIdAndRowVersion
 {
     Id         = 2,
     RowVersion = TestFactory.AValidRowVersion
 },
     new StepIdAndRowVersion
 {
     Id         = 12,
     RowVersion = TestFactory.AValidRowVersion
 },
     HttpStatusCode.Forbidden);
Exemplo n.º 3
0
 public async Task SwapSteps_AsAnonymous_ShouldReturnUnauthorized()
 => await JourneysControllerTestsHelper.SwapStepsAsync(
     UserType.Anonymous,
     TestFactory.UnknownPlant,
     9999,
     new StepIdAndRowVersion
 {
     Id         = 2,
     RowVersion = TestFactory.AValidRowVersion
 },
     new StepIdAndRowVersion
 {
     Id         = 12,
     RowVersion = TestFactory.AValidRowVersion
 },
     HttpStatusCode.Unauthorized);
Exemplo n.º 4
0
 public async Task SwapSteps_AsAdmin_ShouldReturnBadRequest_WhenUnknownPlant()
 => await JourneysControllerTestsHelper.SwapStepsAsync(
     UserType.LibraryAdmin,
     TestFactory.UnknownPlant,
     9999,
     new StepIdAndRowVersion
 {
     Id         = 2,
     RowVersion = TestFactory.AValidRowVersion
 },
     new StepIdAndRowVersion
 {
     Id         = 12,
     RowVersion = TestFactory.AValidRowVersion
 },
     HttpStatusCode.BadRequest,
     "is not a valid plant");
        public async Task SwapSteps_AsAdmin_ShouldSwapSteps_AndUpdateRowVersions()
        {
            // Arrange
            var journeyIdUnderTest = await JourneysControllerTestsHelper.CreateJourneyAsync(
                UserType.LibraryAdmin,
                TestFactory.PlantWithAccess,
                Guid.NewGuid().ToString());

            var stepId = await JourneysControllerTestsHelper.CreateStepAsync(
                UserType.LibraryAdmin,
                TestFactory.PlantWithAccess,
                journeyIdUnderTest,
                Guid.NewGuid().ToString(),
                SupModeAIdUnderTest,
                KnownTestData.ResponsibleCode);

            var originalFirstStep = await GetStepDetailsAsync(journeyIdUnderTest, stepId);

            Assert.IsTrue(originalFirstStep.Mode.ForSupplier);
            stepId = await JourneysControllerTestsHelper.CreateStepAsync(
                UserType.LibraryAdmin,
                TestFactory.PlantWithAccess,
                journeyIdUnderTest,
                Guid.NewGuid().ToString(),
                OtherModeIdUnderTest,
                KnownTestData.ResponsibleCode);

            var originalSecondStep = await GetStepDetailsAsync(journeyIdUnderTest, stepId);

            Assert.IsFalse(originalSecondStep.Mode.ForSupplier);

            // Act
            var newRowVersions = await JourneysControllerTestsHelper.SwapStepsAsync(
                UserType.LibraryAdmin,
                TestFactory.PlantWithAccess,
                journeyIdUnderTest,
                new StepIdAndRowVersion
            {
                Id         = originalFirstStep.Id,
                RowVersion = originalFirstStep.RowVersion
            },
                new StepIdAndRowVersion
            {
                Id         = originalSecondStep.Id,
                RowVersion = originalSecondStep.RowVersion
            });

            // Assert
            var updatedJourney = await JourneysControllerTestsHelper.GetJourneyAsync(
                UserType.LibraryAdmin,
                TestFactory.PlantWithAccess,
                journeyIdUnderTest);

            var swappedStepA = updatedJourney.Steps.ElementAt(0);
            var swappedStepB = updatedJourney.Steps.ElementAt(1);

            Assert.AreEqual(originalSecondStep.Id, swappedStepA.Id);
            Assert.AreEqual(originalFirstStep.Id, swappedStepB.Id);
            Assert.IsFalse(swappedStepA.Mode.ForSupplier);
            Assert.IsTrue(swappedStepB.Mode.ForSupplier);

            var updatedFirstStepRowVersion  = updatedJourney.Steps.Single(s => s.Id == originalFirstStep.Id).RowVersion;
            var updatedSecondStepRowVersion = updatedJourney.Steps.Single(s => s.Id == originalSecondStep.Id).RowVersion;

            AssertRowVersionChange(originalFirstStep.RowVersion, updatedFirstStepRowVersion);
            AssertRowVersionChange(originalSecondStep.RowVersion, updatedSecondStepRowVersion);

            Assert.AreEqual(updatedFirstStepRowVersion, newRowVersions.Single(r => r.Id == originalFirstStep.Id).RowVersion);
            Assert.AreEqual(updatedSecondStepRowVersion, newRowVersions.Single(r => r.Id == originalSecondStep.Id).RowVersion);
        }