Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }