public PowerShellTest(AzureModule commandMode, params string[] modules) { this.modules = new List <string>(); if (commandMode == AzureModule.AzureServiceManagement) { this.modules.Add(FileUtilities.GetContentFilePath(@"ServiceManagement\Azure\Azure.psd1")); } else if (commandMode == AzureModule.AzureResourceManager) { this.modules.Add(FileUtilities.GetContentFilePath(@"ResourceManager\AzureResourceManager\AzureResourceManager.psd1")); } else { throw new ArgumentException("Unknown command type for testing"); } this.modules.Add("Assert.ps1"); this.modules.Add("Common.ps1"); this.modules.AddRange(modules); TestingTracingInterceptor.AddToContext(); }
public TestBase() { TestingTracingInterceptor.AddToContext(); }
/// <summary> /// Setup certificates required for the unit tests /// </summary> public static void SetupCertificates() { TestingTracingInterceptor.AddToContext(); var newGuid = Guid.NewGuid(); var profile = new AzureProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile)); AzurePSCmdlet.CurrentProfile = profile; AzureSession.DataStore = new MockDataStore(); AzureSession.AuthenticationFactory = new MockTokenAuthenticationFactory(); ProfileClient client = new ProfileClient(profile); client.Profile.Subscriptions[newGuid] = new AzureSubscription { Id = newGuid, Name = "test", Environment = EnvironmentName.AzureCloud, Account = "test" }; client.Profile.Accounts["test"] = new AzureAccount { Id = "test", Type = AzureAccount.AccountType.User, Properties = new Dictionary <AzureAccount.Property, string> { { AzureAccount.Property.Subscriptions, newGuid.ToString() } } }; client.Profile.Accounts[UnitTestHelper.GetUnitTestClientCertificate().Thumbprint] = new AzureAccount { Id = UnitTestHelper.GetUnitTestClientCertificate().Thumbprint, Type = AzureAccount.AccountType.Certificate, Properties = new Dictionary <AzureAccount.Property, string> { { AzureAccount.Property.Subscriptions, newGuid.ToString() } } }; client.Profile.Accounts[UnitTestHelper.GetUnitTestSSLCertificate().Thumbprint] = new AzureAccount { Id = UnitTestHelper.GetUnitTestSSLCertificate().Thumbprint, Type = AzureAccount.AccountType.Certificate, Properties = new Dictionary <AzureAccount.Property, string> { { AzureAccount.Property.Subscriptions, newGuid.ToString() } } }; client.SetSubscriptionAsDefault(newGuid, "test"); client.Profile.Save(); // Check if the cert has been installed Process proc = ExecuteProcess( "netsh", string.Format( CultureInfo.InvariantCulture, "http show sslcert ipport=0.0.0.0:{0}", DefaultHttpsServerPrefixUri.Port)); if (proc.ExitCode != 0) { // Install the SSL and client certificates to the LocalMachine store X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); store.Add(UnitTestHelper.GetUnitTestSSLCertificate()); store.Add(UnitTestHelper.GetUnitTestClientCertificate()); store.Close(); store = new X509Store(StoreName.Root, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); store.Add(UnitTestHelper.GetUnitTestSSLCertificate()); store.Add(UnitTestHelper.GetUnitTestClientCertificate()); store.Close(); // Remove any existing certs on the default port proc = ExecuteProcess( "netsh", string.Format( CultureInfo.InvariantCulture, "http delete sslcert ipport=0.0.0.0:{0}", DefaultHttpsServerPrefixUri.Port)); // Install the ssl cert on the default port proc = ExecuteProcess( "netsh", string.Format( CultureInfo.InvariantCulture, "http add sslcert ipport=0.0.0.0:{0} certhash={1} appid={2:B}", DefaultHttpsServerPrefixUri.Port, UnitTestHelper.GetUnitTestSSLCertificate().Thumbprint, MockHttpServer.HttpsAppId)); if (proc.ExitCode != 0) { throw new InvalidOperationException(string.Format( CultureInfo.InvariantCulture, "Unable to add ssl certificate: {0}", proc.StandardOutput.ReadToEnd())); } } }