コード例 #1
0
        public override void ExecuteCmdlet()
        {
            switch (ParameterSetName)
            {
            case "Current":
                WriteObject(ProfileClient.SetSubscriptionAsCurrent(SubscriptionName, Account));
                break;

            case "Default":
                WriteObject(ProfileClient.SetSubscriptionAsDefault(SubscriptionName, Account));
                break;

            case "NoCurrent":
                AzureSession.SetCurrentContext(null, null, null);
                break;

            case "NoDefault":
                ProfileClient.ClearDefaultSubscription();
                break;
            }

            if (PassThru.IsPresent)
            {
                WriteObject(true);
            }
        }
コード例 #2
0
        /// <summary>
        /// Common helper method for other tests to create a unit test subscription
        /// that connects to the mock server.
        /// </summary>
        /// <param name="powershell">The powershell instance used for the test.</param>
        public static AzureSubscription SetupUnitTestSubscription(System.Management.Automation.PowerShell powershell)
        {
            UnitTestHelper.ImportAzureModule(powershell);

            X509Certificate2 certificate    = UnitTestHelper.GetUnitTestClientCertificate();
            Guid             subscriptionId = new Guid(UnitTestSubscriptionId);

            // Set the client certificate used in the subscription
            powershell.Runspace.SessionStateProxy.SetVariable(
                "clientCertificate",
                certificate);

            ProfileClient client = new ProfileClient();

            client.Profile.Environments[UnitTestEnvironmentName] = new AzureEnvironment
            {
                Name      = UnitTestEnvironmentName,
                Endpoints = new Dictionary <AzureEnvironment.Endpoint, string>
                {
                    { AzureEnvironment.Endpoint.ServiceManagement, MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri },
                    { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, ".database.windows.net" }
                }
            };

            var account = new AzureAccount
            {
                Id   = certificate.Thumbprint,
                Type = AzureAccount.AccountType.Certificate
            };

            var subscription = new AzureSubscription
            {
                Id          = subscriptionId,
                Name        = UnitTestSubscriptionName,
                Environment = UnitTestEnvironmentName,
                Account     = account.Id
            };

            client.AddOrSetAccount(account);
            client.AddOrSetSubscription(subscription);
            client.SetSubscriptionAsCurrent(UnitTestSubscriptionName, account.Id);
            client.Profile.Save();

            return(subscription);
        }
コード例 #3
0
        public override void ExecuteCmdlet()
        {
            AzureSubscription azureSubscription = null;

            switch (ParameterSetName)
            {
            case SelectSubscriptionByNameParameterSet:
                azureSubscription = ProfileClient.SetSubscriptionAsCurrent(SubscriptionName, Account);
                break;

            case SelectSubscriptionByIdParameterSet:
                azureSubscription = ProfileClient.SetSubscriptionAsCurrent(SubscriptionIdAsGuid(), Account);
                break;

            case SelectDefaultSubscriptionByNameParameterSet:
                azureSubscription = ProfileClient.SetSubscriptionAsDefault(SubscriptionName, Account);
                break;

            case SelectDefaultSubscriptionByIdParameterSet:
                azureSubscription = ProfileClient.SetSubscriptionAsDefault(SubscriptionIdAsGuid(), Account);
                break;

            case NoCurrentSubscriptionParameterSet:
                AzureSession.SetCurrentContext(null, null, null);
                break;

            case NoDefaultSubscriptionParameterSet:
                ProfileClient.ClearDefaultSubscription();
                break;
            }

            if (PassThru.IsPresent && azureSubscription != null)
            {
                WriteObject(azureSubscription);
            }
        }
コード例 #4
0
        public void SetAzureSubscriptionAsCurrentSetsCurrent()
        {
            MockDataStore dataStore = new MockDataStore();
            ProfileClient.DataStore = dataStore;
            ProfileClient client = new ProfileClient();
            client.Profile.Accounts[azureAccount.Id] = azureAccount;
            client.AddOrSetEnvironment(azureEnvironment);
            client.AddOrSetSubscription(azureSubscription1);
            client.AddOrSetSubscription(azureSubscription2);

            Assert.Null(AzureSession.CurrentContext.Subscription);

            client.SetSubscriptionAsCurrent(azureSubscription2.Name, azureSubscription2.Account);

            Assert.Equal(azureSubscription2.Id, AzureSession.CurrentContext.Subscription.Id);
            Assert.Throws<ArgumentException>(() => client.SetSubscriptionAsCurrent("bad", null));
            Assert.Throws<ArgumentNullException>(() => client.SetSubscriptionAsCurrent(null, null));
        }
コード例 #5
0
        public void RemoveAzureSubscriptionChecksAndRemoves()
        {
            MockDataStore dataStore = new MockDataStore();
            ProfileClient.DataStore = dataStore;
            ProfileClient client = new ProfileClient();

            client.Profile.Accounts[azureAccount.Id] = azureAccount;
            client.AddOrSetEnvironment(azureEnvironment);
            client.AddOrSetSubscription(azureSubscription1);
            client.SetSubscriptionAsCurrent(azureSubscription1.Name, azureSubscription1.Account);
            client.SetSubscriptionAsDefault(azureSubscription1.Name, azureSubscription1.Account);

            Assert.Equal(1, client.Profile.Subscriptions.Count);

            List<string> log = new List<string>();
            client.WarningLog = log.Add;

            var subscription = client.RemoveSubscription(azureSubscription1.Name);

            Assert.Equal(0, client.Profile.Subscriptions.Count);
            Assert.Equal(azureSubscription1.Name, subscription.Name);
            Assert.Equal(2, log.Count);
            Assert.Equal(
                "The default subscription is being removed. Use Select-AzureSubscription -Default <subscriptionName> to select a new default subscription.",
                log[0]);
            Assert.Equal(
                "The current subscription is being removed. Use Select-AzureSubscription <subscriptionName> to select a new current subscription.",
                log[1]);
            Assert.Throws<ArgumentException>(() => client.RemoveSubscription("bad"));
            Assert.Throws<ArgumentNullException>(() => client.RemoveSubscription(null));
        }
コード例 #6
0
        /// <summary>
        /// Common helper method for other tests to create a unit test subscription
        /// that connects to the mock server.
        /// </summary>
        /// <param name="powershell">The powershell instance used for the test.</param>
        public static AzureSubscription SetupUnitTestSubscription(System.Management.Automation.PowerShell powershell)
        {
            UnitTestHelper.ImportAzureModule(powershell);

            X509Certificate2 certificate = UnitTestHelper.GetUnitTestClientCertificate();
            Guid subscriptionId = new Guid(UnitTestSubscriptionId);

            // Set the client certificate used in the subscription
            powershell.Runspace.SessionStateProxy.SetVariable(
                "clientCertificate",
                certificate);

            ProfileClient client = new ProfileClient();
            client.Profile.Environments[UnitTestEnvironmentName] = new AzureEnvironment
                {
                    Name = UnitTestEnvironmentName,
                    Endpoints = new Dictionary<AzureEnvironment.Endpoint, string>
                    {
                        {AzureEnvironment.Endpoint.ServiceManagement, MockHttpServer.DefaultHttpsServerPrefixUri.AbsoluteUri},
                        {AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, ".database.windows.net"}
                    }
                };
            
            var account = new AzureAccount
            {
                Id = certificate.Thumbprint,
                Type = AzureAccount.AccountType.Certificate
            };

            var subscription = new AzureSubscription
            {
                Id = subscriptionId,
                Name = UnitTestSubscriptionName,
                Environment = UnitTestEnvironmentName,
                Account = account.Id
            };

            client.AddOrSetAccount(account);
            client.AddOrSetSubscription(subscription);
            client.SetSubscriptionAsCurrent(UnitTestSubscriptionName, account.Id);
            client.Profile.Save();

            return subscription;
        }