Example #1
0
        public async Task RedisEventScenarioTest()
        {
            var eventKey   = Guid.NewGuid().ToString();
            var workflowId = await StartWorkflowAsync(new MyDataClass()
            {
                Value1 = eventKey
            });

            WaitForEventSubscription("MyEvent", eventKey, TimeSpan.FromSeconds(30));
            Host.PublishEvent("MyEvent", eventKey, "DATA");

            WaitForWorkflowToComplete(workflowId, TimeSpan.FromSeconds(60));

            var events = await PersistenceProvider.GetEvents("MyEvent", eventKey, DateTime.MinValue);

            events.Count().Should().Be(1);
            var evnt = await PersistenceProvider.GetEvent(events.ElementAt(0));

            evnt.IsProcessed.Should().BeTrue();
            GetActiveSubscriptons("MyEvent", eventKey).Should().BeEmpty();
            GetStatus(workflowId).Should().Be(WorkflowStatus.Complete);
        }