Ejemplo n.º 1
0
        public static bool shouldSpeak(BuildTransition t, bool successSetting, bool failureSetting)
        {
            bool shouldSpeakSuccess = successSetting && buildIsGood(t);
            bool shouldSpeakFailure = failureSetting && buildIsBad(t);

            return(shouldSpeakSuccess || shouldSpeakFailure);
        }
Ejemplo n.º 2
0
 private void CheckForSuccessfulBuild(BuildTransition transition)
 {
     if (transition == BuildTransition.Fixed || transition == BuildTransition.StillSuccessful)
     {
         buildDurationTracker.OnSuccessfulBuild();
     }
 }
Ejemplo n.º 3
0
        public void Poll()
        {
            try
            {
                ProjectStatus newProjectStatus = cruiseProjectManager.ProjectStatus;
                if (lastProjectStatus != null && newProjectStatus != null)
                {
                    CheckForBuildStart(lastProjectStatus, newProjectStatus);

                    if (lastProjectStatus.LastBuildDate != newProjectStatus.LastBuildDate)
                    {
                        BuildTransition transition = CalculateBuildTransition(lastProjectStatus, newProjectStatus);

                        CheckForSuccessfulBuild(transition);
                        OnBuildOccurred(new MonitorBuildOccurredEventArgs(this, transition));
                    }
                }
                lastProjectStatus = newProjectStatus;
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception during poll: " + ex);
                lastProjectStatus = null;
                connectException  = ex;
            }

            OnPolled(new MonitorPolledEventArgs(this));
        }
Ejemplo n.º 4
0
        public static BuildTransitionAttribute GetBuildTransitionAttribute(BuildTransition transition)
        {
            FieldInfo fieldInfo = transition.GetType().GetField(transition.ToString());

            BuildTransitionAttribute[] attributes =
                (BuildTransitionAttribute[])fieldInfo.GetCustomAttributes(typeof(BuildTransitionAttribute), false);
            return((attributes.Length > 0) ? attributes[0] : null);
        }
Ejemplo n.º 5
0
        public string GetAudioFileLocation(BuildTransition transition)
        {
            switch (transition)
            {
            case BuildTransition.Broken:
                return(BrokenBuildSound.FileName);

            case BuildTransition.Fixed:
                return(FixedBuildSound.FileName);

            case BuildTransition.StillFailing:
                return(AnotherFailedBuildSound.FileName);

            case BuildTransition.StillSuccessful:
                return(AnotherSuccessfulBuildSound.FileName);
            }

            throw new Exception("Unsupported build transition.");
        }
Ejemplo n.º 6
0
        public string GetMessageForTransition(BuildTransition buildTransition)
        {
            switch (buildTransition)
            {
            case BuildTransition.StillSuccessful:
                return(SelectRandomString(AnotherSuccess));

            case BuildTransition.StillFailing:
                return(SelectRandomString(AnotherFailure));

            case BuildTransition.Broken:
                return(SelectRandomString(Broken));

            case BuildTransition.Fixed:
                return(SelectRandomString(Fixed));
            }

            throw new Exception("Unsupported build transition.");
        }
Ejemplo n.º 7
0
 private void PlayBuildAudio(BuildTransition transition)
 {
     if (settings.Sounds.ShouldPlaySoundForTransition(transition))
     {
         try
         {
             PlayAudioFile(settings.Sounds.GetAudioFileLocation(transition));
         }
         catch (Exception ex)
         {
             // only display the first exception with audio
             if (_audioException == null)
             {
                 MessageBox.Show(ex.Message, "Unable to initialise audio", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 _audioException = ex;
             }
         }
     }
 }
Ejemplo n.º 8
0
        public bool ShouldPlaySoundForTransition(BuildTransition transition)
        {
            switch (transition)
            {
            case BuildTransition.Broken:
                return(BrokenBuildSound.Play);

            case BuildTransition.Fixed:
                return(FixedBuildSound.Play);

            case BuildTransition.StillFailing:
                return(AnotherFailedBuildSound.Play);

            case BuildTransition.StillSuccessful:
                return(AnotherSuccessfulBuildSound.Play);
            }

            throw new Exception("Unsupported build transition.");
        }
        private void AssertTransition(
            IntegrationStatus initialIntegrationStatus,
            IntegrationStatus nextBuildIntegrationStatus,
            BuildTransition expectedBuildTransition)
        {
            // initial connection
            ProjectStatus status = CreateProjectStatus(initialIntegrationStatus, new DateTime(2004, 1, 1));

            mockProjectManager.SetupGet(_manager => _manager.ProjectName).Returns(PROJECT_NAME).Verifiable();
            mockServerMonitor.Setup(_monitor => _monitor.GetProjectStatus(PROJECT_NAME)).Returns(status).Verifiable();
            monitor.Poll();

            // then the build
            status = CreateProjectStatus(nextBuildIntegrationStatus, new DateTime(2004, 1, 2));
            mockProjectManager.SetupGet(_manager => _manager.ProjectName).Returns(PROJECT_NAME).Verifiable();
            mockServerMonitor.Setup(_monitor => _monitor.GetProjectStatus(PROJECT_NAME)).Returns(status).Verifiable();
            monitor.Poll();

            Assert.AreEqual(1, buildOccurredCount);
            Assert.AreEqual(expectedBuildTransition, lastBuildOccurredArgs.BuildTransition);

            buildOccurredCount = 0;
        }
Ejemplo n.º 10
0
        private void AssertTransition(
            IntegrationStatus initialIntegrationStatus,
            IntegrationStatus nextBuildIntegrationStatus,
            BuildTransition expectedBuildTransition)
        {
            // initial connection
            ProjectStatus status = CreateProjectStatus(initialIntegrationStatus, new DateTime(2004, 1, 1));

            mockProjectManager.ExpectAndReturn("ProjectName", PROJECT_NAME);
            mockServerMonitor.ExpectAndReturn("GetProjectStatus", status, PROJECT_NAME);
            monitor.Poll();

            // then the build
            status = CreateProjectStatus(nextBuildIntegrationStatus, new DateTime(2004, 1, 2));
            mockProjectManager.ExpectAndReturn("ProjectName", PROJECT_NAME);
            mockServerMonitor.ExpectAndReturn("GetProjectStatus", status, PROJECT_NAME);
            monitor.Poll();

            Assert.AreEqual(1, buildOccurredCount);
            Assert.AreEqual(expectedBuildTransition, lastBuildOccurredArgs.BuildTransition);

            buildOccurredCount = 0;
        }
Ejemplo n.º 11
0
        private void Poll()
        {
            Console.WriteLine("Polling on project " + this.name);
            try
            {
                ProjectStatus   latestProjectStatus = GetRemoteProjectStatus();
                bool            hasBuildOccurred    = HasBuildOccurred(latestProjectStatus);
                BuildTransition transition          = GetBuildTransition(latestProjectStatus);

                _currentProjectStatus = latestProjectStatus;
                OnPolled(this, new PolledEventArgs(latestProjectStatus));

                if (hasBuildOccurred)
                {
                    Console.WriteLine("OnBuildOccurred");
                    OnBuildOccurred(this, new BuildOccurredEventArgs(latestProjectStatus, transition));
                }
            }
            catch (Exception e)
            {
                OnError(this, new PollingErrorEventArgs(e, this));
            }
        }
Ejemplo n.º 12
0
 private string ChooseSoundFile(BuildTransition transition)
 {
     return((string)soundFileLookup[transition]);
 }
Ejemplo n.º 13
0
 private CaptionAndMessage GetCaptionAndMessageForBuildTransition(BuildTransition buildTransition)
 {
     return((CaptionAndMessage)messages[buildTransition]);
 }
 private string ChooseSoundFile(BuildTransition transition)
 {
     return (string) soundFileLookup[transition];
 }
		private static bool buildIsBad (BuildTransition t){
			return t.Equals(BuildTransition.Broken) || t.Equals(BuildTransition.StillFailing);
		}
		private static bool buildIsGood (BuildTransition t){
			return t.Equals(BuildTransition.Fixed) || t.Equals(BuildTransition.StillSuccessful);
		}
		public static bool shouldSpeak (BuildTransition t, bool successSetting, bool failureSetting) {
			bool shouldSpeakSuccess = successSetting && buildIsGood(t);
			bool shouldSpeakFailure = failureSetting && buildIsBad(t);
			return shouldSpeakSuccess || shouldSpeakFailure;
		}
Ejemplo n.º 18
0
 private static bool buildIsBad(BuildTransition t)
 {
     return(t.Equals(BuildTransition.Broken) || t.Equals(BuildTransition.StillFailing));
 }
Ejemplo n.º 19
0
 private static bool buildIsGood(BuildTransition t)
 {
     return(t.Equals(BuildTransition.Fixed) || t.Equals(BuildTransition.StillSuccessful));
 }
Ejemplo n.º 20
0
 public BuildOccurredEventArgs(ProjectStatus newProjectStatus, BuildTransition transition)
 {
     _projectStatus = newProjectStatus;
     _transition    = transition;
 }
Ejemplo n.º 21
0
 private void CheckForSuccessfulBuild(BuildTransition transition)
 {
     if (transition == BuildTransition.Fixed || transition == BuildTransition.StillSuccessful)
     {
         buildDurationTracker.OnSuccessfulBuild();
     }
 }
 public MonitorBuildOccurredEventArgs(IProjectMonitor projectMonitor, BuildTransition buildTransition)
 {
     ProjectMonitor  = projectMonitor;
     BuildTransition = buildTransition;
 }
Ejemplo n.º 23
0
		private CaptionAndMessage GetCaptionAndMessageForBuildTransition(BuildTransition buildTransition)
		{
			return (CaptionAndMessage) messages[buildTransition];
		}
		public MonitorBuildOccurredEventArgs(IProjectMonitor projectMonitor, BuildTransition buildTransition)
		{
			ProjectMonitor = projectMonitor;
			BuildTransition = buildTransition;
		}