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"); }