@@ -715,4 +715,91 @@ function Test-NetworkInterfaceIpv6
715
715
# Cleanup
716
716
Clean - ResourceGroup $rgname
717
717
}
718
+ }
719
+
720
+ <#
721
+ . SYNOPSIS
722
+ Tests creating new networkinterface with multiple ipconfigurations.
723
+ #>
724
+ function Test-NetworkInterfaceWithIpConfiguration
725
+ {
726
+ # Setup
727
+ $rgname = Get-ResourceGroupName
728
+ $vnetName = Get-ResourceName
729
+ $subnetName = Get-ResourceName
730
+ $publicIpName = Get-ResourceName
731
+ $nicName = Get-ResourceName
732
+ $ipconfig1Name = Get-ResourceName
733
+ $ipconfig2Name = Get-ResourceName
734
+ $domainNameLabel = Get-ResourceName
735
+ $rglocation = Get-ProviderLocation ResourceManagement
736
+ $resourceTypeParent = " Microsoft.Network/networkInterfaces"
737
+ $location = Get-ProviderLocation $resourceTypeParent
738
+
739
+ try
740
+ {
741
+ # Create the resource group
742
+ $resourceGroup = New-AzureRmResourceGroup - Name $rgname - Location $rglocation - Tags @ {Name = " testtag" ; Value = " testval" }
743
+
744
+ # Create the Virtual Network
745
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name $subnetName - AddressPrefix 10.0 .1.0 / 24
746
+ $vnet = New-AzureRmvirtualNetwork - Name $vnetName - ResourceGroupName $rgname - Location $location - AddressPrefix 10.0 .0.0 / 16 - Subnet $subnet
747
+
748
+ # Create the publicip
749
+ $publicip = New-AzureRmPublicIpAddress - ResourceGroupName $rgname - name $publicIpName - location $location - AllocationMethod Dynamic - DomainNameLabel $domainNameLabel
750
+
751
+ # Create the ipconfiguration
752
+ $ipconfig1 = New-AzureRmNetworkInterfaceIpConfig - Name $ipconfig1Name - Subnet $vnet.Subnets [0 ] - PublicIpAddress $publicip
753
+ $ipconfig2 = New-AzureRmNetworkInterfaceIpConfig - Name $ipconfig2Name - PrivateIpAddressVersion IPv6
754
+
755
+ # Create NetworkInterface
756
+ $nic = New-AzureRmNetworkInterface - Name $nicName - ResourceGroupName $rgname - Location $location - IpConfiguration $ipconfig1 , $ipconfig2 - Tag @ {Name = " testtag" ; Value = " testval" }
757
+
758
+ Assert-AreEqual $rgname $nic.ResourceGroupName
759
+ Assert-AreEqual $nicName $nic.Name
760
+ Assert-NotNull $nic.ResourceGuid
761
+ Assert-AreEqual " Succeeded" $nic.ProvisioningState
762
+ Assert-AreEqual $nic.IpConfigurations [0 ].Name $nic.IpConfigurations [0 ].Name
763
+ Assert-AreEqual $nic.IpConfigurations [0 ].PublicIpAddress.Id $nic.IpConfigurations [0 ].PublicIpAddress.Id
764
+ Assert-AreEqual $nic.IpConfigurations [0 ].Subnet.Id $nic.IpConfigurations [0 ].Subnet.Id
765
+ Assert-NotNull $nic.IpConfigurations [0 ].PrivateIpAddress
766
+ Assert-AreEqual " Dynamic" $nic.IpConfigurations [0 ].PrivateIpAllocationMethod
767
+
768
+ # Check publicIp address reference
769
+ $publicip = Get-AzureRmPublicIpAddress - ResourceGroupName $rgname - name $publicIpName
770
+ Assert-AreEqual $nic.IpConfigurations [0 ].PublicIpAddress.Id $publicip.Id
771
+ Assert-AreEqual $nic.IpConfigurations [0 ].Id $publicip.IpConfiguration.Id
772
+
773
+ # Check Subnet address reference
774
+ $vnet = Get-AzureRmvirtualNetwork - Name $vnetName - ResourceGroupName $rgname
775
+ Assert-AreEqual $nic.IpConfigurations [0 ].Subnet.Id $vnet.Subnets [0 ].Id
776
+ Assert-AreEqual $nic.IpConfigurations [0 ].Id $vnet.Subnets [0 ].IpConfigurations[0 ].Id
777
+
778
+ # Verify ipconfigs
779
+ Assert-AreEqual 2 @ ($nic.IpConfigurations ).Count
780
+
781
+ Assert-AreEqual $ipconfig1Name $nic.IpConfigurations [0 ].Name
782
+ Assert-AreEqual $publicip.Id $nic.IpConfigurations [0 ].PublicIpAddress.Id
783
+ Assert-AreEqual $vnet.Subnets [0 ].Id $nic.IpConfigurations [0 ].Subnet.Id
784
+ Assert-NotNull $nic.IpConfigurations [0 ].PrivateIpAddress
785
+ Assert-AreEqual " Dynamic" $nic.IpConfigurations [0 ].PrivateIpAllocationMethod
786
+ Assert-AreEqual $nic.IpConfigurations [0 ].PrivateIpAddressVersion IPv4
787
+
788
+ Assert-AreEqual $ipconfig2Name $nic.IpConfigurations [1 ].Name
789
+ Assert-Null $nic.IpConfigurations [1 ].PublicIpAddress
790
+ Assert-Null $nic.IpConfigurations [1 ].Subnet
791
+ Assert-AreEqual $nic.IpConfigurations [1 ].PrivateIpAddressVersion IPv6
792
+
793
+ # Delete NetworkInterface
794
+ $delete = Remove-AzureRmNetworkInterface - ResourceGroupName $rgname - name $nicName - PassThru - Force
795
+ Assert-AreEqual true $delete
796
+
797
+ $list = Get-AzureRmNetworkInterface - ResourceGroupName $rgname
798
+ Assert-AreEqual 0 @ ($list ).Count
799
+ }
800
+ finally
801
+ {
802
+ # Cleanup
803
+ Clean - ResourceGroup $rgname
804
+ }
718
805
}
0 commit comments