The context for connecting cmdlets in the current session to Azure.
 public static AzureRMProfile CreateAzureRMProfile(string storageAccount)
 {
     var tenantId = Guid.NewGuid();
     var subscriptionId = Guid.NewGuid();
     var domain = "Contoso.com";
     var context = new PSAzureContext()
     {
         Account = new PSAzureRmAccount
         {
             Id = "*****@*****.**",
             AccountType = "User"
         },
         Environment = (PSAzureEnvironment)AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud],
         Subscription =
         new PSAzureSubscription
         {
             CurrentStorageAccount = storageAccount,
             CurrentStorageAccountName = PSAzureSubscription.GetAccountName(storageAccount),
             SubscriptionId = subscriptionId.ToString(),
             SubscriptionName = "Test Subscription 1",
             TenantId = tenantId.ToString()
         },
         Tenant = new PSAzureTenant
         {
             Domain = domain,
             TenantId = tenantId.ToString()
         }
     };
     return new AzureRMProfile() { Context = context };
 }
 public void CanConvertValidPSAzureContexts(string account, string subscription, string storageAccount, string storageAccountName)
  {
      var tenantId = Guid.NewGuid();
      var subscriptionId = Guid.NewGuid();
      var domain = GetDomainName(account);
      var oldContext = new PSAzureContext()
      {
          Account = new PSAzureRmAccount
          {
              Id = account,
              AccountType = "User"
          },
          Environment = (PSAzureEnvironment)AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud],
          Subscription = 
          new PSAzureSubscription {
              CurrentStorageAccount = storageAccount,
              CurrentStorageAccountName= storageAccountName,
              SubscriptionId = subscriptionId.ToString(),
              SubscriptionName = subscription,
              TenantId = tenantId.ToString()
          },
          Tenant = new PSAzureTenant
          {
              Domain=domain,
              TenantId = tenantId.ToString()
          }
      };
      var context = (AzureContext) oldContext;
      Assert.NotNull(context);
      Assert.NotNull(context.Account);
      Assert.Equal(oldContext.Account.AccountType, context.Account.Type.ToString());
      Assert.Equal(oldContext.Account.Id, context.Account.Id);
      Assert.NotNull(context.Tenant);
      Assert.Equal(oldContext.Tenant.Domain, context.Tenant.Domain);
      Assert.Equal(oldContext.Tenant.TenantId, context.Tenant.Id.ToString());
      Assert.NotNull(context.Subscription);
      Assert.Equal(oldContext.Subscription.SubscriptionName, context.Subscription.Name);
      Assert.Equal(oldContext.Subscription.SubscriptionId, context.Subscription.Id.ToString());
      Assert.True(context.Subscription.IsPropertySet(AzureSubscription.Property.Tenants));
      Assert.Equal(oldContext.Subscription.TenantId, context.Subscription.GetProperty(AzureSubscription.Property.Tenants));
      Assert.True(context.Subscription.IsPropertySet(AzureSubscription.Property.StorageAccount));
      Assert.Equal(storageAccount, context.Subscription.GetProperty(AzureSubscription.Property.StorageAccount));
  }