public void MappingProcessor_should_call_post_deploy_action_when_script_not_specified()
        {
            // Arrange
            var deployAgentProvider    = new DeployAgentProvider();
            var deploymentFolderSource = MockRepository.GenerateStub <IDeploymentFolderSource>();
            var mappingEvaluator       = MockRepository.GenerateStub <IMappingEvaluator>();
            var mappingProcessor       = new MappingProcessor(deployAgentProvider, deploymentFolderSource, mappingEvaluator);
            var postDeployAction       = MockRepository.GenerateStub <IPostDeployAction>();

            var buildDetail = new BuildDetail();

            var mappings = new[] { new Mapping {
                                       RetainBuildSpecified = true, RetainBuild = true
                                   } };

            mappingEvaluator.Stub(o => o.DoesMappingApply(null, null, null))
            .IgnoreArguments()
            .Return(true);

            var statusChanged = new BuildStatusChangeEvent {
                StatusChange = new Change()
            };

            // Act
            mappingProcessor.ProcessMappings(mappings, statusChanged, buildDetail, postDeployAction);

            // Assert
            postDeployAction.AssertWasCalled(o => o.DeploymentFinished(
                                                 Arg <Mapping> .Is.Equal(mappings[0]),
                                                 Arg <DeployAgentResult> .Matches(result => !result.HasErrors))
                                             );
        }
Esempio n. 2
0
        public void DeployAgentProvider_should_provide_an_OutOfProcessPowerShellDeployAgent_with_ClrVersion4_for_PowerShellV3_runner_type()
        {
            var mapping = new Mapping {
                RunnerType = RunnerType.PowerShellV3, RunnerTypeSpecified = true, Script = "not blank"
            };

            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterType <DeploymentEventJournal>().As <IDeploymentEventRecorder>();
            containerBuilder.RegisterType <OutOfProcessPowerShellDeployAgent>();

            IDeployAgent agent;

            using (var container = containerBuilder.Build())
            {
                var provider = new DeployAgentProvider(container);
                agent = provider.GetDeployAgent(mapping);
            }

            Assert.IsInstanceOfType(agent, typeof(OutOfProcessPowerShellDeployAgent));

            var clrVersion = (ClrVersion)agent.GetType().GetField("_clrVersion", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(agent);

            Assert.AreEqual(ClrVersion.Version4, clrVersion);
        }
Esempio n. 3
0
        public IDeployer Create()
        {
            var deployAgentProvider = new DeployAgentProvider();
            var emailAlerter        = new EmailAlerter();
            var mappingEvaluator    = new MappingEvaluator();
            var mappingProcessor    = new MappingProcessor(deployAgentProvider, _deploymentFolderSource, mappingEvaluator);

            return(new Deployer(_configurationReader, emailAlerter, _buildServer, mappingProcessor));
        }
Esempio n. 4
0
        public void DeployAgentProvider_should_provide_a_BatchFileDeployAgent_for_BatchFile_runner_type()
        {
            var mapping = new Mapping {
                RunnerType = RunnerType.BatchFile, Script = "not blank"
            };

            var provider = new DeployAgentProvider(null);
            var agent    = provider.GetDeployAgent(mapping);

            Assert.IsInstanceOfType(agent, typeof(BatchFileDeployAgent));
        }
Esempio n. 5
0
        public void DeployAgentProvider_should_provide_nothing_for_an_unspecified_script()
        {
            var mapping = new Mapping {
                Script = string.Empty
            };

            var provider = new DeployAgentProvider(null);
            var agent    = provider.GetDeployAgent(mapping);

            Assert.IsNull(agent);
        }
Esempio n. 6
0
        public void DeployAgentProvider_should_provide_an_OutOfProcessPowerShellDeployAgent_for_unspecified_runner_type()
        {
            var mapping = new Mapping {
                RunnerTypeSpecified = false, Script = "not blank"
            };

            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterType <DeploymentEventJournal>().As <IDeploymentEventRecorder>();
            containerBuilder.RegisterType <OutOfProcessPowerShellDeployAgent>();

            using (var container = containerBuilder.Build())
            {
                var provider = new DeployAgentProvider(container);
                var agent    = provider.GetDeployAgent(mapping);

                Assert.IsInstanceOfType(agent, typeof(OutOfProcessPowerShellDeployAgent));
            }
        }