public void Initialize(string className)
        {
            if (initialized)
                return;

            if (mode == HttpRecorderMode.Record)
            {
                using (MockContext context = MockContext.Start(TestUtilities.GetCallingClass(), TestUtilities.GetCurrentMethodName(1)))
                {
                    var testFactory = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient<ResourceManagementClient>(testFactory);
                    var mgmtClient = context.GetServiceClient<KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
                    var tenantId = testEnv.AuthorizationContext.TenantId;

                    //Figure out which locations are available for Key Vault
                    location = GetKeyVaultLocation(resourcesClient);

                    //Create a resource group in that location
                    preCreatedVault = TestUtilities.GenerateName("pshtestvault");
                    resourceGroupName = TestUtilities.GenerateName("pshtestrg");

                    resourcesClient.ResourceGroups.CreateOrUpdate(resourceGroupName, new ResourceGroup { Location = location });
                    var createResponse = CreateVault(mgmtClient, location, tenantId);
                }
            }

            initialized = true;
        }
        public void Initialize(string className)
        {
            if (initialized)
            {
                return;
            }

            if (mode == HttpRecorderMode.Record)
            {
                using (MockContext context = MockContext.Start(TestUtilities.GetCallingClass(), TestUtilities.GetCurrentMethodName(1)))
                {
                    var testFactory     = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv         = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient <ResourceManagementClient>(testFactory);
                    var mgmtClient      = context.GetServiceClient <KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
                    var tenantId        = testEnv.AuthorizationContext.TenantId;

                    //Figure out which locations are available for Key Vault
                    location = GetKeyVaultLocation(resourcesClient);

                    //Create a resource group in that location
                    preCreatedVault   = TestUtilities.GenerateName("pshtestvault");
                    resourceGroupName = TestUtilities.GenerateName("pshtestrg");

                    resourcesClient.ResourceGroups.CreateOrUpdate(resourceGroupName, new ResourceGroup {
                        Location = location
                    });
                    var createResponse = CreateVault(mgmtClient, location, tenantId);
                }
            }

            initialized = true;
        }
        protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (mode == HttpRecorderMode.Record && initialized)
                {
                    var testFactory     = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv         = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient <ResourceManagementClient>(testFactory);

                    resourcesClient.ResourceGroups.Delete(resourceGroupName);
                }
            }
        }
        public void ResetPreCreatedVault()
        {
            if (mode == HttpRecorderMode.Record)
            {
                using (MockContext context = MockContext.Start(TestUtilities.GetCallingClass(), TestUtilities.GetCurrentMethodName(1)))
                {
                    var testFactory     = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv         = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient <ResourceManagementClient>(testFactory);
                    var mgmtClient      = context.GetServiceClient <KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
                    var tenantId        = Guid.Parse(testEnv.AuthorizationContext.TenantId);

                    var policies = new AccessPolicyEntry[] { };

                    mgmtClient.Vaults.CreateOrUpdate(
                        resourceGroupName: resourceGroupName,
                        vaultName: preCreatedVault,
                        parameters: new VaultCreateOrUpdateParameters
                    {
                        Location = location,
                        Tags     = new Dictionary <string, string> {
                            { tagName, tagValue }
                        },
                        Properties = new VaultProperties
                        {
                            EnabledForDeployment = false,
                            Sku = new Sku {
                                Name = SkuName.Premium
                            },
                            TenantId       = tenantId,
                            VaultUri       = "",
                            AccessPolicies = policies
                        }
                    }
                        );
                }
            }
        }
        public void ResetPreCreatedVault()
        {
            if (mode == HttpRecorderMode.Record)
            {
                using (MockContext context = MockContext.Start(TestUtilities.GetCallingClass(), TestUtilities.GetCurrentMethodName(1)))
                {
                    var testFactory = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient<ResourceManagementClient>(testFactory);
                    var mgmtClient = context.GetServiceClient<KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
                    var tenantId = Guid.Parse(testEnv.AuthorizationContext.TenantId);

                    var policies = new AccessPolicyEntry[] { };

                    mgmtClient.Vaults.CreateOrUpdate(
                    resourceGroupName: resourceGroupName,
                    vaultName: preCreatedVault,
                    parameters: new VaultCreateOrUpdateParameters
                    {
                        Location = location,
                        Tags = new Dictionary<string, string> { { tagName, tagValue } },
                        Properties = new VaultProperties
                        {
                            EnabledForDeployment = false,
                            Sku = new Sku { Name = SkuName.Premium },
                            TenantId = tenantId,
                            VaultUri = "",
                            AccessPolicies = policies
                        }
                    }
                    );
                }
            }
        }
        protected virtual void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (mode == HttpRecorderMode.Record && initialized)
                {
                    var testFactory = new LegacyTest.CSMTestEnvironmentFactory();
                    var testEnv = testFactory.GetTestEnvironment();
                    var resourcesClient = LegacyTest.TestBase.GetServiceClient<ResourceManagementClient>(testFactory);

                    resourcesClient.ResourceGroups.Delete(resourceGroupName);
                }
            }
        }