Skip to content

Commit b964fcd

Browse files
authored
[KeyVault] Refactor tests (#12797)
* don't use mgmt clients * remove unused code * remove useless comments
1 parent 260f054 commit b964fcd

File tree

4 files changed

+955
-166
lines changed

4 files changed

+955
-166
lines changed

src/KeyVault/KeyVault.Test/ScenarioTests/KeyVaultManagementTests.cs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ public void TestDeleteVault()
147147
public void TestSetRemoveAccessPolicyByObjectId()
148148
{
149149
string upn = "";
150-
_data.ResetPreCreatedVault();
151150

152151
KeyVaultManagementController controller = KeyVaultManagementController.NewInstance;
153152
controller.RunPsTestWorkflow(
@@ -168,7 +167,6 @@ public void TestSetRemoveAccessPolicyByObjectId()
168167
public void TestSetRemoveAccessPolicyByUPN()
169168
{
170169
string upn = "";
171-
_data.ResetPreCreatedVault();
172170
KeyVaultManagementController.NewInstance.RunPsTestWorkflow(
173171
_logger,
174172
() =>
@@ -187,7 +185,6 @@ public void TestSetRemoveAccessPolicyByCompoundId()
187185
{
188186
string upn = "";
189187
Guid? appId = null;
190-
_data.ResetPreCreatedVault();
191188

192189
KeyVaultManagementController controller = KeyVaultManagementController.NewInstance;
193190
controller.RunPsTestWorkflow(
@@ -211,7 +208,6 @@ public void TestRemoveAccessPolicyWithCompoundIdPolicies()
211208

212209
Guid? appId1 = null;
213210
Guid? appId2 = null;
214-
_data.ResetPreCreatedVault();
215211

216212
KeyVaultManagementController controller = KeyVaultManagementController.NewInstance;
217213
controller.RunPsTestWorkflow(
@@ -233,7 +229,6 @@ public void TestSetCompoundIdAccessPolicy()
233229
{
234230
string upn = "";
235231
Guid? appId = null;
236-
_data.ResetPreCreatedVault();
237232

238233
KeyVaultManagementController controller = KeyVaultManagementController.NewInstance;
239234
controller.RunPsTestWorkflow(
@@ -257,7 +252,6 @@ public void TestSetRemoveAccessPolicyBySPN()
257252
ServicePrincipal principal = null;
258253

259254
KeyVaultManagementController controller = KeyVaultManagementController.NewInstance;
260-
_data.ResetPreCreatedVault();
261255
controller.RunPsTestWorkflow(
262256
_logger,
263257
//script builder
@@ -288,7 +282,6 @@ public void TestModifyAccessPolicy()
288282
string upn = "";
289283

290284
KeyVaultManagementController controller = KeyVaultManagementController.NewInstance;
291-
_data.ResetPreCreatedVault();
292285

293286
controller.RunPsTestWorkflow(
294287
_logger,
@@ -310,7 +303,6 @@ public void TestModifyAccessPolicyEnabledForDeployment()
310303
{
311304
string upn = "";
312305

313-
_data.ResetPreCreatedVault();
314306
KeyVaultManagementController.NewInstance.RunPsTestWorkflow(
315307
_logger,
316308
() =>
@@ -330,7 +322,6 @@ public void TestModifyAccessPolicyEnabledForTemplateDeployment()
330322
{
331323
string upn = "";
332324

333-
_data.ResetPreCreatedVault();
334325
KeyVaultManagementController.NewInstance.RunPsTestWorkflow(
335326
_logger,
336327
() =>
@@ -349,7 +340,6 @@ public void TestModifyAccessPolicyEnabledForDiskEncryption()
349340
{
350341
string upn = "";
351342

352-
_data.ResetPreCreatedVault();
353343
KeyVaultManagementController.NewInstance.RunPsTestWorkflow(
354344
_logger,
355345
() =>
@@ -367,14 +357,11 @@ public void TestModifyAccessPolicyEnabledForDiskEncryption()
367357
[Trait(Category.AcceptanceType, Category.CheckIn)]
368358
public void TestModifyAccessPolicyNegativeCases()
369359
{
370-
string upn = "";
371-
372-
_data.ResetPreCreatedVault();
373360
KeyVaultManagementController.NewInstance.RunPsTestWorkflow(
374361
_logger,
375362
() =>
376363
{
377-
return new[] { string.Format("{0} {1} {2} {3}", "Test-ModifyAccessPolicyNegativeCases", _data.PreCreatedVault, _data.ResourceGroupName, upn) };
364+
return new[] { "Test-ModifyAccessPolicyNegativeCases" };
378365
},
379366
null,
380367
MethodBase.GetCurrentMethod().ReflectedType?.ToString(),
@@ -387,7 +374,6 @@ public void TestModifyAccessPolicyNegativeCases()
387374
public void TestRemoveNonExistentAccessPolicyDoesNotThrow()
388375
{
389376
string upn = "";
390-
_data.ResetPreCreatedVault();
391377

392378
KeyVaultManagementController controller = KeyVaultManagementController.NewInstance;
393379
controller.RunPsTestWorkflow(

src/KeyVault/KeyVault.Test/ScenarioTests/KeyVaultTestFixture.cs

Lines changed: 1 addition & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -12,144 +12,32 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15-
using Microsoft.Azure.Management.KeyVault;
16-
using Microsoft.Azure.Management.KeyVault.Models;
17-
using Microsoft.Azure.Test.HttpRecorder;
18-
using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
1915
using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
2016
using System;
21-
using System.Collections.Generic;
22-
using System.Diagnostics;
23-
using System.Linq;
24-
using Microsoft.Azure.Management.Internal.Resources;
25-
using Microsoft.Azure.Management.Internal.Resources.Models;
26-
using Sku = Microsoft.Azure.Management.KeyVault.Models.Sku;
2717

2818
namespace Microsoft.Azure.Commands.KeyVault.Test.ScenarioTests
2919
{
3020
public class KeyVaultTestFixture : RMTestBase, IDisposable
3121
{
32-
private readonly HttpRecorderMode _mode;
33-
3422
public string TagName { get; set; } = "testtag";
3523
public string TagValue { get; set; } = "testvalue";
3624

3725
public string ResourceGroupName { get; set; }
3826
public string Location { get; set; }
3927
public string PreCreatedVault { get; set; }
4028

41-
private bool _initialized;
4229
public KeyVaultTestFixture()
4330
{
44-
// Initialize has bug which causes null reference exception
45-
HttpMockServer.FileSystemUtilsObject = new FileSystemUtils();
46-
_mode = HttpMockServer.GetCurrentMode();
4731
}
4832

4933
public void Initialize(string className)
5034
{
51-
if (_initialized)
52-
return;
53-
54-
if (_mode == HttpRecorderMode.Record)
55-
{
56-
using (MockContext context = MockContext.Start(new StackTrace().GetFrame(1).GetMethod().ReflectedType?.ToString(), new StackTrace().GetFrame(1).GetMethod().Name))
57-
{
58-
var resourcesClient = context.GetServiceClient<ResourceManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
59-
var mgmtClient = context.GetServiceClient<KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
60-
var tenantId = TestEnvironmentFactory.GetTestEnvironment().Tenant;
61-
62-
//Figure out which locations are available for Key Vault
63-
Location = GetKeyVaultLocation(resourcesClient);
64-
65-
//Create a resource group in that location
66-
PreCreatedVault = TestUtilities.GenerateName("pshtestvault");
67-
ResourceGroupName = TestUtilities.GenerateName("pshtestrg");
68-
69-
resourcesClient.ResourceGroups.CreateOrUpdate(ResourceGroupName, new ResourceGroup { Location = Location });
70-
CreateVault(mgmtClient, Location, tenantId);
71-
}
72-
}
73-
74-
_initialized = true;
75-
}
76-
77-
private static string GetKeyVaultLocation(ResourceManagementClient resourcesClient)
78-
{
79-
var provider = resourcesClient.Providers.Get("Microsoft.KeyVault");
80-
var location = provider.ResourceTypes.First(resType => resType.ResourceType.Contains("vaults")).Locations.FirstOrDefault();
81-
return location?.ToLowerInvariant().Replace(" ", "");
35+
// no op
8236
}
8337

84-
private void CreateVault(KeyVaultManagementClient mgmtClient, string location, string tenantId)
85-
{
86-
mgmtClient.Vaults.CreateOrUpdate(
87-
ResourceGroupName,
88-
PreCreatedVault,
89-
new VaultCreateOrUpdateParameters
90-
{
91-
Location = location,
92-
Tags = new Dictionary<string, string> { { TagName, TagValue } },
93-
Properties = new VaultProperties
94-
{
95-
EnabledForDeployment = false,
96-
Sku = new Sku { Name = SkuName.Premium },
97-
TenantId = Guid.Parse(tenantId),
98-
VaultUri = "",
99-
AccessPolicies = new AccessPolicyEntry[]{ }
100-
}
101-
});
102-
}
103-
104-
public void ResetPreCreatedVault()
105-
{
106-
if (_mode == HttpRecorderMode.Record)
107-
{
108-
using (MockContext context = MockContext.Start(new StackTrace().GetFrame(1).GetMethod().ReflectedType?.ToString(), new StackTrace().GetFrame(1).GetMethod().Name))
109-
{
110-
var mgmtClient = context.GetServiceClient<KeyVaultManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
111-
var tenantId = Guid.Parse(TestEnvironmentFactory.GetTestEnvironment().Tenant);
112-
113-
var policies = new AccessPolicyEntry[] { };
114-
115-
mgmtClient.Vaults.CreateOrUpdate(
116-
ResourceGroupName,
117-
PreCreatedVault,
118-
new VaultCreateOrUpdateParameters
119-
{
120-
Location = Location,
121-
Tags = new Dictionary<string, string> { { TagName, TagValue } },
122-
Properties = new VaultProperties
123-
{
124-
EnabledForDeployment = false,
125-
Sku = new Sku { Name = SkuName.Premium },
126-
TenantId = tenantId,
127-
VaultUri = "",
128-
AccessPolicies = policies
129-
}
130-
});
131-
}
132-
}
133-
}
13438
public void Dispose()
13539
{
136-
Dispose(false);
13740
GC.SuppressFinalize(this);
13841
}
139-
140-
protected virtual void Dispose(bool disposing)
141-
{
142-
if (disposing)
143-
{
144-
if (_mode == HttpRecorderMode.Record && _initialized)
145-
{
146-
using (MockContext context = MockContext.Start(new StackTrace().GetFrame(1).GetMethod().ReflectedType?.ToString(), new StackTrace().GetFrame(1).GetMethod().Name))
147-
{
148-
var resourcesClient = context.GetServiceClient<ResourceManagementClient>(TestEnvironmentFactory.GetTestEnvironment());
149-
resourcesClient.ResourceGroups.Delete(ResourceGroupName);
150-
}
151-
}
152-
}
153-
}
15442
}
15543
}

src/KeyVault/KeyVault.Test/Scripts/ControlPlane/KeyVaultManagementTests.ps1

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -693,20 +693,32 @@ function Test-ModifyAccessPolicyEnabledForDiskEncryption {
693693
}
694694

695695
function Test-ModifyAccessPolicyNegativeCases {
696-
Param($existingVaultName, $rgName, $objId)
696+
$objId = "" # INTENTIONAL
697+
$rgName = getAssetName
698+
$vaultName = getAssetName
699+
$rgLocation = Get-Location "Microsoft.Resources" "resourceGroups" "West US"
700+
$vaultLocation = Get-Location "Microsoft.KeyVault" "vault" "West US"
701+
New-AzResourceGroup -Name $rgName -Location $rgLocation
697702

698-
# random string in perms
699-
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToSecrets blah, get }
700-
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToCertificates blah, get }
701-
702-
# invalid set of params
703-
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName }
704-
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName }
705-
Assert-Throws { Remove-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName }
706-
Assert-Throws { Remove-AzKeyVaultAccessPolicy -VaultName $existingVaultName }
707-
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -UserPrincipalName $objId }
708-
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -SPN $objId }
709-
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId }
703+
try {
704+
New-AzKeyVault -Name $vaultName -ResourceGroupName $rgName -Location $vaultLocation
705+
706+
# random string in perms
707+
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToSecrets blah, get }
708+
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToCertificates blah, get }
709+
710+
# invalid set of params
711+
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName }
712+
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName }
713+
Assert-Throws { Remove-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName }
714+
Assert-Throws { Remove-AzKeyVaultAccessPolicy -VaultName $existingVaultName }
715+
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -UserPrincipalName $objId }
716+
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -SPN $objId }
717+
Assert-Throws { Set-AzKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId }
718+
}
719+
finally {
720+
Remove-AzResourceGroup -Name $rgName -Force
721+
}
710722
}
711723

712724
function Test-RemoveNonExistentAccessPolicyDoesNotThrow {

0 commit comments

Comments
 (0)