コード例 #1
0
        public void Get_ReleaseWithStageAndStepFound_ReleaseWithStageAndStepReturned()
        {
            //Arrange
            var request = new GetReleasesHttpRequestMessageBuilder().Build();

            var expectedRelease     = new ReleaseBuilder().Build();
            var expectedEnvironment = new EnvironmentBuilder().Build();
            var expectedStage       = new StageBuilder().ForEnvironment(expectedEnvironment).Build();
            var expectedStep        = new StepBuilder()
                                      .ForRelease(expectedRelease)
                                      .ForStage(expectedStage)
                                      .Build();
            var expectedDeploymentStep = new DeploymentStepBuilder()
                                         .ForRelease(expectedRelease)
                                         .ForStage(expectedStage)
                                         .ForStep(expectedStep)
                                         .Build();

            var dataModel = new DataModelBuilder()
                            .WithRelease(expectedRelease)
                            .WithEnvironment(expectedEnvironment)
                            .WithStage(expectedStage)
                            .WithStageWorkflowFor(expectedRelease, expectedStage)
                            .WithStep(expectedStep)
                            .WithDeploymentStep(expectedDeploymentStep)
                            .Build();

            _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(dataModel);

            //Act
            dynamic result = _sut.Get(request);

            //Assert
            Assert.IsNotNull(result, "Unexpected result");

            Assert.IsInstanceOfType(result.releases, typeof(List <dynamic>), "Unexpected type for releases collection");
            Assert.AreEqual(1, result.releases.Count, "Unexpected number of releases");
            var actualRelease = result.releases[0];

            AssertAreReleasesEqual(expectedRelease, actualRelease);

            Assert.IsInstanceOfType(actualRelease.stages, typeof(List <dynamic>), "Unexpected type for stages collection");
            Assert.AreEqual(1, actualRelease.stages.Count, "Unexpected number of stages for release");
            var actualStage = actualRelease.stages[0];

            AssertAreStagesEqual(expectedStage, expectedEnvironment, actualStage);

            Assert.IsInstanceOfType(actualStage.steps, typeof(List <dynamic>), "Unexpected type for steps collection");
            Assert.AreEqual(1, actualStage.steps.Count, "Unexpected number of steps for stage");
            var actualStep = actualStage.steps[0];

            AssertAreStepsEqual(expectedStep, actualStep);

            Assert.IsInstanceOfType(actualStep.deploymentSteps, typeof(List <dynamic>), "Unexpected type for deploymentStep collection");
            Assert.AreEqual(1, actualStep.deploymentSteps.Count, "Unexpected number of steps for deploymentSteps");
            AssertAreDeploymentStepsEqual(expectedDeploymentStep, actualStep.deploymentSteps[0]);
        }
コード例 #2
0
        public void Get_ReleaseWithStageAndStepFound_ReleaseWithStageAndStepReturned()
        {
            //Arrange
            var request = new GetReleasesHttpRequestMessageBuilder().Build();

            var expectedRelease = new ReleaseBuilder().Build();
            var expectedEnvironment = new EnvironmentBuilder().Build();
            var expectedStage = new StageBuilder().ForEnvironment(expectedEnvironment).Build();
            var expectedStep = new StepBuilder()
                .ForRelease(expectedRelease)
                .ForStage(expectedStage)
                .Build();
            var expectedDeploymentStep = new DeploymentStepBuilder()
                .ForRelease(expectedRelease)
                .ForStage(expectedStage)
                .ForStep(expectedStep)
                .Build();

            var dataModel = new DataModelBuilder()
                .WithRelease(expectedRelease)
                .WithEnvironment(expectedEnvironment)
                .WithStage(expectedStage)
                .WithStageWorkflowFor(expectedRelease, expectedStage)
                .WithStep(expectedStep)
                .WithDeploymentStep(expectedDeploymentStep)
                .Build();

            _releaseRepositoryMock.Setup((stub) => stub.GetReleaseData(It.IsAny<string>(), It.IsAny<int>()))
                .Returns(dataModel);

            //Act
            dynamic result = _sut.Get(request);

            //Assert
            Assert.IsNotNull(result, "Unexpected result");

            Assert.IsInstanceOfType(result.releases, typeof(List<dynamic>), "Unexpected type for releases collection");
            Assert.AreEqual(1, result.releases.Count, "Unexpected number of releases");
            var actualRelease = result.releases[0];
            AssertAreReleasesEqual(expectedRelease, actualRelease);

            Assert.IsInstanceOfType(actualRelease.stages, typeof(List<dynamic>), "Unexpected type for stages collection");
            Assert.AreEqual(1, actualRelease.stages.Count, "Unexpected number of stages for release");
            var actualStage = actualRelease.stages[0];
            AssertAreStagesEqual(expectedStage, expectedEnvironment, actualStage);

            Assert.IsInstanceOfType(actualStage.steps, typeof(List<dynamic>), "Unexpected type for steps collection");
            Assert.AreEqual(1, actualStage.steps.Count, "Unexpected number of steps for stage");
            var actualStep = actualStage.steps[0];
            AssertAreStepsEqual(expectedStep, actualStep);

            Assert.IsInstanceOfType(actualStep.deploymentSteps, typeof(List<dynamic>), "Unexpected type for deploymentStep collection");
            Assert.AreEqual(1, actualStep.deploymentSteps.Count, "Unexpected number of steps for deploymentSteps");
            AssertAreDeploymentStepsEqual(expectedDeploymentStep, actualStep.deploymentSteps[0]);
        }