private Tuple <Mock <IHttpClientHelper>, ServiceClient, PurgeMessageQueueResult> SetupPurgeMessageQueueTests() { // Create expected return object var deviceId = "TestDevice"; var expectedResult = new PurgeMessageQueueResult() { DeviceId = deviceId, TotalMessagesPurged = 1 }; // Mock IHttpClientHelper to return expected object on DeleteAsync var restOpMock = new Mock <IHttpClientHelper>(); restOpMock.Setup(restOp => restOp.DeleteAsync <PurgeMessageQueueResult>( It.IsAny <Uri>(), It.IsAny <IDictionary <HttpStatusCode, Func <HttpResponseMessage, Task <Exception> > > >(), null, It.IsAny <CancellationToken>()) ).ReturnsAsync(expectedResult); // Instantiate AmqpServiceClient with Mock IHttpClientHelper var authMethod = new ServiceAuthenticationWithSharedAccessPolicyKey("test", "dGVzdFN0cmluZzE="); var builder = IotHubConnectionStringBuilder.Create("acme.azure-devices.net", authMethod); Func <TimeSpan, Task <AmqpSession> > onCreate = _ => Task.FromResult(new AmqpSession(null, new AmqpSessionSettings(), null)); Action <AmqpSession> onClose = _ => { }; // Instantiate AmqpServiceClient with Mock IHttpClientHelper and IotHubConnection var connection = new IotHubConnection(onCreate, onClose); var serviceClient = new ServiceClient(connection, restOpMock.Object); return(Tuple.Create(restOpMock, serviceClient, expectedResult)); }
public async Task PurgeMessageQueueWithCancellationTokenTest() { // Arrange Moq Tuple <Mock <IHttpClientHelper>, AmqpServiceClient, PurgeMessageQueueResult> setupParameters = this.SetupPurgeMessageQueueTests(); Mock <IHttpClientHelper> restOpMock = setupParameters.Item1; AmqpServiceClient serviceClient = setupParameters.Item2; PurgeMessageQueueResult expectedResult = setupParameters.Item3; // Execute method under test PurgeMessageQueueResult result = await serviceClient.PurgeMessageQueueAsync("TestDevice", CancellationToken.None).ConfigureAwait(false); // Verify expected result Assert.AreSame(expectedResult, result); restOpMock.VerifyAll(); }
public async Task PurgeMessageQueueDeviceNotFoundTest() { // Arrange Moq var restOpMock = new Mock <IHttpClientHelper>(); restOpMock.Setup(restOp => restOp.DeleteAsync <PurgeMessageQueueResult>( It.IsAny <Uri>(), It.IsAny <IDictionary <HttpStatusCode, Func <HttpResponseMessage, Task <Exception> > > >(), null, It.IsAny <CancellationToken>()) ).Throws(new DeviceNotFoundException("device-id")); // Instantiate AmqpServiceClient with Mock IHttpClientHelper var authMethod = new ServiceAuthenticationWithSharedAccessPolicyKey("test", "dGVzdFN0cmluZzE="); var builder = IotHubConnectionStringBuilder.Create("acme.azure-devices.net", authMethod); var serviceClient = new AmqpServiceClient(restOpMock.Object); // Execute method under test PurgeMessageQueueResult result = await serviceClient.PurgeMessageQueueAsync("TestDevice", CancellationToken.None).ConfigureAwait(false); }
public async Task <Response <PurgeMessageQueueResult> > PurgeCloudToDeviceMessageQueueAsync(string id, CancellationToken cancellationToken = default) { if (id == null) { throw new ArgumentNullException(nameof(id)); } using var message = CreatePurgeCloudToDeviceMessageQueueRequest(id); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { PurgeMessageQueueResult value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); value = PurgeMessageQueueResult.DeserializePurgeMessageQueueResult(document.RootElement); return(Response.FromValue(value, message.Response)); }
Tuple <Mock <IHttpClientHelper>, AmqpServiceClient, PurgeMessageQueueResult> SetupPurgeMessageQueueTests() { // Create expected return object var deviceId = "TestDevice"; var expectedResult = new PurgeMessageQueueResult() { DeviceId = deviceId, TotalMessagesPurged = 1 }; // Mock IHttpClientHelper to return expected object on DeleteAsync var restOpMock = new Mock <IHttpClientHelper>(); restOpMock.Setup(restOp => restOp.DeleteAsync <PurgeMessageQueueResult>( It.IsAny <Uri>(), It.IsAny <IDictionary <HttpStatusCode, Func <HttpResponseMessage, Task <Exception> > > >(), null, It.IsAny <CancellationToken>()) ).ReturnsAsync(expectedResult); // Instantiate AmqpServiceClient with Mock IHttpClientHelper var authMethod = new ServiceAuthenticationWithSharedAccessPolicyKey("test", "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); var builder = IotHubConnectionStringBuilder.Create("acme.azure-devices.net", authMethod); var serviceClient = new AmqpServiceClient(builder.ToIotHubConnectionString(), false, restOpMock.Object); return(Tuple.Create(restOpMock, serviceClient, expectedResult)); }