예제 #1
0
        public void BuildCompletedDuringPollIntervalIfLastBuildDateChanged()
        {
            ProjectStatus        lastProjectStatus    = ProjectStatusFixture.New(IntegrationStatus.Success, new DateTime(2007, 1, 1));
            ProjectStatus        newProjectStatus     = ProjectStatusFixture.New(IntegrationStatus.Success, new DateTime(2007, 1, 2));
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(lastProjectStatus, newProjectStatus);

            Assert.IsTrue(pollIntervalReporter.IsAnotherBuildComplete);
        }
예제 #2
0
        public void LatestBuildWasSuccessfulIfNewProjectStatusIsSuccess()
        {
            ProjectStatus        lastProjectStatus    = ProjectStatusFixture.New(IntegrationStatus.Failure, new DateTime(2007, 1, 1));
            ProjectStatus        newProjectStatus     = ProjectStatusFixture.New(IntegrationStatus.Success, new DateTime(2007, 1, 2));
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(lastProjectStatus, newProjectStatus);

            Assert.IsTrue(pollIntervalReporter.WasLatestBuildSuccessful);
        }
예제 #3
0
        public void SuccessThenFailureMeansBuildIsBroken()
        {
            ProjectStatus        lastProjectStatus    = ProjectStatusFixture.New("last success", IntegrationStatus.Success);
            ProjectStatus        newProjectStatus     = ProjectStatusFixture.New("new failed", IntegrationStatus.Failure);
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(lastProjectStatus, newProjectStatus);

            Assert.AreEqual(BuildTransition.Broken, pollIntervalReporter.BuildTransition);
        }
예제 #4
0
        public void FailureThenSuccessMeansBuildIsFixed()
        {
            ProjectStatus        lastProjectStatus    = ProjectStatusFixture.New("last failed", IntegrationStatus.Failure);
            ProjectStatus        newProjectStatus     = ProjectStatusFixture.New("new success", IntegrationStatus.Success);
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(lastProjectStatus, newProjectStatus);

            Assert.AreEqual(BuildTransition.Fixed, pollIntervalReporter.BuildTransition);
        }
예제 #5
0
        public void TwoFailuresMeansBuildIsStillFailing()
        {
            ProjectStatus        lastProjectStatus    = ProjectStatusFixture.New("last failed", IntegrationStatus.Failure);
            ProjectStatus        newProjectStatus     = ProjectStatusFixture.New("new failed", IntegrationStatus.Failure);
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(lastProjectStatus, newProjectStatus);

            Assert.AreEqual(BuildTransition.StillFailing, pollIntervalReporter.BuildTransition);
        }
예제 #6
0
        public void TwoSuccessesMeansBuildIsStillSuccessful()
        {
            ProjectStatus        lastProjectStatus    = ProjectStatusFixture.New("last successful", IntegrationStatus.Success);
            ProjectStatus        newProjectStatus     = ProjectStatusFixture.New("new successful", IntegrationStatus.Success);
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(lastProjectStatus, newProjectStatus);

            Assert.AreEqual(BuildTransition.StillSuccessful, pollIntervalReporter.BuildTransition);
        }
예제 #7
0
        public void CallingLatestStatusMessageWhenThereAreNoneIsSafe()
        {
            ProjectStatus newProjectStatus = ProjectStatusFixture.New("test project");

            newProjectStatus.Messages = new Message[] {};
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(newProjectStatus, newProjectStatus);

            Assert.AreEqual(new Message("").ToString(), pollIntervalReporter.AllStatusMessages.ToString());
        }
예제 #8
0
        public void BuildStartedIfStatusChangedToBuilding()
        {
            ProjectStatus oldProjectStatus = ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Sleeping);
            ProjectStatus newProjectStatus = ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Building);

            bool result = new PollIntervalReporter(oldProjectStatus, newProjectStatus).HasNewBuildStarted;

            Assert.IsTrue(result);
        }
예제 #9
0
        public void BuildStartedIfLastBuildDateHasChangedAndStatusRemainedBuilding()
        {
            ProjectStatus oldProjectStatus =
                ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Building, new DateTime(2007, 1, 1));
            ProjectStatus newProjectStatus =
                ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Building, new DateTime(2007, 1, 2));

            bool result = new PollIntervalReporter(oldProjectStatus, newProjectStatus).HasNewBuildStarted;

            Assert.IsTrue(result);
        }
예제 #10
0
        public void NoBuildIfLastBuildDateIsSameAndStatusIsSame()
        {
            DateTime lastBuildDate = new DateTime(2007, 1, 1);

            ProjectStatus oldProjectStatus =
                ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Building, lastBuildDate);
            ProjectStatus newProjectStatus =
                ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Building, lastBuildDate);
            bool result = new PollIntervalReporter(oldProjectStatus, newProjectStatus).HasNewBuildStarted;

            Assert.IsFalse(result);

            oldProjectStatus = ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Sleeping, lastBuildDate);
            newProjectStatus = ProjectStatusFixture.New(IntegrationStatus.Success, ProjectActivity.Sleeping, lastBuildDate);
            result           = new PollIntervalReporter(oldProjectStatus, newProjectStatus).HasNewBuildStarted;
            Assert.IsFalse(result);
        }
예제 #11
0
        public void AllStatusMessagesReturnsMustReturnThemAll()
        {
            Message latestMessage = new Message("latest message");
            Message firstMessage  = new Message("message");


            ProjectStatus oldProjectStatus = ProjectStatusFixture.New("test project");

            oldProjectStatus.Messages = new Message[] {};
            ProjectStatus newProjectStatus = ProjectStatusFixture.New("test project");

            newProjectStatus.Messages = new Message[] { firstMessage, latestMessage };
            PollIntervalReporter pollIntervalReporter = new PollIntervalReporter(newProjectStatus, newProjectStatus);

            System.Text.StringBuilder expected = new System.Text.StringBuilder();
            expected.AppendLine(firstMessage.Text);
            expected.Append(latestMessage.Text);


            Assert.AreEqual(new Message(expected.ToString()), pollIntervalReporter.AllStatusMessages);
        }