public void ConstructorWithValidConnectionStringTest() { var authMethod = new ServiceAuthenticationWithSharedAccessPolicyKey("test", "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); var builder = IotHubConnectionStringBuilder.Create("acme.azure-devices.net", authMethod); var registryManager = RegistryManager.CreateFromConnectionString(builder.ToString()); Assert.IsNotNull(registryManager); }
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", "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); var builder = IotHubConnectionStringBuilder.Create("acme.azure-devices.net", authMethod); var serviceClient = new AmqpServiceClient(builder.ToIotHubConnectionString(), false, restOpMock.Object); // Execute method under test PurgeMessageQueueResult result = await serviceClient.PurgeMessageQueueAsync("TestDevice", CancellationToken.None); }
public void ServiceClient_IotHubConnectionStringBuilder_Test() { string connectionString = "HostName=acme.azure-devices.net;SharedAccessKeyName=AllAccessKey;SharedAccessKey=CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="; var iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyKey); connectionString = "HostName=acme.azure-devices.net;CredentialType=SharedAccessSignature;SharedAccessKeyName=AllAccessKey;SharedAccessSignature=SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"; iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create(connectionString); Assert.IsNotNull(iotHubConnectionStringBuilder.HostName); Assert.IsNotNull(iotHubConnectionStringBuilder.AuthenticationMethod); Assert.IsNull(iotHubConnectionStringBuilder.SharedAccessKey); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessKeyName); Assert.IsNotNull(iotHubConnectionStringBuilder.SharedAccessSignature); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyToken); try { iotHubConnectionStringBuilder.HostName = "adshgfvyregferuehfiuehr"; Assert.Fail("Expected FormatException"); } catch (FormatException) { } try { iotHubConnectionStringBuilder.HostName = "acme.azure-devices.net"; iotHubConnectionStringBuilder.AuthenticationMethod = new TestAuthenticationMethod(); Assert.Fail("Expected ArgumentException"); } catch (ArgumentException e) { Assert.IsTrue(e.Message.Contains("SharedAccessKey")); } iotHubConnectionStringBuilder.HostName = "acme.azure-devices.net"; iotHubConnectionStringBuilder.AuthenticationMethod = new ServiceAuthenticationWithSharedAccessPolicyKey("AllAccessKey1", "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyKey); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKeyName == "AllAccessKey1"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "CQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); iotHubConnectionStringBuilder.AuthenticationMethod = new ServiceAuthenticationWithSharedAccessPolicyToken("AllAccessKey2", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyToken); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKeyName == "AllAccessKey2"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); IAuthenticationMethod authMethod = new ServiceAuthenticationWithSharedAccessPolicyToken("AllAccess1", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme1.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyToken); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme1.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKeyName == "AllAccess1"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); authMethod = new ServiceAuthenticationWithSharedAccessPolicyKey("AllAccess2", "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme2.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyKey); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKeyName == "AllAccess2"); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme2.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); authMethod = AuthenticationMethodFactory.CreateAuthenticationWithSharedAccessPolicyKey("AllAccess2", "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme2.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyKey); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKeyName == "AllAccess2"); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme2.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == null); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == "KQN2K33r45/0WeIjpqmErV5EIvX8JZrozt3NEHCEkG8="); authMethod = AuthenticationMethodFactory.CreateAuthenticationWithSharedAccessPolicyToken("AllAccess1", "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); iotHubConnectionStringBuilder = IotHubConnectionStringBuilder.Create("acme1.azure-devices.net", authMethod); Assert.IsTrue(iotHubConnectionStringBuilder.AuthenticationMethod is ServiceAuthenticationWithSharedAccessPolicyToken); Assert.IsTrue(iotHubConnectionStringBuilder.HostName == "acme1.azure-devices.net"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKeyName == "AllAccess1"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessSignature == "SharedAccessSignature sr=dh%3a%2f%2facme.azure-devices.net&sig=poifbMLdBGtCJknubF2FW6FLn5vND5k1IKoeQ%2bONgkE%3d&se=87824124985&skn=AllAccessKey"); Assert.IsTrue(iotHubConnectionStringBuilder.SharedAccessKey == null); }
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); }