コード例 #1
0
        public async Task should_be_invoke_chain_workers()
        {
            var result = await Chain.RunAsync();

            DispatcherToken.WaitCompleted();

            MockActionInvoker.Verify(p => p.Invoke(It.IsAny <CancellationToken>()), Times.Exactly(2));
        }
コード例 #2
0
        public void should_be_invoke_sync_success()
        {
            var result = Chain.RunSync();

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Results);
            Assert.IsTrue(result.Results.All(p => !p.IsError));

            DispatcherToken.WaitCompleted();
        }
コード例 #3
0
        public async Task should_be_invoke_async_success()
        {
            var result = await Chain.RunAsync();

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Results);
            Assert.IsTrue(result.Results.All(p => !p.IsError));
            Assert.IsTrue(result.Results.All(p => p.Result != null));

            DispatcherToken.WaitCompleted();
        }
コード例 #4
0
        public void should_be_invoke_sync_item_error()
        {
            var result = Chain.RunSync();

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Results);
            Assert.NotNull(result.Results.Single(p => p.IsError && p.Error != null));
            Assert.IsTrue(result.Results.Any(p => !p.IsError));

            DispatcherToken.WaitCompleted();
        }
コード例 #5
0
        public void Initalize()
        {
            MockActionInvoker.Reset();
            MockWorkerHandler.Reset();

            DispatcherToken = Factory.Start(new ActionDispatcherSettings
            {
                Timeout = TimeSpan.FromSeconds(0.1)
            });

            DispatcherToken.Post(t => Task.Delay(10000, t));
        }
コード例 #6
0
        public void Initalize()
        {
            DispatcherToken = Factory.Start(new ActionDispatcherSettings
            {
                Timeout = TimeSpan.FromSeconds(1000)
            });

            MockActionInvoker.Invocations.Clear();

            Chain = DispatcherToken.Chain()
                    .Post(MockActionInvoker.Object)
                    .Post(MockActionInvoker.Object);
        }
コード例 #7
0
        public void Initalize()
        {
            MockWorkerHandler.Invocations.Clear();
            MockActionInvoker.Invocations.Clear();

            DispatcherToken = Factory.Start(new ActionDispatcherSettings
            {
                Timeout = TimeSpan.FromSeconds(1)
            });

            DispatcherToken.Post(MockActionInvoker.Object);
            DispatcherToken.Post(p => throw new ArgumentException());
            DispatcherToken.Post(MockActionInvoker.Object);
        }
コード例 #8
0
        public void Initalize()
        {
            DispatcherToken = Factory.Start(new ActionDispatcherSettings
            {
                Timeout = TimeSpan.FromSeconds(1000)
            });

            MockActionInvoker.Invocations.Clear();

            MockActionInvokerError.Setup(p => p.Invoke(It.IsAny <CancellationToken>())).ThrowsAsync(new ArgumentException("test"));

            Chain = DispatcherToken.Chain()
                    .Post(MockActionInvoker.Object)
                    .Post(MockActionInvoker.Object)
                    .Post(MockActionInvokerError.Object);
        }
コード例 #9
0
        public void should_be_invoke_batch_count_success(int count)
        {
            BatchActionInvoker.Invocations.Clear();

            Enumerable.Range(0, count).ToList().ForEach(p =>
            {
                var data = new SomeBatchData();
                _batchToken.Send(data);
            });

            _batchToken.Stop();
            _batchToken.Dispose();

            DispatcherToken.WaitCompleted();

            BatchActionInvoker.Verify(p => p.Invoke(It.Is <SomeBatchData[]>(x => x.Length == count), It.IsAny <CancellationToken>()), Times.Once);
        }
コード例 #10
0
        public void Initalize()
        {
            Callback = (WorkerCompletedData p) => MockCompleted.Object.Invoke(p, CancellationToken.None);

            MockCompleted.Setup(p => p.Invoke(It.IsAny <WorkerCompletedData>(), It.IsAny <CancellationToken>()));

            DispatcherToken = Factory.Start(new ActionDispatcherSettings
            {
                Timeout = TimeSpan.FromSeconds(1000)
            });

            MockActionInvoker.Invocations.Clear();
            MockCompleted.Invocations.Clear();

            DispatcherToken.Chain()
            .Post(MockActionInvoker.Object)
            .Post(MockActionInvoker.Object)
            .Run(Callback);
        }
コード例 #11
0
        public void execute_batch_count_exceeded()
        {
            var countExceeded = MAX_COUNT_ITEMS + 1;

            BatchActionInvoker.Invocations.Clear();

            Enumerable.Range(0, countExceeded).ToList().ForEach(p =>
            {
                var data = new SomeBatchData();
                _batchToken.Send(data);
            });

            _batchToken.Stop();
            _batchToken.Dispose();

            DispatcherToken.WaitCompleted();

            BatchActionInvoker.Verify(p => p.Invoke(It.Is <SomeBatchData[]>(x => x.Length == MAX_COUNT_ITEMS), It.IsAny <CancellationToken>()), Times.Once);
        }
コード例 #12
0
        public void should_be_invoke_callback()
        {
            DispatcherToken.WaitCompleted();

            MockCompleted.Verify(p => p.Invoke(It.IsAny <WorkerCompletedData>(), It.IsAny <CancellationToken>()), Times.Once);
        }
コード例 #13
0
        public void should_be_invoke_chain_workers()
        {
            DispatcherToken.WaitCompleted();

            MockActionInvoker.Verify(p => p.Invoke(It.IsAny <CancellationToken>()), Times.Exactly(8));
        }
コード例 #14
0
        public void should_be_from_all_worker_one_error()
        {
            DispatcherToken.WaitCompleted();

            MockWorkerHandler.Verify(p => p.HandleError(It.IsAny <Exception>(), It.IsAny <decimal>(), It.IsAny <bool>()), Times.Once);
        }
コード例 #15
0
 public void should_be_data_fault_execute()
 {
     Assert.Throws <ArgumentNullException>(() => DispatcherToken.Post(default(IActionInvoker <object>), default(object)));
 }
コード例 #16
0
 public void should_be_fn_fault_execute()
 {
     Assert.Throws <ArgumentNullException>(() => DispatcherToken.Post(default(Func <CancellationToken, Task>)));
 }
コード例 #17
0
 public void Initalize()
 {
     DispatcherToken.Post(MockActionDataInvoker.Object, ExpectData);
 }
コード例 #18
0
        public void should_action_execute()
        {
            DispatcherToken.WaitCompleted();

            MockActionDataInvoker.Verify(p => p.Invoke(It.Is <string>(s => s == ExpectData), It.IsAny <CancellationToken>()), Times.Exactly(1));
        }
コード例 #19
0
 public void Initalize()
 {
     DispatcherToken.Post(MockActionInvoker.Object);
     DispatcherToken.Post(MockActionInvoker.Object);
     DispatcherToken.Post(p => Task.Delay(100, p));
 }
コード例 #20
0
        public void should_be_two_worker_from_all_success()
        {
            DispatcherToken.WaitCompleted();

            MockActionInvoker.Verify(p => p.Invoke(It.IsAny <CancellationToken>()), Times.Exactly(2));
        }
コード例 #21
0
        public void should_be_cancelled_work()
        {
            DispatcherToken.WaitCompleted();

            MockWorkerHandler.Verify(p => p.HandleError(null, It.IsAny <decimal>(), true), Times.Once);
        }
コード例 #22
0
        public void should_be_two_action_execute()
        {
            DispatcherToken.WaitCompleted();

            MockActionInvoker.Verify(p => p.Invoke(It.IsAny <CancellationToken>()), Times.Exactly(2));
        }