public static bool shouldSpeak(BuildTransition t, bool successSetting, bool failureSetting) { bool shouldSpeakSuccess = successSetting && buildIsGood(t); bool shouldSpeakFailure = failureSetting && buildIsBad(t); return(shouldSpeakSuccess || shouldSpeakFailure); }
private void CheckForSuccessfulBuild(BuildTransition transition) { if (transition == BuildTransition.Fixed || transition == BuildTransition.StillSuccessful) { buildDurationTracker.OnSuccessfulBuild(); } }
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)); }
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); }
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."); }
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."); }
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; } } } }
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; }
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; }
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)); } }
private string ChooseSoundFile(BuildTransition transition) { return((string)soundFileLookup[transition]); }
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; }
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 BuildOccurredEventArgs(ProjectStatus newProjectStatus, BuildTransition transition) { _projectStatus = newProjectStatus; _transition = transition; }
public MonitorBuildOccurredEventArgs(IProjectMonitor projectMonitor, BuildTransition buildTransition) { ProjectMonitor = projectMonitor; BuildTransition = buildTransition; }
private CaptionAndMessage GetCaptionAndMessageForBuildTransition(BuildTransition buildTransition) { return (CaptionAndMessage) messages[buildTransition]; }