public async Task SessionStateDeleteTest() { GenerationBasicOrchestration.Result = 0; GenerationBasicTask.GenerationCount = 0; await taskHub.AddTaskOrchestrations(typeof(GenerationBasicOrchestration)) .AddTaskActivities(new GenerationBasicTask()) .StartAsync(); OrchestrationInstance id = await client.CreateOrchestrationInstanceAsync(typeof(GenerationBasicOrchestration), 4); bool isCompleted = await TestHelpers.WaitForInstanceAsync(client, id, 60); Assert.IsTrue(isCompleted, TestHelpers.GetInstanceNotCompletedMessage(client, id, 60)); Assert.AreEqual(4, GenerationBasicOrchestration.Result, "Orchestration Result is wrong!!!"); Assert.AreEqual(0, TestHelpers.GetOrchestratorQueueMessageCount()); }
public async Task DupeDetectionByServiceBusQueueTest() { var sbService = (ServiceBusOrchestrationService)this.taskHub.orchestrationService; string name = NameVersionHelper.GetDefaultName(typeof(SimplestGreetingsOrchestration)); string version = NameVersionHelper.GetDefaultVersion(typeof(SimplestGreetingsOrchestration)); await this.taskHub.AddTaskOrchestrations(typeof(GenerationBasicOrchestration)) .AddTaskActivities(new GenerationBasicTask()) .AddTaskOrchestrations(typeof(SimplestGreetingsOrchestration)) .AddTaskActivities(typeof(SimplestGetUserTask), typeof(SimplestSendGreetingTask)) .StartAsync(); GenerationBasicTask.GenerationCount = 0; var generationCount = 0; OrchestrationInstance id = await this.client.CreateOrchestrationInstanceAsync(typeof(GenerationBasicOrchestration), generationCount); bool isCompleted = await TestHelpers.WaitForInstanceAsync(this.client, id, 60); Assert.IsTrue(isCompleted, TestHelpers.GetInstanceNotCompletedMessage(this.client, id, 60)); // We use instanceId and execution for SB level d-dup // Write to ServiceBus only. SB drops the message and the orchestration does not start id = await TestHelpers.CreateOrchestrationInstanceAsync(sbService, name, version, id.InstanceId, id.ExecutionId, false, true); await Task.Delay(TimeSpan.FromSeconds(5)); // ReSharper disable once UnusedVariable long count = TestHelpers.GetOrchestratorQueueMessageCount(); IList <OrchestrationState> executions = await this.client.GetOrchestrationStateAsync(id.InstanceId, true); Assert.AreEqual(1, executions.Count, "Duplicate detection failed and orchestration ran for second time"); // Make sure the second orchestration never started by checking the output from first orchestration Assert.AreNotEqual("Greeting send to Gabbar", executions[0].Output); Assert.AreEqual(generationCount + 1, int.Parse(executions[0].Output)); }