Skip to content

Commit 8ede4f0

Browse files
committed
Add niclb tests
1 parent a0de473 commit 8ede4f0

File tree

4 files changed

+3461
-0
lines changed

4 files changed

+3461
-0
lines changed

src/ResourceManager/Network/Commands.Network.Test/Commands.Network.Test.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,9 @@
189189
<None Include="SessionRecords\Commands.Network.Test.ScenarioTests.LoadBalancerTests\TestLoadBalancerCRUDPublicUsingId.json">
190190
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
191191
</None>
192+
<None Include="SessionRecords\Commands.Network.Test.ScenarioTests.LoadBalancerTests\TestLoadBalancerNicAssociation.json">
193+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
194+
</None>
192195
<None Include="SessionRecords\Commands.Network.Test.ScenarioTests.NetworkInterfaceTests\TestNetworkInterfaceCRUDStaticAllocation.json">
193196
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
194197
</None>

src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/LoadBalancerTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,12 @@ public void TestCreateEmptyLoadBalancer()
8888
{
8989
NetworkResourcesController.NewInstance.RunPsTest("Test-CreateEmptyLoadBalancer");
9090
}
91+
92+
[Fact]
93+
[Trait(Category.AcceptanceType, Category.CheckIn)]
94+
public void TestLoadBalancerNicAssociation()
95+
{
96+
NetworkResourcesController.NewInstance.RunPsTest("Test-LoadBalancer-NicAssociation");
97+
}
9198
}
9299
}

src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/LoadBalancerTests.ps1

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,3 +935,97 @@ function Test-CreateEmptyLoadBalancer
935935
Clean-ResourceGroup $rgname
936936
}
937937
}
938+
939+
<#
940+
.SYNOPSIS
941+
Tests creating a Load balancer with NIC references
942+
#>
943+
function Test-LoadBalancer-NicAssociation
944+
{
945+
# Setup
946+
$rgname = Get-ResourceGroupName
947+
$vnetName = Get-ResourceName
948+
$subnetName = Get-ResourceName
949+
$publicIpName = Get-ResourceName
950+
$lbName = Get-ResourceName
951+
$frontendName = Get-ResourceName
952+
$backendAddressPoolName = Get-ResourceName
953+
$probeName = Get-ResourceName
954+
$inboundNatRuleName1 = Get-ResourceName
955+
$inboundNatRuleName2 = Get-ResourceName
956+
$lbruleName = Get-ResourceName
957+
$nicname1 = Get-ResourceName
958+
$nicname2 = Get-ResourceName
959+
$nicname3 = Get-ResourceName
960+
$rglocation = Get-ProviderLocation ResourceManagement
961+
$resourceTypeParent = "Microsoft.Network/loadBalancers"
962+
$location = Get-ProviderLocation $resourceTypeParent
963+
964+
try
965+
{
966+
# Create the resource group
967+
$resourceGroup = New-AzureResourceGroup -Name $rgname -Location $rglocation -Tags @{Name = "testtag"; Value = "testval"}
968+
969+
# Create the Virtual Network
970+
$subnet = New-AzureVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.1.0/24
971+
$vnet = New-AzurevirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $subnet
972+
973+
# Create the publicip
974+
$publicip = New-AzurePublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Dynamic
975+
976+
# Create LoadBalancer
977+
$frontend = New-AzureLoadBalancerFrontendIpConfig -Name $frontendName -PublicIpAddress $publicip
978+
$backendAddressPool = New-AzureLoadBalancerBackendAddressPoolConfig -Name $backendAddressPoolName
979+
$probe = New-AzureLoadBalancerProbeConfig -Name $probeName -RequestPath healthcheck.aspx -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
980+
$inboundNatRule1 = New-AzureLoadBalancerInboundNatRuleConfig -Name $inboundNatRuleName1 -FrontendIPConfiguration $frontend -Protocol Tcp -FrontendPort 3389 -BackendPort 3389 -IdleTimeoutInMinutes 15 -EnableFloatingIP
981+
$inboundNatRule2 = New-AzureLoadBalancerInboundNatRuleConfig -Name $inboundNatRuleName2 -FrontendIPConfiguration $frontend -Protocol Tcp -FrontendPort 3391 -BackendPort 3392
982+
$lbrule = New-AzureLoadBalancerRuleConfig -Name $lbruleName -FrontendIPConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -Protocol Tcp -FrontendPort 80 -BackendPort 80 -IdleTimeoutInMinutes 15 -EnableFloatingIP -LoadDistribution SourceIP
983+
$lb = New-AzureLoadBalancer -Name $lbName -ResourceGroupName $rgname -Location $location -FrontendIpConfiguration $frontend -BackendAddressPool $backendAddressPool -Probe $probe -InboundNatRule $inboundNatRule1,$inboundNatRule2 -LoadBalancingRule $lbrule
984+
985+
# Verification of Load Balancer
986+
Assert-AreEqual $rgname $lb.ResourceGroupName
987+
Assert-AreEqual $lbName $lb.Name
988+
Assert-AreEqual $location $lb.Location
989+
Assert-AreEqual "Succeeded" $lb.ProvisioningState
990+
Assert-AreEqual 1 @($lb.FrontendIPConfigurations).Count
991+
992+
Assert-Null $lb.InboundNatRules[0].BackendIPConfiguration
993+
Assert-Null $lb.InboundNatRules[1].BackendIPConfiguration
994+
Assert-AreEqual 0 @($lb.BackendAddressPools[0].BackendIpConfigurations).Count
995+
996+
# Create 3 network interfaces and accociate to loadbalancer
997+
$nic1 = New-AzureNetworkInterface -Name $nicname1 -ResourceGroupName $rgname -Location $location -Subnet $vnet.Subnets[0]
998+
$nic2 = New-AzureNetworkInterface -Name $nicname2 -ResourceGroupName $rgname -Location $location -Subnet $vnet.Subnets[0]
999+
$nic3 = New-AzureNetworkInterface -Name $nicname3 -ResourceGroupName $rgname -Location $location -Subnet $vnet.Subnets[0]
1000+
1001+
# Associate the nic to the load balancer
1002+
$nic1.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools[0]);
1003+
$nic1.IpConfigurations[0].LoadBalancerInboundNatRules.Add($lb.InboundNatRules[0]);
1004+
$nic2.IpConfigurations[0].LoadBalancerBackendAddressPools.Add($lb.BackendAddressPools[0]);
1005+
$nic3.IpConfigurations[0].LoadBalancerInboundNatRules.Add($lb.InboundNatRules[1]);
1006+
1007+
# set the nics
1008+
$nic1 = $nic1 | Set-AzureNetworkInterface
1009+
$nic2 = $nic2 | Set-AzureNetworkInterface
1010+
$nic3 = $nic3 | Set-AzureNetworkInterface
1011+
1012+
# Verify the Load balancer references
1013+
$lb = Get-AzureLoadBalancer -Name $lbName -ResourceGroupName $rgname
1014+
1015+
Assert-AreEqual $nic1.IpConfigurations[0].Id $lb.InboundNatRules[0].BackendIPConfiguration.Id
1016+
Assert-AreEqual $nic3.IpConfigurations[0].Id $lb.InboundNatRules[1].BackendIPConfiguration.Id
1017+
Assert-AreEqual 2 @($lb.BackendAddressPools[0].BackendIpConfigurations).Count
1018+
1019+
# Delete
1020+
$deleteLb = Remove-AzureLoadBalancer -Name $lbName -ResourceGroupName $rgname -PassThru -Force
1021+
Assert-AreEqual true $deleteLb
1022+
1023+
$list = Get-AzureLoadBalancer -ResourceGroupName $rgname
1024+
Assert-AreEqual 0 @($list).Count
1025+
}
1026+
finally
1027+
{
1028+
# Cleanup
1029+
Clean-ResourceGroup $rgname
1030+
}
1031+
}

src/ResourceManager/Network/Commands.Network.Test/SessionRecords/Commands.Network.Test.ScenarioTests.LoadBalancerTests/TestLoadBalancerNicAssociation.json

Lines changed: 3357 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)