From: V S. <sr...@us...> - 2004-05-31 10:22:36
|
Update of /cvsroot/ccnet/ccnet/project/CCTray/Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1500/project/CCTray/Test Modified Files: StatusMonitorTransitionChangeTest.cs Added Files: DefaultStatusIconLoaderTest.cs Log Message: Adding cctraytests into the build Refactoring some Icon loading CCTray now displays amber when building.... Index: StatusMonitorTransitionChangeTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/CCTray/Test/StatusMonitorTransitionChangeTest.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** StatusMonitorTransitionChangeTest.cs 30 May 2004 13:01:21 -0000 1.1 --- StatusMonitorTransitionChangeTest.cs 31 May 2004 10:22:25 -0000 1.2 *************** *** 1,14 **** using System; using NUnit.Framework; namespace ThoughtWorks.CruiseControl.CCTray { ! [TestFixture] ! public class StatusMonitorTransitionChangeTest { ! public StatusMonitorTransitionChangeTest() { } } } --- 1,63 ---- using System; + using NMock; + using NMock.Constraints; using NUnit.Framework; + using ThoughtWorks.CruiseControl.Remote; namespace ThoughtWorks.CruiseControl.CCTray { ! [NUnit.Framework.TestFixture] ! public class StatusMonitorTransitionChangeTest : Assertion { ! private Mock _remoteProxyMock; ! private StatusMonitor _monitor; ! private bool _isError; ! private bool _isPolled; ! [SetUp] ! public void Init() { + _isError = false; + _isPolled = false; + _remoteProxyMock = new DynamicMock(typeof(IRemoteCruiseProxyLoader)); + _monitor = new StatusMonitor((IRemoteCruiseProxyLoader) _remoteProxyMock.MockInstance); + } + [Test] + public void ShouldNotifyErrorListenersIfExceptionIsThrown() + { + _monitor.Error +=new ErrorEventHandler(OnError); + _remoteProxyMock.ExpectAndThrow("LoadProxy",new Exception("Test"),new IsAnything()); + _monitor.Poll(); + Assert(_isError); } + + [Test] + public void ShouldNotifyPollEventWhenPollingAndNotInvokeError() + { + _monitor.Polled +=new PolledEventHandler(OnPolled); + ProjectStatus status = new ProjectStatus(CruiseControlStatus.Running, IntegrationStatus.Success, ProjectActivity.Sleeping, "foo", "http://foo.bar", DateTime.Now, "Foo"); + Mock cruiseManagerMock = new DynamicMock(typeof(ICruiseManager)); + ProjectStatus[] statuses = new ProjectStatus[1]; + statuses [0]= status; + cruiseManagerMock.SetupResult("GetProjectStatus",statuses); + _monitor.Settings = new Settings(); + _monitor.Settings.ProjectName = "foo"; + _remoteProxyMock.SetupResult("LoadProxy", (ICruiseManager)cruiseManagerMock.MockInstance, typeof(Settings)); + _monitor.Poll(); + Assert(_isPolled); + Assert(!_isError); + } + + private void OnError(object sauce, ErrorEventArgs e) + { + _isError = true; + } + + private void OnPolled(object sauce, PolledEventArgs e) + { + _isPolled = true; + } + + } } --- NEW FILE: DefaultStatusIconLoaderTest.cs --- using System; using NUnit.Framework; using ThoughtWorks.CruiseControl.Remote; namespace ThoughtWorks.CruiseControl.CCTray { [TestFixture] public class DefaultStatusIconLoaderTest : Assertion { private DefaultStatusIconLoader _loader; private ProjectStatus _status; [SetUp] public void Init() { _status = new ProjectStatus(CruiseControlStatus.Unknown,IntegrationStatus.Unknown,ProjectActivity.Unknown,"foo","http://foo.com",DateTime.Now,""); _loader = new DefaultStatusIconLoader(); } [Test] public void ShouldShowNowBuildingIconWhenBuilding() { _status.Activity = ProjectActivity.Building; StatusIcon icon = _loader.LoadIcon(_status); AssertSame(StatusIcon.NOW_BUILDING, icon); } [Test] public void ShouldShowSuccessIconWhenBuiltSuccessfuly() { _status.Activity = ProjectActivity.Sleeping; _status.BuildStatus = IntegrationStatus.Success; StatusIcon icon = _loader.LoadIcon(_status); AssertSame(StatusIcon.SUCCESS, icon); } [Test] public void ShouldShowFailureIconWhenBuildFailed() { _status.Activity = ProjectActivity.Sleeping; _status.BuildStatus = IntegrationStatus.Failure; StatusIcon icon = _loader.LoadIcon(_status); AssertSame(StatusIcon.FAILURE, icon); } [Test] public void ShouldShowExceptionIconWhenBuildCCIsInErrorState() { _status.Activity = ProjectActivity.Sleeping; _status.BuildStatus = IntegrationStatus.Exception; StatusIcon icon = _loader.LoadIcon(_status); AssertSame(StatusIcon.EXCEPTION, icon); } [Test] public void ShouldShowUnknownIconWhenBuildCCIsInUnknownState() { StatusIcon icon = _loader.LoadIcon(_status); AssertSame(StatusIcon.UNKNOWN, icon); } [Test] public void ShouldShowFailureIconWhenBuildProjectActivityIsUnknownAndLastBuildWasFailure() { _status.Activity = ProjectActivity.Unknown; _status.BuildStatus = IntegrationStatus.Failure; StatusIcon icon = _loader.LoadIcon(_status); AssertSame(StatusIcon.FAILURE, icon); } } } |