@@ -333,6 +333,206 @@ function Test-subnetDelegationCRUD
333333 }
334334}
335335
336+ <#
337+ . SYNOPSIS
338+ Tests creating new virtualNetwork w/ network security group associated and disassociated from subnets.
339+ . DESCRIPTION
340+ SmokeTest
341+ #>
342+ function Test-subnetNetworkSecurityGroupCRUD {
343+ # Setup
344+ $rgname = Get-ResourceGroupName
345+ $vnetName = Get-ResourceName
346+ $subnet1Name = Get-ResourceName
347+ $subnet2Name = Get-ResourceName
348+ $subnet3Name = Get-ResourceName
349+ $networkSecurityGroupName = Get-ResourceName
350+ $rglocation = Get-ProviderLocation ResourceManagement
351+ $resourceTypeParent = " Microsoft.Network/virtualNetworks"
352+ $location = Get-ProviderLocation $resourceTypeParent
353+
354+ try {
355+ # Create the resource group
356+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
357+
358+ # Create a network security group
359+ $networkSecurityGroup = New-AzNetworkSecurityGroup - Name $networkSecurityGroupName - ResourceGroupName $rgname - Location $location
360+
361+ # Create the Virtual Network
362+ $subnet = New-AzVirtualNetworkSubnetConfig - Name $subnet1Name - AddressPrefix 10.0 .1.0 / 24 - NetworkSecurityGroup $networkSecurityGroup
363+ New-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
364+ $vnet = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
365+
366+ # Add subnets
367+ $vnet | Add-AzVirtualNetworkSubnetConfig - Name $subnet2Name - AddressPrefix 10.0 .2.0 / 24
368+ $vnet | Add-AzVirtualNetworkSubnetConfig - Name $subnet3Name - AddressPrefix 10.0 .3.0 / 24
369+
370+ # Set VirtualNetwork
371+ $vnet | Set-AzVirtualNetwork
372+
373+ # Get VirtualNetwork
374+ $vnetExpected = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
375+
376+ Assert-AreEqual 3 $vnetExpected.Subnets.Count
377+ Assert-AreEqual $subnet1Name $vnetExpected.Subnets [0 ].Name
378+ Assert-AreEqual 1 $vnetExpected.Subnets [0 ].NetworkSecurityGroup.Count
379+ Assert-AreEqual $subnet2Name $vnetExpected.Subnets [1 ].Name
380+ Assert-AreEqual 0 $vnetExpected.Subnets [1 ].NetworkSecurityGroup.Count
381+ Assert-AreEqual $subnet3Name $vnetExpected.Subnets [2 ].Name
382+ Assert-AreEqual 0 $vnetExpected.Subnets [2 ].NetworkSecurityGroup.Count
383+
384+ # Associate a network security group to a subnet using the NetworkSecurityGroup parameter
385+ Set-AzVirtualNetworkSubnetConfig - Name $subnet2Name - VirtualNetwork $vnet - AddressPrefix 10.0 .2.0 / 24 - NetworkSecurityGroup $networkSecurityGroup
386+ Set-AzVirtualNetwork - VirtualNetwork $vnet
387+
388+ # Associate a network security group to a subnet using the NetworkSecurityGroupId parameter
389+ Set-AzVirtualNetworkSubnetConfig - Name $subnet3Name - VirtualNetwork $vnet - AddressPrefix 10.0 .3.0 / 24 - NetworkSecurityGroupId $networkSecurityGroup.Id
390+ Set-AzVirtualNetwork - VirtualNetwork $vnet
391+
392+ $vnetExpected = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
393+ Assert-AreEqual 3 $vnetExpected.Subnets.Count
394+ Assert-AreEqual 1 $vnetExpected.Subnets [0 ].NetworkSecurityGroup.Count
395+ Assert-AreEqual $networkSecurityGroup.Id $vnetExpected.Subnets [0 ].NetworkSecurityGroup.Id
396+ Assert-AreEqual 1 $vnetExpected.Subnets [1 ].NetworkSecurityGroup.Count
397+ Assert-AreEqual $networkSecurityGroup.Id $vnetExpected.Subnets [1 ].NetworkSecurityGroup.Id
398+ Assert-AreEqual 1 ($vnetExpected.Subnets [2 ].NetworkSecurityGroup).Count
399+ Assert-AreEqual $networkSecurityGroup.Id $vnetExpected.Subnets [2 ].NetworkSecurityGroup.Id
400+
401+ # Get subnets
402+ $subnet1 = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig - Name $subnet1Name
403+ Assert-AreEqual 1 $subnet1.NetworkSecurityGroup.Count
404+ $subnet2 = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig - Name $subnet2Name
405+ Assert-AreEqual 1 $subnet2.NetworkSecurityGroup.Count
406+ $subnet3 = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig - Name $subnet3Name
407+ Assert-AreEqual 1 $subnet3.NetworkSecurityGroup.Count
408+ $subnetAll = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig
409+
410+ Assert-AreEqual 3 $subnetAll.Count
411+
412+ # Disassociate a network security group with the NetworkSecurityGroup parameter as $null
413+ Set-AzVirtualNetworkSubnetConfig - Name $subnet1Name - VirtualNetwork $vnet - AddressPrefix 10.0 .1.0 / 24 - NetworkSecurityGroup $null
414+ Set-AzVirtualNetwork - VirtualNetwork $vnet
415+
416+ # Disassociate a network security group with the NetworkSecurityGroupId parameter as $null
417+ Set-AzVirtualNetworkSubnetConfig - Name $subnet2Name - VirtualNetwork $vnet - AddressPrefix 10.0 .2.0 / 24 - NetworkSecurityGroupId $null
418+ Set-AzVirtualNetwork - VirtualNetwork $vnet
419+
420+ # Disassociate a network security group with the NetworkSecurityGroupId parameter as an empty string
421+ Set-AzVirtualNetworkSubnetConfig - Name $subnet3Name - VirtualNetwork $vnet - AddressPrefix 10.0 .3.0 / 24 - NetworkSecurityGroupId " "
422+ Set-AzVirtualNetwork - VirtualNetwork $vnet
423+
424+ $vnetExpected = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
425+ Assert-AreEqual 3 $vnetExpected.Subnets.Count
426+ Assert-AreEqual 0 $vnetExpected.Subnets [0 ].NetworkSecurityGroup.Count
427+ Assert-AreEqual 0 $vnetExpected.Subnets [1 ].NetworkSecurityGroup.Count
428+ Assert-AreEqual 0 $vnetExpected.Subnets [2 ].NetworkSecurityGroup.Count
429+ }
430+ finally {
431+ # Cleanup
432+ Clean - ResourceGroup $rgname
433+ }
434+ }
435+
436+ <#
437+ . SYNOPSIS
438+ Tests creating new virtualNetwork w/ route table associated and disassoicated from subnets.
439+ . DESCRIPTION
440+ SmokeTest
441+ #>
442+ function Test-subnetRouteTableCRUD {
443+ # Setup
444+ $rgname = Get-ResourceGroupName
445+ $vnetName = Get-ResourceName
446+ $subnet1Name = Get-ResourceName
447+ $subnet2Name = Get-ResourceName
448+ $subnet3Name = Get-ResourceName
449+ $routeTableName = Get-ResourceName
450+ $rglocation = Get-ProviderLocation ResourceManagement
451+ $resourceTypeParent = " Microsoft.Network/virtualNetworks"
452+ $location = Get-ProviderLocation $resourceTypeParent
453+
454+ try {
455+ # Create the resource group
456+ $resourceGroup = New-AzResourceGroup - Name $rgname - Location $rglocation - Tags @ { testtag = " testval" }
457+
458+ # Create a route table
459+ $routeTable = New-AzRouteTable - Name $routeTableName - ResourceGroupName $rgname - Location $location
460+
461+ # Create the Virtual Network
462+ $subnet = New-AzVirtualNetworkSubnetConfig - Name $subnet1Name - AddressPrefix 10.0 .1.0 / 24 - RouteTable $routeTable
463+ New-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
464+ $vnet = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
465+
466+ # Add subnets
467+ $vnet | Add-AzVirtualNetworkSubnetConfig - Name $subnet2Name - AddressPrefix 10.0 .2.0 / 24
468+ $vnet | Add-AzVirtualNetworkSubnetConfig - Name $subnet3Name - AddressPrefix 10.0 .3.0 / 24
469+
470+ # Set VirtualNetwork
471+ $vnet | Set-AzVirtualNetwork
472+
473+ # Get VirtualNetwork
474+ $vnetExpected = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
475+
476+ Assert-AreEqual 3 $vnetExpected.Subnets.Count
477+ Assert-AreEqual $subnet1Name $vnetExpected.Subnets [0 ].Name
478+ Assert-AreEqual 1 $vnetExpected.Subnets [0 ].RouteTable.Count
479+ Assert-AreEqual $subnet2Name $vnetExpected.Subnets [1 ].Name
480+ Assert-AreEqual 0 $vnetExpected.Subnets [1 ].RouteTable.Count
481+ Assert-AreEqual $subnet3Name $vnetExpected.Subnets [2 ].Name
482+ Assert-AreEqual 0 $vnetExpected.Subnets [2 ].RouteTable.Count
483+
484+ # Associate a route table to a subnet using the RouteTable parameter
485+ Set-AzVirtualNetworkSubnetConfig - Name $subnet2Name - VirtualNetwork $vnet - AddressPrefix 10.0 .2.0 / 24 - RouteTable $routeTable
486+ Set-AzVirtualNetwork - VirtualNetwork $vnet
487+
488+ # Associate a route table to a subnet using the RouteTableId parameter
489+ Set-AzVirtualNetworkSubnetConfig - Name $subnet3Name - VirtualNetwork $vnet - AddressPrefix 10.0 .3.0 / 24 - RouteTableId $routeTable.Id
490+ Set-AzVirtualNetwork - VirtualNetwork $vnet
491+
492+ $vnetExpected = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
493+ Assert-AreEqual 3 $vnetExpected.Subnets.Count
494+ Assert-AreEqual 1 $vnetExpected.Subnets [0 ].RouteTable.Count
495+ Assert-AreEqual $routeTable.Id $vnetExpected.Subnets [0 ].RouteTable.Id
496+ Assert-AreEqual 1 $vnetExpected.Subnets [1 ].RouteTable.Count
497+ Assert-AreEqual $routeTable.Id $vnetExpected.Subnets [1 ].RouteTable.Id
498+ Assert-AreEqual 1 $vnetExpected.Subnets [2 ].RouteTable.Count
499+ Assert-AreEqual $routeTable.Id $vnetExpected.Subnets [2 ].RouteTable.Id
500+
501+ # Get subnets
502+ $subnet1 = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig - Name $subnet1Name
503+ Assert-AreEqual 1 $subnet1.RouteTable.Count
504+ $subnet2 = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig - Name $subnet2Name
505+ Assert-AreEqual 1 $subnet2.RouteTable.Count
506+ $subnet3 = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig - Name $subnet3Name
507+ Assert-AreEqual 1 $subnet3.RouteTable.Count
508+ $subnetAll = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname | Get-AzVirtualNetworkSubnetConfig
509+
510+ Assert-AreEqual 3 $subnetAll.Count
511+
512+ # Disassociate a route table with the RouteTable parameter as $null
513+ Set-AzVirtualNetworkSubnetConfig - Name $subnet1Name - VirtualNetwork $vnet - AddressPrefix 10.0 .1.0 / 24 - RouteTable $null
514+ $vnet = Set-AzVirtualNetwork - VirtualNetwork $vnet
515+
516+ # Disassociate a route table with the RouteTableId parameter as $null
517+ Set-AzVirtualNetworkSubnetConfig - Name $subnet2Name - VirtualNetwork $vnet - AddressPrefix 10.0 .2.0 / 24 - RouteTableId $null
518+ Set-AzVirtualNetwork - VirtualNetwork $vnet
519+
520+ # Disassociate a route table with the RouteTableId parameter as an empty string
521+ Set-AzVirtualNetworkSubnetConfig - Name $subnet3Name - VirtualNetwork $vnet - AddressPrefix 10.0 .3.0 / 24 - RouteTableId " "
522+ Set-AzVirtualNetwork - VirtualNetwork $vnet
523+
524+ $vnetExpected = Get-AzVirtualNetwork - Name $vnetName - ResourceGroupName $rgname
525+ Assert-AreEqual 3 $vnetExpected.Subnets.Count
526+ Assert-AreEqual 0 $vnetExpected.Subnets [0 ].RouteTable.Count
527+ Assert-AreEqual 0 $vnetExpected.Subnets [1 ].RouteTable.Count
528+ Assert-AreEqual 0 $vnetExpected.Subnets [2 ].RouteTable.Count
529+ }
530+ finally {
531+ # Cleanup
532+ Clean - ResourceGroup $rgname
533+ }
534+ }
535+
336536<#
337537. SYNOPSIS
338538Tests creating new simple virtualNetwork and subnets.
0 commit comments