private static async Task SetupQueue(string queueName) { //Clear queue await StorageHelpers.ClearQueue(queueName); //Set up and trigger await StorageHelpers.CreateQueue(queueName); }
public async Task ActivityCanHaveQueueBinding() { const string queueName = "outqueue"; await StorageHelpers.ClearQueue(queueName); var initialResponse = await Utilities.GetHttpTriggerResponse("DurableClient", queryString : "?FunctionName=DurableOrchestratorWriteToQueue"); Assert.Equal(HttpStatusCode.Accepted, initialResponse.StatusCode); var initialResponseBody = await initialResponse.Content.ReadAsStringAsync(); dynamic initialResponseBodyObject = JsonConvert.DeserializeObject(initialResponseBody); var statusQueryGetUri = (string)initialResponseBodyObject.statusQueryGetUri; var startTime = DateTime.UtcNow; using var httpClient = new HttpClient(); while (true) { var statusResponse = await httpClient.GetAsync(statusQueryGetUri); switch (statusResponse.StatusCode) { case HttpStatusCode.Accepted: { if (DateTime.UtcNow > startTime + _orchestrationCompletionTimeout) { Assert.True(false, $"The orchestration has not completed after {_orchestrationCompletionTimeout}"); } await Task.Delay(TimeSpan.FromSeconds(2)); break; } case HttpStatusCode.OK: { var statusResponseBody = await GetResponseBodyAsync(statusResponse); Assert.Equal("Completed", (string)statusResponseBody.runtimeStatus); var queueMessage = await StorageHelpers.ReadFromQueue(queueName); Assert.Equal("QueueData", queueMessage); return; } default: Assert.True(false, $"Unexpected orchestration status code: {statusResponse.StatusCode}"); break; } } }
public async Task QueueTriggerAndOutput_Succeeds() { string expectedQueueMessage = Guid.NewGuid().ToString(); //Clear queue await StorageHelpers.ClearQueue(Constants.Queue.OutputBindingName); await StorageHelpers.ClearQueue(Constants.Queue.InputBindingName); //Set up and trigger await StorageHelpers.CreateQueue(Constants.Queue.OutputBindingName); await StorageHelpers.InsertIntoQueue(Constants.Queue.InputBindingName, expectedQueueMessage); //Verify var queueMessage = await StorageHelpers.ReadFromQueue(Constants.Queue.OutputBindingName); Assert.Equal(expectedQueueMessage, queueMessage); }
public async Task EventHubTriggerCardinalityOne_Succeeds() { string expectedEventId = Guid.NewGuid().ToString(); try { await SetupQueue(Constants.EventHubs.Cardinality_One_Test.OutputName); // Need to setup EventHubs: test-inputOne-powershell and test-outputone-powershell await EventHubsHelpers.SendMessagesAsync(expectedEventId, Constants.EventHubs.Cardinality_One_Test.InputName); //Verify IEnumerable <string> queueMessages = await StorageHelpers.ReadMessagesFromQueue(Constants.EventHubs.Cardinality_One_Test.OutputName); Assert.True(queueMessages.All(msg => msg.Contains(expectedEventId))); } finally { //Clear queue await StorageHelpers.ClearQueue(Constants.EventHubs.Cardinality_One_Test.OutputName); } }
public async Task EventHubTriggerAndOutputString_Succeeds() { string expectedEventId = Guid.NewGuid().ToString(); try { await SetupQueue(Constants.EventHubs.String_Test.OutputName); // Need to setup EventHubs: test-input-one-ps await EventHubsHelpers.SendMessagesAsync(expectedEventId, Constants.EventHubs.String_Test.InputName); //Verify var queueMessage = await StorageHelpers.ReadFromQueue(Constants.EventHubs.String_Test.OutputName); Assert.Contains(expectedEventId, queueMessage); } finally { //Clear queue await StorageHelpers.ClearQueue(Constants.EventHubs.String_Test.OutputName); } }
public async Task EventHubTriggerAndOutputJSON_Succeeds() { string expectedEventId = Guid.NewGuid().ToString(); try { await SetupQueue(Constants.EventHubs.Json_Test.OutputName); // Need to setup EventHubs: test-inputjson-powershell and test-outputjson-powershell await EventHubsHelpers.SendJSONMessagesAsync(expectedEventId, Constants.EventHubs.Json_Test.InputName); //Verify var queueMessage = await StorageHelpers.ReadFromQueue(Constants.EventHubs.Json_Test.OutputName); JObject json = JObject.Parse(queueMessage); Assert.Contains(expectedEventId, json["value"].ToString()); } finally { //Clear queue await StorageHelpers.ClearQueue(Constants.EventHubs.Json_Test.OutputName); } }