Skip to content

Commit f8dae11

Browse files
committed
Updating tests to create MI in test setup
Reviving old server tests
1 parent 6f00db9 commit f8dae11

12 files changed

+219
-107
lines changed

src/Sql/Sql.Test/ScenarioTests/Common.ps1

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -308,11 +308,11 @@ function Get-SqlServerKeyVaultKeyTestEnvironmentParameters ()
308308
return @{ rgName = Get-ResourceGroupName;
309309
serverName = Get-ServerName;
310310
databaseName = Get-DatabaseName;
311-
keyId = "https://akvtdekeyvault.vault.azure.net/keys/key1/51c2fab9ff3c4a17aab4cd51b932b106";
312-
serverKeyName = "akvtdekeyvault_key1_51c2fab9ff3c4a17aab4cd51b932b106";
313-
vaultName = "akvtdekeyvault";
311+
keyId = "https://akvtdekeyvaultcl.vault.azure.net/keys/key1/738a177a3b0d45e98d366fdf738840e8";
312+
serverKeyName = "akvtdekeyvaultcl_key1_738a177a3b0d45e98d366fdf738840e8";
313+
vaultName = "akvtdekeyvaultcl";
314314
keyName = "key1"
315-
location = "southeastasia";
315+
location = "westcentralus";
316316
}
317317
}
318318

@@ -330,17 +330,47 @@ function Create-ServerKeyVaultKeyTestEnvironment ($params)
330330
<#[SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Test passwords only valid for the duration of the test")]#>
331331
$serverPassword = "t357ingP@s5w0rd!"
332332
$credentials = new-object System.Management.Automation.PSCredential($serverLogin, ($serverPassword | ConvertTo-SecureString -asPlainText -Force))
333-
$server = New-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $params.serverName -Location $params.location -ServerVersion "12.0" -SqlAdministratorCredentials $credentials
333+
$server = New-AzSqlServer -ResourceGroupName $rg.ResourceGroupName -ServerName $params.serverName -Location $params.location -ServerVersion "12.0" -SqlAdministratorCredentials $credentials -AssignIdentity
334334
Assert-AreEqual $server.ServerName $params.serverName
335335

336336
# Create database
337337
$db = New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $params.databaseName
338338
Assert-AreEqual $db.DatabaseName $params.databaseName
339339

340+
#Set permissions on key Vault
341+
Set-AzKeyVaultAccessPolicy -VaultName $params.vaultName -ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, list, wrapKey, unwrapKey
342+
340343
# Return the created resource group
341344
return $rg
342345
}
343346

347+
348+
<#
349+
.SYNOPSIS
350+
Creates test managed instance
351+
#>
352+
function Get-ManagedInstanceForTdeTest ($params)
353+
{
354+
# Setup
355+
$rg = Create-ResourceGroupForTest
356+
$vnetName = "cl_initial"
357+
$subnetName = "Cool"
358+
359+
# Setup VNET
360+
$virtualNetwork1 = CreateAndGetVirtualNetworkForManagedInstance $vnetName $subnetName $rg.Location
361+
$subnetId = $virtualNetwork1.Subnets.where({ $_.Name -eq $subnetName })[0].Id
362+
363+
$managedInstance = Create-ManagedInstanceForTest $rg $subnetId
364+
Set-AzKeyVaultAccessPolicy -VaultName $params.vaultName -ObjectId $managedInstance.Identity.PrincipalId -PermissionsToKeys get, list, wrapKey, unwrapKey
365+
366+
# $mangedInstanceRg = "BenjinResourceGroup"
367+
# $managedInstanceName = "benjinmitest"
368+
#
369+
# $managedInstance = Get-AzSqlInstance -Name $managedInstanceName -ResourceGroupName $mangedInstanceRg
370+
371+
return $managedInstance
372+
}
373+
344374
<#
345375
.SYNOPSIS
346376
Gets valid resource group name
@@ -705,7 +735,7 @@ function Create-ManagedInstanceForTest ($resourceGroup, $subnetId)
705735

706736
$managedInstance = New-AzSqlInstance -ResourceGroupName $resourceGroup.ResourceGroupName -Name $managedInstanceName `
707737
-Location $resourceGroup.Location -AdministratorCredential $credentials -SubnetId $subnetId `
708-
-Vcore $vCore -SkuName $skuName
738+
-Vcore $vCore -SkuName $skuName -AssignIdentity
709739

710740
return $managedInstance
711741
}

src/Sql/Sql.Test/ScenarioTests/ManagedInstanceKeyVaultKeyTests.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using Microsoft.WindowsAzure.Commands.ScenarioTest;
1717
using Xunit;
1818
using Xunit.Abstractions;
19+
using RestTestFramework = Microsoft.Rest.ClientRuntime.Azure.TestFramework;
1920

2021
namespace Microsoft.Azure.Commands.Sql.Test.ScenarioTests
2122
{
@@ -25,6 +26,16 @@ public ManagedInstanceKeyVaultKeyTests(ITestOutputHelper output) : base(output)
2526
{
2627
}
2728

29+
protected override void SetupManagementClients(RestTestFramework.MockContext context)
30+
{
31+
var sqlClient = GetSqlClient(context);
32+
var newResourcesClient = GetResourcesClient(context);
33+
var graphClient = GetGraphClient(context);
34+
var networkClient = GetNetworkClient(context);
35+
var keyVaultClient = GetKeyVaultClient(context);
36+
Helper.SetupSomeOfManagementClients(sqlClient, newResourcesClient, networkClient, graphClient, keyVaultClient);
37+
}
38+
2839
[Fact]
2940
[Trait(Category.AcceptanceType, Category.CheckIn)]
3041
public void TestManagedInstanceKeyVaultKeyCI()

src/Sql/Sql.Test/ScenarioTests/ManagedInstanceKeyVaultKeyTests.ps1

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,31 @@
1111
# See the License for the specific language governing permissions and
1212
# limitations under the License.
1313
# ----------------------------------------------------------------------------------
14-
15-
# A managed instance can be provisioned using instructions here https://docs.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-get-started
16-
# currently this takes about 2-3 hours
17-
$mangedInstanceRg = "BenjinResourceGroup"
18-
$managedInstanceName = "benjinmitest"
19-
$keyVaultName = "mitest-eus-doNotDelete"
20-
$keyName = "mitest-key"
21-
$keyId = "https://mitest-eus-donotdelete.vault.azure.net/keys/mitest-key/6dc78e98a3274d87bd847436dd34045e"
22-
$keyVersion = "6dc78e98a3274d87bd847436dd34045e"
23-
$tdeKeyName = $keyVaultName + "_" + $keyName + "_" + $keyVersion
24-
2514

2615
<#
2716
.SYNOPSIS
2817
Tests for managing TDE keyVaultKey in managed instance for continuous validation
2918
#>
3019
function Test-ManagedInstanceKeyVaultKeyCI
3120
{
32-
33-
$managedInstance = Get-AzSqlInstance -Name $managedInstanceName -ResourceGroupName $mangedInstanceRg
21+
$params = Get-SqlServerKeyVaultKeyTestEnvironmentParameters
22+
$managedInstance = Get-ManagedInstanceForTdeTest $params
23+
$mangedInstanceRg = $managedInstance.ResourceGroupName
24+
$managedInstanceName = $managedInstance.ManagedInstanceName
3425
$managedInstanceResourceId = $managedInstance.Id
3526

3627
# Test Add
37-
$keyResult = Add-AzSqlInstanceKeyVaultKey -ResourceGroupName $mangedInstanceRg -InstanceName $managedInstanceName -KeyId $keyId
28+
$keyResult = Add-AzSqlInstanceKeyVaultKey -ResourceGroupName $mangedInstanceRg -InstanceName $managedInstanceName -KeyId $params.keyId
3829

39-
Assert-AreEqual $keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
40-
Assert-AreEqual $tdeKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
30+
Assert-AreEqual $params.keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
31+
Assert-AreEqual $params.serverKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
4132

4233

4334
# Test Get
44-
$keyResult2 = $managedInstance | Get-AzSqlInstanceKeyVaultKey -KeyId $keyId
35+
$keyResult2 = $managedInstance | Get-AzSqlInstanceKeyVaultKey -KeyId $params.keyId
4536

46-
Assert-AreEqual $keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
47-
Assert-AreEqual $tdeKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
37+
Assert-AreEqual $params.keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
38+
Assert-AreEqual $params.serverKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
4839

4940
# Test List
5041
$keyResults = Get-AzSqlInstanceKeyVaultKey -InstanceResourceId $managedInstanceResourceId
@@ -57,18 +48,23 @@ function Test-ManagedInstanceKeyVaultKeyCI
5748
#>
5849
function Test-ManagedInstanceKeyVaultKey
5950
{
51+
$params = Get-SqlServerKeyVaultKeyTestEnvironmentParameters
52+
$managedInstance = Get-ManagedInstanceForTdeTest $params
53+
$mangedInstanceRg = $managedInstance.ResourceGroupName
54+
$managedInstanceName = $managedInstance.ManagedInstanceName
55+
6056
# Test Add
61-
$keyResult = Add-AzSqlInstanceKeyVaultKey -ResourceGroupName $mangedInstanceRg -InstanceName $managedInstanceName -KeyId $keyId
57+
$keyResult = Add-AzSqlInstanceKeyVaultKey -ResourceGroupName $mangedInstanceRg -InstanceName $managedInstanceName -KeyId $params.keyId
6258

63-
Assert-AreEqual $keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
64-
Assert-AreEqual $tdeKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
59+
Assert-AreEqual $params.keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
60+
Assert-AreEqual $params.serverKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
6561

6662

6763
# Test Get
68-
$keyResult2 = Get-AzSqlInstanceKeyVaultKey -ResourceGroupName $mangedInstanceRg -InstanceName $managedInstanceName -KeyId $keyId
64+
$keyResult2 = Get-AzSqlInstanceKeyVaultKey -ResourceGroupName $mangedInstanceRg -InstanceName $managedInstanceName -KeyId $params.keyId
6965

70-
Assert-AreEqual $keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
71-
Assert-AreEqual $tdeKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
66+
Assert-AreEqual $params.keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
67+
Assert-AreEqual $params.serverKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
7268

7369
# Test List
7470
$keyResults = Get-AzSqlInstanceKeyVaultKey -ResourceGroupName $mangedInstanceRg -InstanceName $managedInstanceName
@@ -82,20 +78,23 @@ function Test-ManagedInstanceKeyVaultKey
8278
#>
8379
function Test-ManagedInstanceKeyVaultKeyInputObject
8480
{
85-
$managedInstance = Get-AzSqlInstance -Name $managedInstanceName -ResourceGroupName $mangedInstanceRg
81+
$params = Get-SqlServerKeyVaultKeyTestEnvironmentParameters
82+
$managedInstance = Get-ManagedInstanceForTdeTest $params
83+
$mangedInstanceRg = $managedInstance.ResourceGroupName
84+
$managedInstanceName = $managedInstance.ManagedInstanceName
8685

8786
# Test Add
88-
$keyResult = Add-AzSqlInstanceKeyVaultKey -Instance $managedInstance -KeyId $keyId
87+
$keyResult = Add-AzSqlInstanceKeyVaultKey -Instance $managedInstance -KeyId $params.keyId
8988

90-
Assert-AreEqual $keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
91-
Assert-AreEqual $tdeKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
89+
Assert-AreEqual $params.keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
90+
Assert-AreEqual $params.serverKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
9291

9392

9493
# Test Get
95-
$keyResult2 = Get-AzSqlInstanceKeyVaultKey -Instance $managedInstance -KeyId $keyId
94+
$keyResult2 = Get-AzSqlInstanceKeyVaultKey -Instance $managedInstance -KeyId $params.keyId
9695

97-
Assert-AreEqual $keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
98-
Assert-AreEqual $tdeKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
96+
Assert-AreEqual $params.keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
97+
Assert-AreEqual $params.serverKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
9998

10099

101100
# Test List
@@ -111,21 +110,24 @@ function Test-ManagedInstanceKeyVaultKeyInputObject
111110
#>
112111
function Test-ManagedInstanceKeyVaultKeyResourceId
113112
{
114-
$managedInstance = Get-AzSqlInstance -Name $managedInstanceName -ResourceGroupName $mangedInstanceRg
113+
$params = Get-SqlServerKeyVaultKeyTestEnvironmentParameters
114+
$managedInstance = Get-ManagedInstanceForTdeTest $params
115+
$mangedInstanceRg = $managedInstance.ResourceGroupName
116+
$managedInstanceName = $managedInstance.ManagedInstanceName
115117
$managedInstanceResourceId = $managedInstance.Id
116118

117119
# Test Add
118-
$keyResult = Add-AzSqlInstanceKeyVaultKey -InstanceResourceId $managedInstanceResourceId -KeyId $keyId
120+
$keyResult = Add-AzSqlInstanceKeyVaultKey -InstanceResourceId $managedInstanceResourceId -KeyId $params.keyId
119121

120-
Assert-AreEqual $keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
121-
Assert-AreEqual $tdeKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
122+
Assert-AreEqual $params.keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
123+
Assert-AreEqual $params.serverKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
122124

123125

124126
# Test Get
125-
$keyResult2 = Get-AzSqlInstanceKeyVaultKey -InstanceResourceId $managedInstanceResourceId -KeyId $keyId
127+
$keyResult2 = Get-AzSqlInstanceKeyVaultKey -InstanceResourceId $managedInstanceResourceId -KeyId $params.keyId
126128

127-
Assert-AreEqual $keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
128-
Assert-AreEqual $tdeKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
129+
Assert-AreEqual $params.keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
130+
Assert-AreEqual $params.serverKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
129131

130132

131133
# Test List
@@ -141,20 +143,23 @@ function Test-ManagedInstanceKeyVaultKeyResourceId
141143
#>
142144
function Test-ManagedInstanceKeyVaultKeyPiping
143145
{
144-
$managedInstance = Get-AzSqlInstance -Name $managedInstanceName -ResourceGroupName $mangedInstanceRg
146+
$params = Get-SqlServerKeyVaultKeyTestEnvironmentParameters
147+
$managedInstance = Get-ManagedInstanceForTdeTest $params
148+
$mangedInstanceRg = $managedInstance.ResourceGroupName
149+
$managedInstanceName = $managedInstance.ManagedInstanceName
145150

146151
# Test Add
147-
$keyResult = $managedInstance | Add-AzSqlInstanceKeyVaultKey -KeyId $keyId
152+
$keyResult = $managedInstance | Add-AzSqlInstanceKeyVaultKey -KeyId $params.keyId
148153

149-
Assert-AreEqual $keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
150-
Assert-AreEqual $tdeKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
154+
Assert-AreEqual $params.keyId $keyResult.KeyId "KeyId mismatch after calling Add-AzSqlInstanceKeyVaultKey"
155+
Assert-AreEqual $params.serverKeyName $keyResult.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Add-AzSqlInstanceKeyVaultKey"
151156

152157

153158
# Test Get
154-
$keyResult2 = $managedInstance | Get-AzSqlInstanceKeyVaultKey -KeyId $keyId
159+
$keyResult2 = $managedInstance | Get-AzSqlInstanceKeyVaultKey -KeyId $params.keyId
155160

156-
Assert-AreEqual $keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
157-
Assert-AreEqual $tdeKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
161+
Assert-AreEqual $params.keyId $keyResult2.KeyId "KeyId mismatch after calling Get-AzSqlInstanceKeyVaultKey"
162+
Assert-AreEqual $params.serverKeyName $keyResult2.ManagedInstanceKeyName "ManagedInstanceKeyName mismatch after calling Get-AzSqlInstanceKeyVaultKey"
158163

159164

160165
# Test List

src/Sql/Sql.Test/ScenarioTests/ManagedInstanceProtectorTests.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using Microsoft.WindowsAzure.Commands.ScenarioTest;
1717
using Xunit;
1818
using Xunit.Abstractions;
19+
using RestTestFramework = Microsoft.Rest.ClientRuntime.Azure.TestFramework;
1920

2021
namespace Microsoft.Azure.Commands.Sql.Test.ScenarioTests
2122
{
@@ -25,6 +26,16 @@ public ManagedInstanceProtectorTests(ITestOutputHelper output) : base(output)
2526
{
2627
}
2728

29+
protected override void SetupManagementClients(RestTestFramework.MockContext context)
30+
{
31+
var sqlClient = GetSqlClient(context);
32+
var newResourcesClient = GetResourcesClient(context);
33+
var graphClient = GetGraphClient(context);
34+
var networkClient = GetNetworkClient(context);
35+
var keyVaultClient = GetKeyVaultClient(context);
36+
Helper.SetupSomeOfManagementClients(sqlClient, newResourcesClient, networkClient, graphClient, keyVaultClient);
37+
}
38+
2839
[Fact]
2940
[Trait(Category.AcceptanceType, Category.CheckIn)]
3041
public void TestSetGetManagedInstanceEncryptionProtectorCI()

0 commit comments

Comments
 (0)