Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }