@@ -48,12 +48,12 @@ public void testInitWithoutSandboxClusters() {
4848 will (returnValue (null ));
4949 oneOf (clusterGroup ).getMasterCluster ();
5050 will (returnValue (masterCluster ));
51- }
51+ }
5252 });
5353
5454 selector .init (clusterGroup );
5555 assertSame (clusterGroup , selector .clusterGroup );
56- assertNull (selector .routeGroups );
56+ assertNull (selector .defaultSandboxCluster );
5757
5858 Cluster <?> cluster = selector .select (request );
5959 assertSame (masterCluster , cluster );
@@ -73,7 +73,7 @@ public void testInitWithEmptySandboxClusters() {
7373
7474 selector .init (clusterGroup );
7575 assertSame (clusterGroup , selector .clusterGroup );
76- assertNull (selector .routeGroups );
76+ assertNull (selector .defaultSandboxCluster );
7777
7878 Cluster <?> cluster = selector .select (request );
7979 assertSame (masterCluster , cluster );
@@ -120,12 +120,8 @@ public void testInitWithSandboxClusters() {
120120
121121 selector .init (clusterGroup );
122122 assertSame (clusterGroup , selector .clusterGroup );
123- assertNotNull (selector .routeGroups );
124- assertEquals (4 , selector .routeGroups .size ());
125- assertSame (sandboxCluster , selector .routeGroups .get (DefaultClusterSelector .DEFAULT_ROUTE_GROUP_SANDBOX ));
126- assertSame (sandboxCluster , selector .routeGroups .get ("testGroup" ));
127- assertSame (sandboxCluster2 , selector .routeGroups .get ("testGroup2" ));
128- assertSame (sandboxCluster3 , selector .routeGroups .get ("testGroup3" ));
123+ assertNotNull (selector .defaultSandboxCluster );
124+ assertSame (sandboxCluster , selector .defaultSandboxCluster );
129125
130126 DefaultRequest defaultRequest = new DefaultRequest ();
131127 // without route group
@@ -139,20 +135,35 @@ public void testInitWithSandboxClusters() {
139135 assertSame (sandboxCluster , selected );
140136
141137 // with specific sandbox group
138+ // Test URL group matching
139+ final URL clusterGroupUrl = new URL ("motan" , "localhost" , 8001 , "testService" );
140+ clusterGroupUrl .addParameter ("group" , "testGroup" );
141+
142+ mockery .checking (new Expectations () {
143+ {
144+ allowing (clusterGroup ).getUrl ();
145+ will (returnValue (clusterGroupUrl ));
146+ }
147+ });
148+
142149 defaultRequest .setAttachment (MotanConstants .ROUTE_GROUP_KEY , "testGroup" );
143150 selected = selector .select (defaultRequest );
144151 assertSame (sandboxCluster , selected );
145- defaultRequest .setAttachment (MotanConstants .ROUTE_GROUP_KEY , "testGroup2" );
152+
153+ // Test comma-separated group list
154+ defaultRequest .setAttachment (MotanConstants .ROUTE_GROUP_KEY , "otherGroup,testGroup,anotherGroup, ,," );
146155 selected = selector .select (defaultRequest );
147- assertSame (sandboxCluster2 , selected );
148-
149- // with empty referers cluster
150- defaultRequest .setAttachment (MotanConstants .ROUTE_GROUP_KEY , "testGroup3" );
156+ assertSame (sandboxCluster , selected );
157+
158+ // Test cluster with empty references
159+ referers .clear ();
160+
151161 selected = selector .select (defaultRequest );
152162 assertSame (masterCluster , selected );
153163
154164 // with invalid route group
155- defaultRequest .setAttachment (MotanConstants .ROUTE_GROUP_KEY , "invalidGroup" );
165+ referers .add (referer ); // referers not empty
166+ defaultRequest .setAttachment (MotanConstants .ROUTE_GROUP_KEY , ",, ,invalidGroup" );
156167 selected = selector .select (defaultRequest );
157168 assertSame (masterCluster , selected );
158169 }
0 commit comments