public void DeleteRecordingsHttpTriggerRunSecretStoreException() { InitializeWithNoTwilioMock(); InitializeSecretsExceptions(); string expectedCallSid = $"CA10000000000000000000000000000200"; HttpRequest request = CreateHttpPostRequest(expectedCallSid); ExecutionContext context = new ExecutionContext() { FunctionAppDirectory = Directory.GetCurrentDirectory(), }; IActionResult result = DeleteRecordingsHttpTrigger.Run(request, Log, context).Result; Assert.IsInstanceOfType(result, typeof(OkObjectResult)); OkObjectResult okResult = (OkObjectResult)result; Assert.AreEqual(200, okResult.StatusCode); Assert.IsInstanceOfType(okResult.Value, typeof(DeleteRecordingsResponse)); DeleteRecordingsResponse response = (DeleteRecordingsResponse)okResult.Value; Assert.AreEqual(expectedCallSid, response.CallSid); Assert.AreEqual((int)CommonStatusCode.Error, response.StatusCode); Assert.AreEqual(Enum.GetName(typeof(CommonStatusCode), CommonStatusCode.Error), response.StatusDesc); Assert.IsTrue(response.HasError); Assert.AreEqual((int)CommonErrorCode.SecretStoreGenericFailure, response.ErrorCode); Assert.AreEqual(CommonErrorMessage.SecretStoreGenericFailureMessage, response.ErrorDetails); }
public void DeleteRecordingsHttpTriggerMissingCallSid() { InitializeWithNoTwilioMock(); HttpRequest request = CreateHttpPostRequest(null); ExecutionContext context = new ExecutionContext() { FunctionAppDirectory = Directory.GetCurrentDirectory(), }; IActionResult result = DeleteRecordingsHttpTrigger.Run(request, Log, context).Result; Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult)); BadRequestObjectResult badRequestResult = (BadRequestObjectResult)result; Assert.AreEqual(400, badRequestResult.StatusCode); Assert.IsInstanceOfType(badRequestResult.Value, typeof(DeleteRecordingsResponse)); DeleteRecordingsResponse response = (DeleteRecordingsResponse)badRequestResult.Value; Assert.IsNull(response.CallSid); Assert.IsFalse(response.AreAllRecordingsDeleted); Assert.IsTrue(response.HasError); Assert.AreEqual((int)DeleteRecordingsErrorCode.RequestMissingCallSid, response.ErrorCode); Assert.AreEqual($"You must specify a value for the key '{DeleteRecordingsRequest.CallSidKeyName}' in the request body!", response.ErrorDetails); }
public void DeleteRecordingsHttpTriggerRun() { HttpRequest request = CreateDeleteHttpPostRequest(_config.CallSid); ExecutionContext context = new ExecutionContext() { FunctionAppDirectory = Directory.GetCurrentDirectory(), }; IActionResult result = DeleteRecordingsHttpTrigger.Run(request, _log, context).Result; Assert.IsInstanceOfType(result, typeof(OkObjectResult)); OkObjectResult okResult = (OkObjectResult)result; Assert.AreEqual(200, okResult.StatusCode); Assert.IsInstanceOfType(okResult.Value, typeof(DeleteRecordingsResponse)); DeleteRecordingsResponse response = (DeleteRecordingsResponse)okResult.Value; Assert.AreEqual(_config.CallSid, response.CallSid); Assert.IsTrue(response.AreAllRecordingsDeleted); Assert.AreEqual((int)CommonStatusCode.Ok, response.StatusCode); Assert.AreEqual(Enum.GetName(typeof(CommonStatusCode), CommonStatusCode.Ok), response.StatusDesc); Assert.IsFalse(response.HasError); Assert.AreEqual((int)CommonErrorCode.NoError, response.ErrorCode); Assert.IsNull(response.ErrorDetails); }
public void DeleteRecordingsHttpTriggerNoRecordings() { InitializeWithNoTwilioMock(); InitializeSecrets(); string expectedCallSid = "CA10000000000000000000000000000300"; string expectedResponseContent = TemplateManager.Load(RecordingResponseTemplatePath, new Dictionary <string, string>() { { "pageSize", "0" }, }) .Replace($"{{{RecordingCompositesKey}}}", string.Empty); HttpResponseMessage expectedRecordingsResponse = TestHelper.CreateHttpResponseMessage(HttpStatusCode.OK, expectedResponseContent); HttpClientMock httpClient = DeleteRecordingsHttpTrigger.Container.GetService <IHttpClientWrapper>() as HttpClientMock; httpClient.MessageHandler.RegisterExpectedRecordingResponse(expectedCallSid, "recordings", expectedRecordingsResponse); HttpRequest request = CreateHttpPostRequest(expectedCallSid); ExecutionContext context = new ExecutionContext() { FunctionAppDirectory = Directory.GetCurrentDirectory(), }; IActionResult result = DeleteRecordingsHttpTrigger.Run(request, Log, context).Result; Assert.IsInstanceOfType(result, typeof(OkObjectResult)); OkObjectResult okRequestObject = (OkObjectResult)result; Assert.AreEqual(200, okRequestObject.StatusCode); Assert.IsInstanceOfType(okRequestObject.Value, typeof(DeleteRecordingsResponse)); DeleteRecordingsResponse response = (DeleteRecordingsResponse)okRequestObject.Value; Assert.AreEqual(expectedCallSid, response.CallSid); Assert.IsTrue(response.AreAllRecordingsDeleted); Assert.IsFalse(response.HasError); Assert.AreEqual(0, response.ErrorCode); Assert.IsNull(response.ErrorDetails); }
/// <summary> /// Ensure DeleteRecordingsHttpTrigger.Run() implementation runs correctly for concurrent executions. /// </summary> /// <param name="queue">The queue of tests to run.</param> public void DeleteRecordingsRunnerLocal(ConcurrentQueue <TestConfiguration> queue) { TestConfiguration nextTestConfiguration = null; while (!queue.IsEmpty) { if (queue.TryDequeue(out nextTestConfiguration)) { HttpRequest request = CreateDeleteHttpPostRequest(nextTestConfiguration.CallSid); ExecutionContext context = new ExecutionContext() { FunctionAppDirectory = Directory.GetCurrentDirectory(), }; IActionResult result = DeleteRecordingsHttpTrigger.Run(request, _log, context).Result; Assert.IsInstanceOfType(result, typeof(OkObjectResult)); OkObjectResult okResult = (OkObjectResult)result; Assert.AreEqual(200, okResult.StatusCode); Assert.IsInstanceOfType(okResult.Value, typeof(DeleteRecordingsResponse)); DeleteRecordingsResponse response = (DeleteRecordingsResponse)okResult.Value; Assert.AreEqual(_config.CallSid, response.CallSid); Assert.IsTrue(response.AreAllRecordingsDeleted); Assert.AreEqual((int)CommonStatusCode.Ok, response.StatusCode); Assert.AreEqual(Enum.GetName(typeof(CommonStatusCode), CommonStatusCode.Ok), response.StatusDesc); Assert.IsFalse(response.HasError); Assert.AreEqual((int)CommonErrorCode.NoError, response.ErrorCode); Assert.IsNull(response.ErrorDetails); nextTestConfiguration.AllRecordingsDeleted = response.AreAllRecordingsDeleted; } TH.Thread.Sleep(2000); } }
public void DeleteRecordingsHttpTriggerRunTwilioAuthenticationException() { InitializeWithTwilioMock(); InitializeTwilioExceptions(new Dictionary <string, Exception>() { { _config[GlobalConstants.TwilioAccountSidSecretNameAppSettingName], new TwilioEx.AuthenticationException("TestException") }, }); string expectedCallSid = $"CA10000000000000000000000000000200"; HttpRequest request = CreateHttpPostRequest(expectedCallSid); ExecutionContext context = new ExecutionContext() { FunctionAppDirectory = Directory.GetCurrentDirectory(), }; IActionResult result = DeleteRecordingsHttpTrigger.Run(request, Log, context).Result; Assert.IsInstanceOfType(result, typeof(OkObjectResult)); OkObjectResult okResult = (OkObjectResult)result; Assert.AreEqual(200, okResult.StatusCode); Assert.IsInstanceOfType(okResult.Value, typeof(DeleteRecordingsResponse)); DeleteRecordingsResponse response = (DeleteRecordingsResponse)okResult.Value; Assert.AreEqual(expectedCallSid, response.CallSid); Assert.AreEqual((int)CommonStatusCode.Error, response.StatusCode); Assert.AreEqual(Enum.GetName(typeof(CommonStatusCode), CommonStatusCode.Error), response.StatusDesc); Assert.IsTrue(response.HasError); Assert.AreEqual((int)CommonErrorCode.TwilioAuthenticationFailed, response.ErrorCode); Assert.AreEqual(CommonErrorMessage.TwilioAuthenticationFailedMessage, response.ErrorDetails); }