public void Deployer_should_pass_build_status_to_mapping_processor() { // Arrange BuildDetail buildDetail = null; var statusChanged = new BuildStatusChangeEvent { StatusChange = new Change() }; var reader = MockRepository.GenerateStub <IConfigurationReader>(); var tfsBuildDetail = new StubBuildDetail { Status = Microsoft.TeamFoundation.Build.Client.BuildStatus.PartiallySucceeded }; var buildServer = MockRepository.GenerateStub <IBuildServer>(); buildServer.Stub(o => o.GetBuild(null, null, null, QueryOptions.None)) .IgnoreArguments() .Return(tfsBuildDetail); var mappingProcessor = MockRepository.GenerateStub <IMappingProcessor>(); mappingProcessor.Stub(o => o.ProcessMappings(null, null, null, null, 0)) .IgnoreArguments() .WhenCalled(m => buildDetail = (BuildDetail)m.Arguments[2]); Func <BuildDetail, IBuildDetail, IPostDeployAction> postDeployActionFactory = (a, b) => MockRepository.GenerateStub <IPostDeployAction>(); var deployer = new Deployer(reader, buildServer, mappingProcessor, postDeployActionFactory); // Act deployer.ExecuteDeploymentProcess(statusChanged, 0); // Assert Assert.AreEqual(global::TfsDeployer.TeamFoundation.BuildStatus.PartiallySucceeded, buildDetail.Status); }
public void Deployer_should_pass_build_definition_name_to_configuration_reader() { // Arrange BuildDetail buildDetail = null; var statusChanged = new BuildStatusChangeEvent { StatusChange = new Change() }; var mappingProcessor = MockRepository.GenerateStub <IMappingProcessor>(); var tfsBuildDetail = new StubBuildDetail { BuildDefinition = { Name = "foo" } }; var buildServer = MockRepository.GenerateStub <IBuildServer>(); buildServer.Stub(o => o.GetBuild(null, null, null, QueryOptions.None)) .IgnoreArguments() .Return(tfsBuildDetail); var reader = MockRepository.GenerateStub <IConfigurationReader>(); reader.Stub(o => o.ReadMappings(Arg <BuildDetail> .Is.Anything)).WhenCalled(m => buildDetail = (BuildDetail)m.Arguments[0]); Func <BuildDetail, IBuildDetail, IPostDeployAction> postDeployActionFactory = (a, b) => MockRepository.GenerateStub <IPostDeployAction>(); var deployer = new Deployer(reader, buildServer, mappingProcessor, postDeployActionFactory); // Act deployer.ExecuteDeploymentProcess(statusChanged, 0); // Assert Assert.AreEqual("foo", buildDetail.BuildDefinition.Name); }
public void PostDeployAction_should_set_KeepForever_and_save_build_when_RetainBuild_is_specified() { // Arrange var alert = MockRepository.GenerateStub <IAlert>(); var buildServer = MockRepository.GenerateStub <IBuildServer>(); var buildDetail = new BuildDetail(); var tfsBuildDetail = new StubBuildDetail(); ((IBuildDetail)tfsBuildDetail).KeepForever = false; buildServer.Stub(o => o.GetBuild(null, null, null, QueryOptions.None)) .IgnoreArguments() .Return(tfsBuildDetail); var mapping = new Mapping { RetainBuildSpecified = true, RetainBuild = true }; var result = new DeployAgentResult { HasErrors = false, Output = string.Empty }; var postDeployAction = new PostDeployAction(buildDetail, tfsBuildDetail, alert); // Act postDeployAction.DeploymentFinished(mapping, result); // Assert Assert.AreEqual(true, ((IBuildDetail)tfsBuildDetail).KeepForever, "KeepForever"); Assert.AreEqual(1, tfsBuildDetail.SaveCount, "Save()"); }
public void Deployer_should_pass_event_id_to_mapping_processor() { // Arrange const int eventId = 11; var statusChanged = new BuildStatusChangeEvent { StatusChange = new Change() }; var reader = MockRepository.GenerateStub <IConfigurationReader>(); var tfsBuildDetail = new StubBuildDetail { Status = Microsoft.TeamFoundation.Build.Client.BuildStatus.PartiallySucceeded }; var buildServer = MockRepository.GenerateStub <IBuildServer>(); buildServer.Stub(o => o.GetBuild(null, null, null, QueryOptions.None)) .IgnoreArguments() .Return(tfsBuildDetail); var mappingProcessor = MockRepository.GenerateStub <IMappingProcessor>(); Func <BuildDetail, IBuildDetail, IPostDeployAction> postDeployActionFactory = (a, b) => MockRepository.GenerateStub <IPostDeployAction>(); var deployer = new Deployer(reader, buildServer, mappingProcessor, postDeployActionFactory); // Act deployer.ExecuteDeploymentProcess(statusChanged, eventId); // Assert mappingProcessor.AssertWasCalled(o => o.ProcessMappings( Arg <IEnumerable <Mapping> > .Is.Anything, Arg <BuildStatusChangeEvent> .Is.Anything, Arg <BuildDetail> .Is.Anything, Arg <IPostDeployAction> .Is.Anything, Arg <int> .Is.Equal(eventId) )); }