public async Task PlayAudioAsyncOverload_Passes(string expectedCallLegId, PlayAudioOptions expectedRequest) { Mock <CallClient> mockClient = new Mock <CallClient>() { CallBase = true }; Response <PlayAudioResponse>?expectedResponse = default; CancellationToken cancellationToken = new CancellationTokenSource().Token; var callExpression = BuildExpression(x => x.PlayAudioAsync(It.IsAny <string>(), It.IsAny <PlayAudioOptions>(), It.IsAny <CancellationToken>())); mockClient .Setup(callExpression) .ReturnsAsync((string callLegId, PlayAudioOptions request, CancellationToken token) => { Assert.AreEqual(expectedCallLegId, callLegId); Assert.AreEqual(expectedRequest, request); Assert.AreEqual(cancellationToken, token); return(expectedResponse = new Mock <Response <PlayAudioResponse> >().Object); }); Response <PlayAudioResponse> actualResponse = await mockClient.Object.PlayAudioAsync(expectedCallLegId, expectedRequest, cancellationToken); mockClient.Verify(callExpression, Times.Once()); Assert.AreEqual(expectedResponse, actualResponse); }
private async Task PlayAudioAsync() { if (reportCancellationToken.IsCancellationRequested) { Logger.LogMessage(Logger.MessageType.INFORMATION, "Cancellation request, PlayAudio will not be performed"); return; } try { // Preparing data for request var playAudioRequest = new PlayAudioOptions() { AudioFileUri = new Uri(callConfiguration.AudioFileUrl), OperationContext = Guid.NewGuid().ToString(), Loop = true, }; Logger.LogMessage(Logger.MessageType.INFORMATION, "Performing PlayAudio operation"); var response = await callConnection.PlayAudioAsync(playAudioRequest, reportCancellationToken).ConfigureAwait(false); Logger.LogMessage(Logger.MessageType.INFORMATION, $"PlayAudioAsync response --> {response.GetRawResponse()}, Id: {response.Value.OperationId}, Status: {response.Value.Status}, OperationContext: {response.Value.OperationContext}, ResultInfo: {response.Value.ResultInfo}"); if (response.Value.Status == OperationStatus.Running) { Logger.LogMessage(Logger.MessageType.INFORMATION, $"Play Audio state: {response.Value.Status}"); // listen to play audio events RegisterToPlayAudioResultEvent(playAudioRequest.OperationContext); var completedTask = await Task.WhenAny(playAudioCompletedTask.Task, Task.Delay(30 * 1000)).ConfigureAwait(false); if (completedTask != playAudioCompletedTask.Task) { Logger.LogMessage(Logger.MessageType.INFORMATION, "No response from user in 30 sec, initiating hangup"); playAudioCompletedTask.TrySetResult(false); toneReceivedCompleteTask.TrySetResult(false); } } } catch (TaskCanceledException) { Logger.LogMessage(Logger.MessageType.ERROR, "Play audio operation cancelled"); } catch (Exception ex) { Logger.LogMessage(Logger.MessageType.ERROR, $"Failure occured while playing audio on the call. Exception: {ex.Message}"); } }
private async Task PlayAudioAsync(string audioFileUrl) { if (reportCancellationToken.IsCancellationRequested) { Logger.LogMessage(Logger.MessageType.INFORMATION, "Cancellation request, PlayAudio will not be performed"); return; } try { if (string.IsNullOrEmpty(audioFileUrl)) { audioFileUrl = Environment.GetEnvironmentVariable("AudioFileUrl"); } Logger.LogMessage(Logger.MessageType.INFORMATION, $"audioFileUrl = {audioFileUrl}"); // Preparing data for request var playAudioRequest = new PlayAudioOptions() { AudioFileUri = new Uri(audioFileUrl), OperationContext = Guid.NewGuid().ToString(), Loop = true, AudioFileId = "", }; Logger.LogMessage(Logger.MessageType.INFORMATION, "Performing PlayAudio operation"); var response = await callConnection.PlayAudioAsync(playAudioRequest, reportCancellationToken).ConfigureAwait(false); Logger.LogMessage(Logger.MessageType.INFORMATION, $"PlayAudioAsync response --> " + $"{response.GetRawResponse()}, Id: {response.Value.OperationId}, Status: " + $"{response.Value.Status}, OperationContext: {response.Value.OperationContext}, " + $"ResultInfo: {response.Value.ResultInfo}"); if (response.Value.Status == OperationStatus.Running) { Logger.LogMessage(Logger.MessageType.INFORMATION, $"Play Audio state: {response.Value.Status}"); } } catch (TaskCanceledException) { Logger.LogMessage(Logger.MessageType.ERROR, "Play audio operation cancelled"); } catch (Exception ex) { Logger.LogMessage(Logger.MessageType.ERROR, $"Failure occured while playing audio on the call. Exception: {ex.Message}"); } }
private async Task PlayAudioOperation(CallClient client, string callLegId) { var playAudioOptions = new PlayAudioOptions() { AudioFileUri = new Uri(TestEnvironment.AudioFileUrl), OperationContext = "de346f03-7f8d-41ab-a232-cc5e14990769", Loop = true, AudioFileId = "ebb1d98d-fd86-4204-800c-f7bdfc2e515c" }; Console.WriteLine("Performing PlayAudio operation"); var response = await client.PlayAudioAsync(callLegId, playAudioOptions).ConfigureAwait(false); Assert.AreEqual(response.Value.Status, OperationStatus.Running); }
public void PlayAudioOverload_Passes(Uri sampleAudioFileUri, string sampleAudioFileId, Uri sampleCallbackUri, string sampleOperationContext) { var callConnection = CreateMockCallConnection(202, PlayAudioResponsePayload); var playAudio = new PlayAudioOptions() { AudioFileUri = sampleAudioFileUri, AudioFileId = sampleAudioFileId, CallbackUri = sampleCallbackUri, Loop = false, OperationContext = sampleOperationContext }; var result = callConnection.PlayAudio(playAudio); VerifyPlayAudioResult(result); }
public async Task PlayAudioAsyncOverload_Passes(Uri sampleAudioFileUri, string sampleAudioFileId, Uri sampleCallbackUri, string sampleOperationContext) { var callConnection = CreateMockCallConnection(202, PlayAudioResponsePayload); var playAudio = new PlayAudioOptions() { AudioFileUri = sampleAudioFileUri, AudioFileId = sampleAudioFileId, CallbackUri = sampleCallbackUri, Loop = false, OperationContext = sampleOperationContext }; var result = await callConnection.PlayAudioAsync(playAudio).ConfigureAwait(false); VerifyPlayAudioResult(result); }
public void PlayAudioOverload_Failed(Uri sampleAudioFileUri, string sampleAudioFileId, Uri sampleCallbackUri, string sampleOperationContext) { var callConnection = CreateMockCallConnection(404); var playAudio = new PlayAudioOptions() { AudioFileUri = sampleAudioFileUri, AudioFileId = sampleAudioFileId, CallbackUri = sampleCallbackUri, Loop = false, OperationContext = sampleOperationContext }; RequestFailedException?ex = Assert.Throws <RequestFailedException>(() => callConnection.PlayAudio(playAudio)); Assert.NotNull(ex); Assert.AreEqual(ex?.Status, 404); }