public void SetContextWithNameCopiesAccountProperties()
        {
            TestExecutionHelpers.SetUpSessionAndProfile();
            var context    = new AzureContext();
            var newContext = new AzureContext();

            context.CopyFrom(context1);
            newContext.CopyFrom(context1);
            var token = Guid.NewGuid().ToString();

            newContext.Account.SetProperty(AzureAccount.Property.AccessToken, token);
            var profile = new AzureRmProfile();

            profile.DefaultContext = context;
            Assert.True(profile.TrySetContext(profile.DefaultContextKey, newContext));
            Assert.True(profile.DefaultContext.Account.IsPropertySet(AzureAccount.Property.AccessToken));
            Assert.Equal(token, profile.DefaultContext.Account.GetAccessToken());
        }
예제 #2
0
        public IAzureContext SetCurrentContext(string subscriptionNameOrId, string tenantId, string name = null)
        {
            IAzureSubscription subscription = null;
            IAzureTenant       tenant       = null;
            Guid          subscriptionId;
            IAzureContext context = new AzureContext();

            context.CopyFrom(_profile.DefaultContext);
            if (!string.IsNullOrWhiteSpace(subscriptionNameOrId))
            {
                if (Guid.TryParse(subscriptionNameOrId, out subscriptionId))
                {
                    TryGetSubscriptionById(tenantId, subscriptionNameOrId, out subscription);
                }
                else
                {
                    TryGetSubscriptionByName(tenantId, subscriptionNameOrId, out subscription);
                }

                if (subscription == null)
                {
                    throw new ArgumentException(ProfileMessages.SubscriptionOrTenantRequired);
                }

                var tenantFromSubscription = subscription.GetTenant();
                tenant = string.IsNullOrWhiteSpace(tenantId) ? (string.IsNullOrEmpty(tenantFromSubscription) ? context.Tenant : CreateTenant(tenantFromSubscription)):  CreateTenant(tenantId);
            }
            else if (!string.IsNullOrWhiteSpace(tenantId))
            {
                subscription = GetFirstSubscription(tenantId);
                tenant       = CreateTenant(tenantId);
            }
            else
            {
                throw new ArgumentException(ProfileMessages.SubscriptionOrTenantRequired);
            }

            context.WithTenant(tenant).WithSubscription(subscription);
            _profile.TrySetDefaultContext(name, context);
            _profile.DefaultContext.ExtendedProperties.Clear();
            return(context);
        }