Skip to content

Commit 6f04587

Browse files
author
Khushboo Baheti
committed
tests
1 parent 597e261 commit 6f04587

File tree

3 files changed

+106
-5
lines changed

3 files changed

+106
-5
lines changed

src/Network/Network.Test/ScenarioTests/VirtualNetworkGatewayConnectionTests.ps1

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -420,11 +420,13 @@ function Test-VirtualNetworkGatewayConnectionCRUD
420420

421421
# Create VirtualNetworkGateway
422422
$vnetIpConfig = New-AzVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName -PublicIpAddress $publicip -Subnet $subnet
423-
424-
$actual = New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -EnableBgp $false
423+
$natRule1 = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -Type "Static" -Mode "IngressSnat" -InternalMapping @("25.0.0.0/16") -ExternalMapping @("30.0.0.0/16")
424+
$natRule2 = New-AzVirtualNetworkGatewayNatRule -Name "natRule2" -Type "Static" -Mode "EgressSnat" -InternalMapping @("20.0.0.0/16") -ExternalMapping @("50.0.0.0/16")
425+
$actual = New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw2 -NaRule $natRule1,$natRule2
425426
$vnetGateway = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname
426427
Assert-AreEqual $vnetGateway.ResourceGroupName $actual.ResourceGroupName
427-
Assert-AreEqual $vnetGateway.Name $actual.Name
428+
Assert-AreEqual $vnetGateway.Name $actual.Name
429+
Assert-AreEqual 2 @($vnetGateway.NatRules).Count
428430
#Assert-AreEqual "Vpn" $expected.GatewayType
429431
#Assert-AreEqual "RouteBased" $expected.VpnType
430432

@@ -437,8 +439,12 @@ function Test-VirtualNetworkGatewayConnectionCRUD
437439
Assert-AreEqual "192.168.0.0/16" $localnetGateway.LocalNetworkAddressSpace.AddressPrefixes[0]
438440
$localnetGateway.Location = $location
439441

442+
# Get VirtualNetworkGatewayNatRules
443+
$natRule1 = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -ResourceGroupName $rgname -ParentResourceName $rname
444+
$natRule2 = New-AzVirtualNetworkGatewayNatRule -Name "natRule2" -ResourceGroupName $rgname -ParentResourceName $rname
445+
440446
# Create & Get VirtualNetworkGatewayConnection
441-
$actual = New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName -location $location -VirtualNetworkGateway1 $vnetGateway -LocalNetworkGateway2 $localnetGateway -ConnectionType IPsec -RoutingWeight 3 -SharedKey abc -ConnectionProtocol IKEv1 -ConnectionMode "Default"
447+
$actual = New-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName -location $location -VirtualNetworkGateway1 $vnetGateway -LocalNetworkGateway2 $localnetGateway -ConnectionType IPsec -RoutingWeight 3 -SharedKey abc -ConnectionProtocol IKEv1 -ConnectionMode "Default" -IngressNatRule $natRule1 -EgressNatRule $natRule2
442448
$expected = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName
443449
Assert-AreEqual $expected.ResourceGroupName $actual.ResourceGroupName
444450
Assert-AreEqual $expected.Name $actual.Name
@@ -447,6 +453,8 @@ function Test-VirtualNetworkGatewayConnectionCRUD
447453
Assert-AreEqual "IKEv1" $expected.ConnectionProtocol
448454
#Assert-AreEqual "abc" $expected.SharedKey
449455
Assert-AreEqual $expected.ConnectionMode $actual.ConnectionMode
456+
Assert-AreEqual 1 @($expected.IngressNatRules).Count
457+
Assert-AreEqual 1 @($expected.EgressNatRules).Count
450458

451459
# List VirtualNetworkGatewayConnections
452460
$list = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname
@@ -467,11 +475,12 @@ function Test-VirtualNetworkGatewayConnectionCRUD
467475
$expected.ConnectionMode = "ResponderOnly"
468476

469477
# Set/Update VirtualNetworkGatewayConnection Tags
470-
$actual = Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $expected -Tag @{ testtagKey="SomeTagKey"; testtagValue="SomeKeyValue" } -Force
478+
$actual = Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $expected -IngressNatRule @() -Tag @{ testtagKey="SomeTagKey"; testtagValue="SomeKeyValue" } -Force
471479
$expected = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName $rgname -name $vnetConnectionName
472480
Assert-AreEqual 2 $expected.Tag.Count
473481
Assert-AreEqual $true $expected.Tag.Contains("testtagKey")
474482
Assert-AreEqual $expected.ConnectionMode $actual.ConnectionMode
483+
Assert-AreEqual 0 $expected.IngressNatRules.Count
475484

476485
# Delete VirtualNetworkGatewayConnection
477486
$delete = Remove-AzVirtualNetworkGatewayConnection -ResourceGroupName $actual.ResourceGroupName -name $vnetConnectionName -PassThru -Force

src/Network/Network.Test/ScenarioTests/VirtualNetworkGatewayTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,5 +147,13 @@ public void TestDisconnectVirtualNetworkGatewayVpnConnection()
147147
{
148148
TestRunner.RunTestScript("Test-DisconnectVNGVpnConnection");
149149
}
150+
151+
[Fact]
152+
[Trait(Category.AcceptanceType, Category.CheckIn)]
153+
[Trait(Category.Owner, NrpTeamAlias.brooklynft_subset2)]
154+
public void TestVirtualNetworkGatewayNatRuleCRUD()
155+
{
156+
TestRunner.RunTestScript("Test-VirtualNetworkGatewayNatRuleCRUD");
157+
}
150158
}
151159
}

src/Network/Network.Test/ScenarioTests/VirtualNetworkGatewayTests.ps1

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,3 +1241,87 @@ function Test-DisconnectVNGVpnConnection
12411241
Clean-ResourceGroup $rgname
12421242
}
12431243
}
1244+
1245+
<#
1246+
.SYNOPSIS
1247+
Virtual network gateway NatRule tests
1248+
#>
1249+
function Test-VirtualNetworkGatewayNatRuleCRUD
1250+
{
1251+
# Setup
1252+
$rgname = Get-ResourceGroupName
1253+
$rname = Get-ResourceName
1254+
$domainNameLabel = Get-ResourceName
1255+
$vnetName = Get-ResourceName
1256+
$publicIpName = Get-ResourceName
1257+
$vnetGatewayConfigName = Get-ResourceName
1258+
$rglocation = Get-ProviderLocation ResourceManagement
1259+
$resourceTypeParent = "Microsoft.Network/virtualNetworkGateways"
1260+
$location = Get-ProviderLocation $resourceTypeParent
1261+
1262+
try
1263+
{
1264+
# Create the resource group
1265+
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $rglocation -Tags @{ testtag = "testval" }
1266+
1267+
# Create the Virtual Network
1268+
$subnet = New-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -AddressPrefix 10.0.0.0/24
1269+
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet
1270+
$vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname
1271+
$subnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
1272+
1273+
# Create the publicip
1274+
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Dynamic -DomainNameLabel $domainNameLabel
1275+
1276+
# Create & Get virtualnetworkgateway with NatRules
1277+
$vnetIpConfig = New-AzVirtualNetworkGatewayIpConfig -Name $vnetGatewayConfigName -PublicIpAddress $publicip -Subnet $subnet
1278+
$ipconfigurationId = $vnetIpConfig.id
1279+
$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule1" -Type "Static" -Mode "IngressSnat" -InternalMapping @("25.0.0.0/16") -ExternalMapping @("30.0.0.0/16")
1280+
$job = New-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -location $location -IpConfigurations $vnetIpConfig -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw2 -NatRule $natRule -EnableBgpRouteTranslationForNatFlag -AsJob
1281+
$job | Wait-Job
1282+
$actual = $job | Receive-Job
1283+
$expected = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname
1284+
Assert-AreEqual $expected.ResourceGroupName $actual.ResourceGroupName
1285+
Assert-AreEqual $expected.Name $actual.Name
1286+
Assert-AreEqual "Vpn" $expected.GatewayType
1287+
Assert-AreEqual "RouteBased" $expected.VpnType
1288+
Assert-AreEqual 1 @($expected.NatRules).Count
1289+
1290+
# Updates & Get virtualnetworkgateway with NatRules
1291+
$gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $rgname -name $rname
1292+
$vngNatRules = $gateway.NatRules
1293+
$natRule = New-AzVirtualNetworkGatewayNatRule -Name "natRule2" -Type "Static" -Mode "EgressSnat" -InternalMapping @("20.0.0.0/16") -ExternalMapping @("50.0.0.0/16")
1294+
$vngNatRules.Add($natrule)
1295+
$updatedGateway = Set-AzVirtualNetworkGateway -VirtualNetworkGateway $gateway -NatRule $vngNatRules
1296+
Assert-AreEqual 2 @($updatedGateway.NatRules).Count
1297+
1298+
# List virtualNetworkGateways NatRules
1299+
$list = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName $rgname -ParentResourceName $rname
1300+
Assert-AreEqual 2 @($list).Count
1301+
1302+
# update virtualNetworkGateways NatRule
1303+
$natrule = Get-AzVirtualNetworkGatewayNatRule -ResourceGroupName $rgname -ParentResourceName $rname -Name "natRule2"
1304+
$updatedNatRule = Update-AzVirtualNetworkGatewayNatRule -InputObject $natrule -ExternalMapping @("40.0.0.0/16")
1305+
Assert-AreEqual "Succeeded" $updatedNatRule.ProvisioningState
1306+
1307+
# Delete virtualNetworkGatewayNatRules
1308+
$job = Remove-AzVirtualNetworkGatewayNatRule -ResourceGroupName $rgname -ParentResourceName $rname -Name natRule1 -PassThru -Force -AsJob
1309+
$job | Wait-Job
1310+
$delete = $job | Receive-Job
1311+
Assert-AreEqual true $delete
1312+
1313+
# Delete virtualNetworkGateway
1314+
$job = Remove-AzVirtualNetworkGateway -ResourceGroupName $actual.ResourceGroupName -name $rname -PassThru -Force -AsJob
1315+
$job | Wait-Job
1316+
$delete = $job | Receive-Job
1317+
Assert-AreEqual true $delete
1318+
1319+
$list = Get-AzVirtualNetworkGateway -ResourceGroupName $actual.ResourceGroupName
1320+
Assert-AreEqual 0 @($list).Count
1321+
}
1322+
finally
1323+
{
1324+
# Cleanup
1325+
Clean-ResourceGroup $rgname
1326+
}
1327+
}

0 commit comments

Comments
 (0)