Esempio n. 1
0
        protected override void Given()
        {
            base.Given();
            eventCount = 0;

            SourceRepoDriver.GetLatestRevision().Returns(new RevisionInfo { Revision = "qwe" });
            WorkingAreaGovernor.AllocateWorkingArea().Returns("1", "2");

            Pipeline.When(
                worker => worker.Process(Arg.Is<SourceDrop>(drop => drop.SourceDropLocation == "1"))).Do(
                    info => { throw new ApplicationException(); });
            Pipeline.When(
                worker => worker.Process(Arg.Is<SourceDrop>(drop => drop.SourceDropLocation == "2"))).Do(
                    callInfo =>
                        {
                            var terminalId = Guid.NewGuid();
                            Pipeline.OnBuildStarted +=
                                Raise.Event<Pipeline.BuildStartedDelegate>(new PipelineStatus());
                            Pipeline.OnBuildUpdated +=
                                Raise.Event<Action<int, Guid, TaskInfo.TaskStatus>>(0, terminalId, TaskInfo.TaskStatus.Started);
                            Pipeline.OnBuildEnded +=
                                Raise.Event<Action<BuildTotalEndStatus>>(BuildTotalEndStatus.Success);
                            Pipeline.OnTerminalUpdate +=
                                Raise.Event<Action<TerminalUpdateInfo>>(new TerminalUpdateInfo(0, "", 0, terminalId));
                        });

            Worker = new Worker(Pipeline, WorkingAreaGovernor);
            Worker.OnBuildStarted += delegate { eventCount++; };
            Worker.OnBuildEnded += delegate { eventCount++; };
            Worker.OnBuildUpdated += delegate { eventCount++; };
            Worker.OnTerminalUpdates += delegate { eventCount++; };

            try
            {
                Worker.ExecutePipelineForRevision(SourceRepoDriver, "");
            }
            catch (ApplicationException)
            {
            }
        }