Esempio n. 1
0
        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);
        }
Esempio n. 4
0
        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));
            }
Esempio n. 5
0
        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));
        }