public async Task RunAsyncWithMessage()
        {
            var state     = Substitute.For <IReliableStateManager>();
            var queueName = Guid.NewGuid().ToString();
            var queue     = Substitute.For <IReliableQueue <object> >();
            var msg       = new ConditionalValue <object>(false, null);

            var tx = Substitute.For <ITransaction>();

            //state.GetOrAddAsync<IReliableQueue<object>>(queueName).Returns(queue);
            //state.CreateTransaction().Returns(tx);
            queue.TryDequeueAsync(tx).Returns(msg);
            var processor = Substitute.For <IProcessor <object> >();

            var ds = new FakeDequeueService(state, queueName, processor);

            var ct = new CancellationTokenSource();

            using (var t = new Timer(new TimerCallback((object obj) => { ct.Cancel(); }), null, 3, Timeout.Infinite))
            {
                await ds.RunTest(ct.Token);
            }

            //await state.Received().GetOrAddAsync<IReliableQueue<object>>(queueName);
            //state.Received().CreateTransaction();
            await tx.Received(0).CommitAsync();

            await queue.Received().TryDequeueAsync(tx);

            await processor.Received(0).Process(Arg.Any <object>());

            await tx.Received(0).CommitAsync();

            Assert.Inconclusive();
        }
        public async Task RunAsyncCancelled()
        {
            var context   = Substitute.ForPartsOf <StatefulServiceContext>();
            var queueName = Guid.NewGuid().ToString();
            var processor = Substitute.For <IProcessor <object> >();
            var state     = Substitute.For <IReliableStateManager>();
            var ds        = new FakeDequeueService(state, queueName, processor);
            var token     = new CancellationToken(true);
            await ds.RunTest(token);

            await processor.Received(0).Process(Arg.Any <object>());

            //await context.Received(0).GetOrAddAsync<IReliableQueue<object>>(queueName);
            Assert.Inconclusive("Fix Code");
        }