UnitTests.StreamingTests.SubscriptionMultiplicityTestRunner.ResubscriptionAfterDeactivationTest C# (CSharp) Method

ResubscriptionAfterDeactivationTest() public method

public ResubscriptionAfterDeactivationTest ( System.Guid streamGuid, string streamNamespace ) : System.Threading.Tasks.Task
streamGuid System.Guid
streamNamespace string
return System.Threading.Tasks.Task
        public async Task ResubscriptionAfterDeactivationTest(Guid streamGuid, string streamNamespace)
        {
            // get producer and consumer
            var producer = GrainClient.GrainFactory.GetGrain<ISampleStreaming_ProducerGrain>(Guid.NewGuid());
            var consumer = GrainClient.GrainFactory.GetGrain<IMultipleSubscriptionConsumerGrain>(Guid.NewGuid());

            await producer.BecomeProducer(streamGuid, streamNamespace, streamProviderName);

            // setup one subscription and send messsages
            StreamSubscriptionHandle<int> firstSubscriptionHandle = await consumer.BecomeConsumer(streamGuid, streamNamespace, streamProviderName);

            await producer.StartPeriodicProducing();
            await Task.Delay(TimeSpan.FromMilliseconds(1000));
            await producer.StopPeriodicProducing();

            await TestingUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 1, lastTry), Timeout);

            // Deactivate grain
            await consumer.Deactivate();

            // make sure grain has time to deactivate.
            await Task.Delay(TimeSpan.FromMilliseconds(100));

            // clear producer counts
            await producer.ClearNumberProduced();

            // Resume
            StreamSubscriptionHandle<int> resumeHandle = await consumer.Resume(firstSubscriptionHandle);

            Assert.AreEqual(firstSubscriptionHandle, resumeHandle, "Handle matches");

            await producer.StartPeriodicProducing();
            await Task.Delay(TimeSpan.FromMilliseconds(1000));
            await producer.StopPeriodicProducing();

            await TestingUtils.WaitUntilAsync(lastTry => CheckCounters(producer, consumer, 1, lastTry), Timeout);

            // remove subscription
            await consumer.StopConsuming(resumeHandle);
        }

Usage Example

示例#1
0
 public async Task SMSResubscriptionAfterDeactivationTest()
 {
     _fixture.Logger.LogInformation("************************ ResubscriptionAfterDeactivationTest *********************************");
     await _runner.ResubscriptionAfterDeactivationTest(Guid.NewGuid(), StreamNamespace);
 }
All Usage Examples Of UnitTests.StreamingTests.SubscriptionMultiplicityTestRunner::ResubscriptionAfterDeactivationTest