@@ -964,6 +964,7 @@ function Test-NetworkManagerRoutingRuleCRUD
964964 $subnetNetworkGroupName = Get-ResourceName
965965 $staticMemberName = Get-ResourceName
966966 $RoutingConfigurationName = Get-ResourceName
967+ $RoutingConfigurationName2 = Get-ResourceName
967968 $RuleCollectionName = Get-ResourceName
968969 $RuleName1 = Get-ResourceName
969970 $rglocation = " centraluseuap"
@@ -1000,43 +1001,100 @@ function Test-NetworkManagerRoutingRuleCRUD
10001001 $vnetNetworkGroup = Get-AzNetworkManagerGroup - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $vnetNetworkGroupName
10011002 $subnetNetworkGroup = Get-AzNetworkManagerGroup - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $subnetNetworkGroupName
10021003
1003- # Create a Routing Configuration
1004- New-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName - Description " Sample Routing Configuration"
1004+ # region RouteTableUsageMode Tests - New Configuration
1005+
1006+ # Test 1: Create Routing Configuration with explicit ManagedOnly mode
1007+ New-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName - Description " Sample Routing Configuration" - RouteTableUsageMode " ManagedOnly"
10051008
10061009 $routingConfig = Get-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName
10071010 Assert-NotNull $routingConfig ;
10081011 Assert-AreEqual $RoutingConfigurationName $routingConfig.Name ;
1012+ Assert-AreEqual " ManagedOnly" $routingConfig.RouteTableUsageMode ;
1013+ Assert-AreEqual " Sample Routing Configuration" $routingConfig.Description ;
1014+
1015+ # Test 2: Create Routing Configuration without specifying RouteTableUsageMode (should default to ManagedOnly)
1016+ New-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName2 - Description " Default mode test"
1017+
1018+ $routingConfig2 = Get-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName2
1019+ Assert-NotNull $routingConfig2 ;
1020+ Assert-AreEqual $RoutingConfigurationName2 $routingConfig2.Name ;
1021+ Assert-AreEqual " ManagedOnly" $routingConfig2.RouteTableUsageMode ;
1022+ Assert-AreEqual " Default mode test" $routingConfig2.Description ;
1023+
1024+ # Test 3: Create Routing Configuration with UseExisting mode
1025+ $RoutingConfigurationName3 = Get-ResourceName
1026+ New-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName3 - Description " UseExisting mode test" - RouteTableUsageMode " UseExisting"
1027+
1028+ $routingConfig3 = Get-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName3
1029+ Assert-NotNull $routingConfig3 ;
1030+ Assert-AreEqual " UseExisting" $routingConfig3.RouteTableUsageMode ;
1031+
1032+ # endregion
10091033
10101034 # Validate List Routing config command
10111035 $routingConfigs = Get-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName
10121036 Assert-NotNull $routingConfigs
1013- Assert-AreEqual 1 $routingConfigs.Count
1037+ Assert-AreEqual 3 $routingConfigs.Count
10141038
1015- # Get by resourceId
1039+ # region RouteTableUsageMode Tests - Get by ResourceId
1040+
1041+ # Test 4: Get by resourceId and verify RouteTableUsageMode is preserved
10161042 $resourceId = $routingConfig.Id
10171043 $routingConfig = Get-AzNetworkManagerRoutingConfiguration - ResourceId $resourceId
10181044 Assert-NotNull $routingConfig
10191045 Assert-AreEqual $resourceId $routingConfig.Id
1046+ Assert-AreEqual " ManagedOnly" $routingConfig.RouteTableUsageMode
10201047
1021- # Set by InputObject
1048+ # endregion
1049+
1050+ # region RouteTableUsageMode Tests - Set/Update Operations
1051+
1052+ # Test 5: Set by InputObject - update description and route table usage mode to UseExisting
10221053 $routingConfig.Description = " A different description."
1054+ $routingConfig.RouteTableUsageMode = " UseExisting"
10231055 $routingConfig = Set-AzNetworkManagerRoutingConfiguration - InputObject $routingConfig
10241056 Assert-NotNull $routingConfig ;
10251057 Assert-AreEqual " A different description." $routingConfig.Description ;
10261058 Assert-AreEqual $RoutingConfigurationName $routingConfig.Name ;
1059+ Assert-AreEqual " UseExisting" $routingConfig.RouteTableUsageMode ;
10271060
1028- # Set by resourceId
1061+ # Test 6: Set by resourceId - update description only (RouteTableUsageMode should be preserved as UseExisting)
10291062 $resourceId = $routingConfig.Id
10301063 $routingConfig = Set-AzNetworkManagerRoutingConfiguration - ResourceId $resourceId - Description " Updated description."
10311064 Assert-NotNull $routingConfig ;
10321065 Assert-AreEqual " Updated description." $routingConfig.Description ;
10331066 Assert-AreEqual $RoutingConfigurationName $routingConfig.Name ;
1067+ Assert-AreEqual " UseExisting" $routingConfig.RouteTableUsageMode ;
10341068
1035- # Set by Name
1036- $routingConfig = Set-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName - Description " Updated description again."
1069+ # Test 7: Set by Name - update description and explicitly change back to ManagedOnly mode
1070+ $routingConfig = Set-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName - Description " Updated description again." - RouteTableUsageMode " ManagedOnly "
10371071 Assert-NotNull $routingConfig ;
10381072 Assert-AreEqual " Updated description again." $routingConfig.Description ;
10391073 Assert-AreEqual $RoutingConfigurationName $routingConfig.Name ;
1074+ Assert-AreEqual " ManagedOnly" $routingConfig.RouteTableUsageMode ;
1075+
1076+ # Test 8: Set by Name - update only description (RouteTableUsageMode should remain ManagedOnly)
1077+ $routingConfig = Set-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName - Description " Description update without mode change"
1078+ Assert-NotNull $routingConfig ;
1079+ Assert-AreEqual " Description update without mode change" $routingConfig.Description ;
1080+ Assert-AreEqual " ManagedOnly" $routingConfig.RouteTableUsageMode ;
1081+
1082+ # Test 9: Set by InputObject - change mode to UseExisting
1083+ $routingConfig.RouteTableUsageMode = " UseExisting"
1084+ $routingConfig = Set-AzNetworkManagerRoutingConfiguration - InputObject $routingConfig
1085+ Assert-AreEqual " UseExisting" $routingConfig.RouteTableUsageMode ;
1086+
1087+ # Test 10: Set by resourceId - explicitly set mode to ManagedOnly
1088+ $resourceId = $routingConfig.Id
1089+ $routingConfig = Set-AzNetworkManagerRoutingConfiguration - ResourceId $resourceId - RouteTableUsageMode " ManagedOnly"
1090+ Assert-AreEqual " ManagedOnly" $routingConfig.RouteTableUsageMode ;
1091+
1092+ # Test 11: Verify that the second config (created without explicit mode) can be updated
1093+ $routingConfig2 = Set-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName2 - RouteTableUsageMode " UseExisting"
1094+ Assert-AreEqual " UseExisting" $routingConfig2.RouteTableUsageMode ;
1095+ Assert-AreEqual " Default mode test" $routingConfig2.Description ;
1096+
1097+ # endregion
10401098
10411099 # Create a Routing Rule Collection
10421100 [System.Collections.Generic.List [Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerRoutingGroupItem ]]$configGroup = @ ()
@@ -1154,6 +1212,10 @@ function Test-NetworkManagerRoutingRuleCRUD
11541212
11551213 # endregion - End Routing Rule Set-* cmdlets tests
11561214
1215+ # Verify RouteTableUsageMode persists through configuration operations
1216+ $finalRoutingConfig = Get-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName
1217+ Assert-AreEqual " ManagedOnly" $finalRoutingConfig.RouteTableUsageMode ;
1218+
11571219 $configIds = @ ($routingConfig.Id )
11581220 $regions = @ ($rglocation )
11591221 Deploy-AzNetworkManagerCommit - ResourceGroupName $rgname - Name $networkManagerName - TargetLocation $regions - ConfigurationId $configIds - CommitType " Routing"
@@ -1187,6 +1249,15 @@ function Test-NetworkManagerRoutingRuleCRUD
11871249 $job | Wait-Job ;
11881250 $removeResult = $job | Receive-Job ;
11891251
1252+ # Remove additional routing configurations
1253+ $job = Remove-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName2 - ForceDelete - PassThru - Force - AsJob;
1254+ $job | Wait-Job ;
1255+ $removeResult = $job | Receive-Job ;
1256+
1257+ $job = Remove-AzNetworkManagerRoutingConfiguration - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - Name $RoutingConfigurationName3 - ForceDelete - PassThru - Force - AsJob;
1258+ $job | Wait-Job ;
1259+ $removeResult = $job | Receive-Job ;
1260+
11901261 $job = Remove-AzNetworkManagerStaticMember - ResourceGroupName $rgname - NetworkManagerName $networkManagerName - NetworkGroupName $vnetNetworkGroupName - Name $staticMemberName - PassThru - Force - AsJob;
11911262 $job | Wait-Job ;
11921263 $removeResult = $job | Receive-Job ;
0 commit comments