public void Setup() { mother = new HeadlessMother(); mockBuildTrafficSignals = MockRepository.GenerateMock <IBuildTrafficSignals>(); mockBuildStageRunnerFactory = MockRepository.GenerateMock <IBuildStageRunnerFactory>(); logger = new DefaultHeadlessLogger(); project = new Project("Headless"); buildStage1 = new BuildStage("stage1", this.project); buildStage2 = new BuildStage("stage2", this.project); buildStageAcceptTests = new BuildStage("accept.tests", this.project); buildStageAcceptTests.BuildComputer = "other"; buildStage2.DependsOn.Add(this.buildStage1); buildStageAcceptTests.DependsOn.Add(this.buildStage1); project.BuildStages.Add(this.buildStage1); project.BuildStages.Add(this.buildStage2); project.BuildStages.Add(this.buildStageAcceptTests); IStageRunner stageRunner1 = new LocalStageRunner(this.logger); stageRunner1.SetBuildStage(this.buildStage1); IStageRunner stageRunner2 = new LocalStageRunner(this.logger); stageRunner2.SetBuildStage(this.buildStage2); IStageRunner stageRunner3 = new LocalStageRunner(this.logger); stageRunner3.SetBuildStage(this.buildStageAcceptTests); this.mockBuildStageRunnerFactory.Expect(factory => factory.CreateStageRunner(this.buildStage1)).Return(stageRunner1).Repeat.Once(); this.mockBuildStageRunnerFactory.Expect(factory => factory.CreateStageRunner(this.buildStage2)).Return(stageRunner2).Repeat.Once(); this.mockBuildStageRunnerFactory.Expect(factory => factory.CreateStageRunner(this.buildStageAcceptTests)).Return(stageRunner3).Repeat.Once(); mockBuildTaskSuccess = MockRepository.GenerateMock <IBuildTask>(); this.mockBuildTaskSuccess.Expect(task => task.Execute()).WhenCalled(delegate { Thread.Sleep(3000); }); mockBuildTaskFailure = MockRepository.GenerateMock <IBuildTask>(); this.mockBuildTaskFailure.Expect(task => task.Execute()).WhenCalled(delegate { Thread.Sleep(3000); throw new InvalidOperationException(); }); this.mockBuildTrafficSignals.Expect(cop => cop.WaitForControlSignal(TimeSpan.Zero)) .IgnoreArguments().WhenCalled(delegate { Thread.Sleep(5000); }).Return(BuildTrafficCopSignal.NoSignal) .Repeat.Any(); }
public HeadlessMother() { projectRegistry = MockRepository.GenerateMock <IProjectRegistry>(); workerMonitor = new DefaultWorkerMonitor(); headlessLogger = new DefaultHeadlessLogger(); buildStageRunnerFactory = new DefaultBuildStageRunnerFactory(headlessLogger); ServiceInfo serviceInfo = new ServiceInfo(); serviceInfo.ComputerName = "computer"; serviceInfo.PortNumber = 3434; projectRegistry.Stub(r => r.ListProjects()).Return(new string[] { "ProjectPilot", "Headless", "Flubu" }) .Repeat.Any(); DefaultBuildTrafficSignals defaultBuildTrafficSignals = new DefaultBuildTrafficSignals(); BuildRunner buildRunner = new BuildRunner( "Headless", projectRegistry, defaultBuildTrafficSignals, buildStageRunnerFactory, headlessLogger); projectRegistry.Stub(r => r.RegisterBuild("Headless")).Return(buildRunner).Repeat.Once(); Project project; project = new Project("ProjectPilot"); project.ProjectRegistry = projectRegistry; projectRegistry.Expect(r => r.GetProject("ProjectPilot")).Return(project).Repeat.Any(); project = new Project("Headless"); ITrigger headlessTrigger = MockRepository.GenerateStub <ITrigger>(); headlessTrigger.Stub(t => t.IsTriggered()).Callback(() => triggerCounter++ == 0).Return(true).Repeat.Any(); project.Triggers.Add(headlessTrigger); project.ProjectRegistry = projectRegistry; projectRegistry.Expect(r => r.GetProject("Headless")).Return(project).Repeat.Any(); project = new Project("Flubu"); project.ProjectRegistry = projectRegistry; projectRegistry.Expect(r => r.GetProject("Flubu")).Return(project).Repeat.Any(); }