public IAzureContext SetCurrentContext(string tenantId) { IAzureSubscription firstSubscription = GetFirstSubscription(tenantId); if (firstSubscription != null) { SwitchSubscription(firstSubscription); } else { if (_profile.DefaultContext.Account != null) { _profile.DefaultContext.Account.SetTenants(tenantId); } //TODO: should not we clean up this field? It could be a bogus subscription we are leaving behind... if (_profile.DefaultContext.Subscription != null) { _profile.DefaultContext.Subscription.SetTenant(tenantId); } _profile.SetContextWithCache(new AzureContext( _profile.DefaultContext.Account, _profile.DefaultContext.Environment, CreateTenant(tenantId))); } return(_profile.DefaultContext); }
public void SetContextPreservesTokenCache() { AzureRmProfile profile = null; AzureContext context = new AzureContext(null, null, null, null); Assert.Throws <ArgumentNullException>(() => profile.SetContextWithCache(context)); profile = new AzureRmProfile(); Assert.Throws <ArgumentNullException>(() => profile.SetContextWithCache(null)); profile.SetContextWithCache(context); Assert.Equal(AzureSession.Instance.TokenCache.CacheData, profile.DefaultContext.TokenCache.CacheData); }