Example #1
0
        public void AzureCredType()
        {
            LiveTestRequest request = new LiveTestRequest();

            request.Params = new Dictionary <string, object>()
            {
                { "__reserved", new Dictionary <string, object>()
                  {
                      { "credentials", new LiveTestCredentials[] { new LiveTestCredentials()
                                                                   {
                                                                       Type       = "azure",
                                                                       Properties = new Dictionary <string, object>()
                                                                       {
                                                                           { "tenantId", "testTenantId" },
                                                                           { "clientId", "testClientId" },
                                                                           { "secret", "testSecret" }
                                                                       }
                                                                   } } }
                  } }
            };

            LiveTestCredentialFactory         test   = new LiveTestCredentialFactory();
            IEnumerable <ICredentialProvider> result = test.Create(request, this.logger);

            Assert.Equal(1, result.Count());
            ICredentialProvider first = result.First();

            Assert.NotNull(first);
            Assert.IsType <AzureCredentialProvider>(first);
            AzureCredentialProvider provider = (AzureCredentialProvider)first;

            Assert.Equal("testTenantId", provider.TenantId);
            Assert.Equal("testClientId", provider.ClientId);
            Assert.Equal("testSecret", provider.Secret);
        }
        public void ExceptionWhenCredentialsPropertiesAreMissing()
        {
            AzureCredentialProvider test = new AzureCredentialProvider(this.logger);

            test.Set("tenantId", "testTenantId");
            test.Set("clientId", "testClientId");
            MockRunspaceManager runspace = new MockRunspaceManager();

            Assert.Throws <InvalidTestCredentialsException>(() => test.Process(runspace.CreateCommand()));
        }
        public void ExceptionWhenCommandFails()
        {
            AzureCredentialProvider test = new AzureCredentialProvider(this.logger);

            test.Set("tenantId", "testTenantId");
            test.Set("clientId", "testClientId");
            test.Set("secret", "testSecret");
            MockRunspaceManager runspace = new MockRunspaceManager();

            runspace.CommandBuilders.Add(new MockCommandBuilder(runspace)
            {
                MockResult = new CommandExecutionResult(null, new List <string>()
                {
                    "This is an error"
                }, true)
            });
            Assert.Throws <CommandFailedException>(() => test.Process(runspace.CommandBuilders[0]));
        }
        public void HappyPathDefaultCredType()
        {
            AzureCredentialProvider test = new AzureCredentialProvider(this.logger);

            test.Set("tenantId", "testTenantId");
            test.Set("clientId", "testClientId");
            test.Set("secret", "testSecret");
            MockRunspaceManager runspace = new MockRunspaceManager();

            runspace.CommandBuilders.Add(new MockCommandBuilder(runspace)
            {
                MockResult = new CommandExecutionResult(null, null, false)
            });
            runspace.CommandBuilders.Add(new MockCommandBuilder(runspace)
            {
                MockResult = new CommandExecutionResult(null, null, false)
            });
            test.Process(runspace.CommandBuilders[0]);

            Assert.Equal(2, runspace.InvokeHistory.Count);
            Assert.Equal("import-module [name azurerm.profile]", ((string)runspace.InvokeHistory[0]).ToLowerInvariant());
            Assert.Equal("add-azurermaccount [credential (testclientid testsecret)] [tenantid testtenantid] [serviceprincipal true]", ((string)runspace.InvokeHistory[1]).ToLowerInvariant());
        }