@@ -333,6 +333,206 @@ function Test-subnetDelegationCRUD
333
333
}
334
334
}
335
335
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
+
336
536
<#
337
537
. SYNOPSIS
338
538
Tests creating new simple virtualNetwork and subnets.
0 commit comments