public void FakeRemoteExecutorCanUseCommunicationFrameworkSubsitutingParameterTest() { var testMethod = new Func<IBluepathCommunicationFramework, int, Guid>((bluepath, a) => bluepath.ProcessEid); testMethod.Method.IsStatic.ShouldBe(true); var executor = new RemoteExecutor(); executor.Setup(new FakeRemoteExecutorService(), null); executor.Initialize(testMethod); var eid = executor.Eid; executor.Execute(new object[] { null, 1 }); executor.Join(); var result = executor.GetResult(); result.ShouldBe(eid); Assert.IsTrue((Guid)result != Guid.Empty); }
public void FakeRemoteExecutorJoinTest() { const int DelayMilliseconds = 50; var testMethod = new Func<int, int, int, int>((a, b, delay) => { Thread.Sleep(delay); return a + b; }); testMethod.Method.IsStatic.ShouldBe(true); var executor = new RemoteExecutor(); executor.Setup(new FakeRemoteExecutorService(), null); executor.Initialize(testMethod); executor.ExecutorState.ShouldBe(ExecutorState.NotStarted); executor.Execute(new object[] { 1, 2, DelayMilliseconds }); executor.ExecutorState.ShouldBe(ExecutorState.Running); executor.Join(); executor.ExecutorState.ShouldBe(ExecutorState.Finished); var result = executor.GetResult(); result.ShouldBe(3); // (1 + 2) executor.ElapsedTime.Value.ShouldBeGreaterThanOrEqualTo(TimeSpan.FromMilliseconds(DelayMilliseconds)); }