|
From: Owen R. <exo...@us...> - 2005-06-25 15:05:07
|
Update of /cvsroot/ccnet/ccnet/project/UnitTests/Core/Triggers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29665/project/UnitTests/Core/Triggers Modified Files: FilterTriggerTest.cs IntervalTriggerTest.cs Log Message: CCNET-344 : FilterTrigger can now handle timeranges that span over midnight -- patch contributed by Jens Hembo CCNET-462 : adding MBUnit stylesheets -- contributed by Andrew Stopford fixing namespaces for pvcs tests adding TimeOut.config example config Index: IntervalTriggerTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/Triggers/IntervalTriggerTest.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** IntervalTriggerTest.cs 15 Feb 2005 00:19:13 -0000 1.4 --- IntervalTriggerTest.cs 25 Jun 2005 15:04:27 -0000 1.5 *************** *** 12,16 **** public class IntervalTriggerTest : CustomAssertion { ! private IMock _mockDateTime; private IntervalTrigger trigger; private DateTime initialDateTimeNow; --- 12,16 ---- public class IntervalTriggerTest : CustomAssertion { ! private IMock mockDateTime; private IntervalTrigger trigger; private DateTime initialDateTimeNow; *************** *** 19,31 **** public void Setup() { ! _mockDateTime = new DynamicMock(typeof(DateTimeProvider)); initialDateTimeNow = new DateTime(2002, 1, 2, 3, 0, 0, 0); ! _mockDateTime.SetupResult("Now", this.initialDateTimeNow); ! trigger = new IntervalTrigger((DateTimeProvider) _mockDateTime.MockInstance); } public void VerifyAll() { ! _mockDateTime.Verify(); } --- 19,31 ---- public void Setup() { ! mockDateTime = new DynamicMock(typeof (DateTimeProvider)); initialDateTimeNow = new DateTime(2002, 1, 2, 3, 0, 0, 0); ! mockDateTime.SetupResult("Now", this.initialDateTimeNow); ! trigger = new IntervalTrigger((DateTimeProvider) mockDateTime.MockInstance); } public void VerifyAll() { ! mockDateTime.Verify(); } *************** *** 34,38 **** { string xml = string.Format(@"<intervalTrigger seconds=""1"" buildCondition=""ForceBuild"" />"); ! trigger = (IntervalTrigger)NetReflector.Read(xml); Assert.AreEqual(1, trigger.IntervalSeconds); Assert.AreEqual(BuildCondition.ForceBuild, trigger.BuildCondition); --- 34,38 ---- { string xml = string.Format(@"<intervalTrigger seconds=""1"" buildCondition=""ForceBuild"" />"); ! trigger = (IntervalTrigger) NetReflector.Read(xml); Assert.AreEqual(1, trigger.IntervalSeconds); Assert.AreEqual(BuildCondition.ForceBuild, trigger.BuildCondition); *************** *** 43,47 **** { string xml = string.Format(@"<intervalTrigger />"); ! trigger = (IntervalTrigger)NetReflector.Read(xml); Assert.AreEqual(IntervalTrigger.DefaultIntervalSeconds, trigger.IntervalSeconds); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.BuildCondition); --- 43,47 ---- { string xml = string.Format(@"<intervalTrigger />"); ! trigger = (IntervalTrigger) NetReflector.Read(xml); Assert.AreEqual(IntervalTrigger.DefaultIntervalSeconds, trigger.IntervalSeconds); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.BuildCondition); *************** *** 54,72 **** trigger.BuildCondition = BuildCondition.IfModificationExists; ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); trigger.IntegrationCompleted(); ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 5, 0)); // 5 seconds later Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 9, 0)); // 4 seconds later // still before 1sec Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! // sleep beyond the 1sec mark ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 14, 0)); // 5 seconds later ! Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); trigger.IntegrationCompleted(); --- 54,72 ---- trigger.BuildCondition = BuildCondition.IfModificationExists; ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); trigger.IntegrationCompleted(); ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 5, 0)); // 5 seconds later Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 9, 0)); // 4 seconds later // still before 1sec Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! // sleep beyond the 1sec mark ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 14, 0)); // 5 seconds later ! Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); trigger.IntegrationCompleted(); *************** *** 81,89 **** trigger.BuildCondition = BuildCondition.IfModificationExists; ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); trigger.IntegrationCompleted(); ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 5, 0)); // 5 seconds later Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); --- 81,89 ---- trigger.BuildCondition = BuildCondition.IfModificationExists; ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); trigger.IntegrationCompleted(); ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 5, 0)); // 5 seconds later Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); *************** *** 101,108 **** trigger.BuildCondition = BuildCondition.IfModificationExists; ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 550)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); --- 101,108 ---- trigger.BuildCondition = BuildCondition.IfModificationExists; ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 550)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); *************** *** 110,114 **** Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 1, 50)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); --- 110,114 ---- Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 1, 50)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); *************** *** 116,120 **** Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 1, 550)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); --- 116,120 ---- Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 1, 550)); Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); *************** *** 127,131 **** trigger.IntervalSeconds = 10; trigger.BuildCondition = BuildCondition.ForceBuild; ! _mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.ForceBuild, trigger.ShouldRunIntegration()); VerifyAll(); --- 127,131 ---- trigger.IntervalSeconds = 10; trigger.BuildCondition = BuildCondition.ForceBuild; ! mockDateTime.SetupResult("Now", new DateTime(2004, 1, 1, 1, 0, 0, 0)); Assert.AreEqual(BuildCondition.ForceBuild, trigger.ShouldRunIntegration()); VerifyAll(); *************** *** 144,151 **** trigger.IntervalSeconds = 10; DateTime stubNow = new DateTime(2004, 1, 1, 1, 0, 0, 0); ! _mockDateTime.SetupResult("Now", stubNow); trigger.IntegrationCompleted(); Assert.AreEqual(stubNow.AddSeconds(10), trigger.NextBuild); } } ! } --- 144,151 ---- trigger.IntervalSeconds = 10; DateTime stubNow = new DateTime(2004, 1, 1, 1, 0, 0, 0); ! mockDateTime.SetupResult("Now", stubNow); trigger.IntegrationCompleted(); Assert.AreEqual(stubNow.AddSeconds(10), trigger.NextBuild); } } ! } \ No newline at end of file Index: FilterTriggerTest.cs =================================================================== RCS file: /cvsroot/ccnet/ccnet/project/UnitTests/Core/Triggers/FilterTriggerTest.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** FilterTriggerTest.cs 10 May 2005 10:50:25 -0000 1.4 --- FilterTriggerTest.cs 25 Jun 2005 15:04:26 -0000 1.5 *************** *** 66,69 **** --- 66,105 ---- [Test] + public void ShouldNotInvokeOverMidnightTriggerWhenCurrentTimeIsBeforeMidnight() + { + trigger.StartTime = "23:00"; + trigger.EndTime = "7:00"; + + mockTrigger.ExpectNoCall("ShouldRunIntegration"); + mockDateTime.ExpectAndReturn("Now", new DateTime(2004, 12, 1, 23, 30, 0, 0)); + + Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); + } + + [Test] + public void ShouldNotInvokeOverMidnightTriggerWhenCurrentTimeIsAfterMidnight() + { + trigger.StartTime = "23:00"; + trigger.EndTime = "7:00"; + + mockTrigger.ExpectNoCall("ShouldRunIntegration"); + mockDateTime.ExpectAndReturn("Now", new DateTime(2004, 12, 1, 00, 30, 0, 0)); + + Assert.AreEqual(BuildCondition.NoBuild, trigger.ShouldRunIntegration()); + } + + [Test] + public void ShouldInvokeOverMidnightTriggerWhenCurrentTimeIsOutsideOfRange() + { + trigger.StartTime = "23:00"; + trigger.EndTime = "7:00"; + + mockTrigger.ExpectAndReturn("ShouldRunIntegration", BuildCondition.IfModificationExists); + mockDateTime.ExpectAndReturn("Now", new DateTime(2004, 12, 1, 11, 30, 0, 0)); + + Assert.AreEqual(BuildCondition.IfModificationExists, trigger.ShouldRunIntegration()); + } + + [Test] public void ShouldNotInvokeDecoratedTriggerWhenTimeIsEqualToStartTimeOrEndTime() { *************** *** 148,151 **** --- 184,189 ---- Assert.AreEqual(BuildCondition.NoBuild, trigger.BuildCondition); } + + } } \ No newline at end of file |