Skip to content

Commit bde5666

Browse files
author
Jos Hickson
authored
Merge pull request #3 from wintoncode/master
Pull latest from wintoncode
2 parents c237904 + 010ab5c commit bde5666

1 file changed

Lines changed: 10 additions & 14 deletions

File tree

Winton.Extensions.Threading.Actor.Tests.Unit/Internal/ActorWorkSchedulerTests.cs

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@ public enum WorkType
2222
Async
2323
}
2424

25-
private readonly IActor _actor;
26-
private readonly IActorWorkScheduler _scheduler;
25+
private IActor _actor;
26+
private IActorWorkScheduler _scheduler;
2727

2828
public ActorWorkSchedulerTests()
2929
{
30-
_actor = Mock.Of<IActor>();
31-
_scheduler = new ActorWorkScheduler(_actor, new ActorTaskFactory());
30+
var actorTaskFactory = new ActorTaskFactory();
31+
_actor = new Actor(actorTaskFactory);
32+
_actor.Start();
33+
_scheduler = new ActorWorkScheduler(_actor, actorTaskFactory);
3234
}
3335

3436
[Theory]
3537
[InlineData(WorkType.Async)]
3638
[InlineData(WorkType.Sync)]
3739
public void ShouldBeAbleToScheduleWorkToRepeatAtAFixedInterval(WorkType workType)
3840
{
39-
SetUpActor(workType);
40-
4141
var expectedInterval = TimeSpan.FromMilliseconds(100);
4242
var times = new List<DateTime>();
4343
var sampleSize = 5;
@@ -86,7 +86,6 @@ public void ShouldBeAbleToScheduleWorkToRepeatAtAFixedInterval(WorkType workType
8686
[InlineData(WorkType.Sync)]
8787
public void ShouldBeAbleToScheduleWorkToStartImmediatelyBeforeRepeatingAtIntervals(WorkType workType)
8888
{
89-
SetUpActor(workType);
9089
var expectedInterval = TimeSpan.FromMilliseconds(100);
9190
var scheduleTime = DateTime.UtcNow;
9291
DateTime? firstWork = null;
@@ -128,7 +127,11 @@ public void ShouldBeAbleToScheduleWorkToStartImmediatelyBeforeRepeatingAtInterva
128127
[InlineData(WorkType.Sync)]
129128
public void ShouldBeAbleToSpecifyThatWorkIsLongRunning(WorkType workType)
130129
{
130+
var actorTaskFactory = new ActorTaskFactory();
131+
_actor = Mock.Of<IActor>();
131132
SetUpActor(workType);
133+
_actor.Start();
134+
_scheduler = new ActorWorkScheduler(_actor, actorTaskFactory);
132135

133136
switch (workType)
134137
{
@@ -156,8 +159,6 @@ public void ShouldBeAbleToSpecifyThatWorkIsLongRunning(WorkType workType)
156159
[InlineData(WorkType.Sync)]
157160
public void ShouldBeAbleToCancelSchedule(WorkType workType)
158161
{
159-
SetUpActor(workType);
160-
161162
var output = new List<string>();
162163
var interval = TimeSpan.FromMilliseconds(100);
163164
var task = default(Task);
@@ -196,9 +197,6 @@ public void ShouldBeAbleToCancelSchedule(WorkType workType)
196197
[InlineData(WorkType.Sync, WorkType.Sync)]
197198
public void ASecondCallToScheduleShouldCancelTheWorkPreviouslyScheduled(WorkType workType1, WorkType workType2)
198199
{
199-
SetUpActor(workType1);
200-
SetUpActor(workType2);
201-
202200
var output = new List<string>();
203201
var interval = TimeSpan.FromMilliseconds(100);
204202
var task1 = default(Task);
@@ -266,7 +264,6 @@ public void ASecondCallToScheduleShouldCancelTheWorkPreviouslyScheduled(WorkType
266264
[InlineData(WorkType.Sync)]
267265
public void ShouldBeAbleToConfigureScheduleToRescheduleInCaseOfUnexpectedErrorButNotCancellation(WorkType workType)
268266
{
269-
SetUpActor(workType);
270267
var interval = TimeSpan.FromMilliseconds(100);
271268
var times = new List<DateTime>();
272269
var emittedException = default(Exception);
@@ -316,7 +313,6 @@ public void ShouldBeAbleToConfigureScheduleToRescheduleInCaseOfUnexpectedErrorBu
316313
[InlineData(WorkType.Sync)]
317314
public void WhenAnUnhandledErrorOccursInTheWorkTheScheduleShouldStopAndEmitTheError(WorkType workType)
318315
{
319-
SetUpActor(workType);
320316
var interval = TimeSpan.FromMilliseconds(100);
321317
var times = new List<DateTime>();
322318
var task = default(Task);

0 commit comments

Comments
 (0)