This is an automated email from the ASF dual-hosted git repository.

rainyu pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.3 by this push:
     new 3570ee0908 Stabilize Nondex non-determinism in 'map argument body 
test' and 'advance bean argument get test' (#15777)
3570ee0908 is described below

commit 3570ee0908e03d4bfcdceae1bee0ea9fc555309a
Author: Anshul Bisht <[email protected]>
AuthorDate: Fri Nov 21 00:54:45 2025 -0600

    Stabilize Nondex non-determinism in 'map argument body test' and 'advance 
bean argument get test' (#15777)
---
 .../tri/rest/support/basic/RestProtocolTest.groovy | 75 +++++++++++++---------
 1 file changed, 43 insertions(+), 32 deletions(-)

diff --git 
a/dubbo-rpc/dubbo-rpc-triple/src/test/groovy/org/apache/dubbo/rpc/protocol/tri/rest/support/basic/RestProtocolTest.groovy
 
b/dubbo-rpc/dubbo-rpc-triple/src/test/groovy/org/apache/dubbo/rpc/protocol/tri/rest/support/basic/RestProtocolTest.groovy
index dc2ffb9332..e6238e948f 100644
--- 
a/dubbo-rpc/dubbo-rpc-triple/src/test/groovy/org/apache/dubbo/rpc/protocol/tri/rest/support/basic/RestProtocolTest.groovy
+++ 
b/dubbo-rpc/dubbo-rpc-triple/src/test/groovy/org/apache/dubbo/rpc/protocol/tri/rest/support/basic/RestProtocolTest.groovy
@@ -76,12 +76,15 @@ class RestProtocolTest extends BaseServiceTest {
     }
 
     def "map argument body test"() {
-        expect:
-            runner.post(path, body) contains output
+        when:
+            def result = runner.post(path, body)
+        then:
+            result.contains('1:[2,3]')
+            result.contains('4:[5,6]')
         where:
-            path                     | body                        | output
-            '/mapArgBodyTest?age=2'  | '{"1":["2",3],"4":[5,"6"]}' | 
'{4:[5,6],1:[2,3]}'
-            '/mapArgBodyTest2?age=1' | '[{"1":[2,3],"4":[5,6]},2]' | 
'{4:[5,6],1:[2,3]}'
+            path                     | body
+            '/mapArgBodyTest?age=2'  | '{"1":["2",3],"4":[5,"6"]}'
+            '/mapArgBodyTest2?age=1' | '[{"1":[2,3],"4":[5,6]},2]'
     }
 
     def "bean argument test"() {
@@ -121,34 +124,42 @@ class RestProtocolTest extends BaseServiceTest {
     }
 
     def "advance bean argument get test"() {
-        expect:
-            runner.get(path) contains output
+        when:
+            def result = runner.get(path)
+        then:
+            if (fragments == null) {
+                assert result.contains(output)
+            } else {
+                fragments.each { frag ->
+                    assert result.contains(frag)
+                }
+            }
         where:
-            path                                                               
             | output
-            '/bean?id=1&name=sam'                                              
             | '"id":1,"name":"sam"'
-            '/bean?user.id=1&user.name=sam'                                    
             | '"id":1,"name":"sam"'
-            '/bean?name=sam&p=123&[email protected]'                            
                | '"email":"[email protected]","name":"sam","phone":"123"'
-            '/bean?group.name=g1&group.owner.name=jack'                        
             | '"group":{"id":0,"name":"g1","owner":{"name":"jack"'
-            '/bean?group.parent.parent.children[0].name=xx'                    
             | 
'"group":{"id":0,"parent":{"id":0,"parent":{"children":[{"id":0,"name":"xx"}],"id":0}}}'
-            '/bean?group={"name":"g1","id":2}'                                 
             | '"group":{"id":2,"name":"g1"}'
-            '/bean?ids=3&ids=4'                                                
             | '"ids":[3,4]'
-            '/bean?ids[]=3&ids[]=4'                                            
             | '"ids":[3,4]'
-            '/bean?ids[1]=3&ids[2]=4'                                          
             | '"ids":[0,3,4]'
-            '/bean?scores=3&scores=4'                                          
             | '"scores":[3,4]'
-            '/bean?scores[]=3&scores[]=4'                                      
             | '"scores":[3,4]'
-            '/bean?scores[1]=3&scores[2]=4'                                    
             | '"scores":[null,3,4]'
-            
'/bean?tags[0].name=a&tags[0].value=b&tags[1].name=c&tags[1].value=d'           
| '"tags":[{"name":"a","value":"b"},{"name":"c","value":"d"}]'
-            
'/bean?tagsA[0].name=a&tagsA[0].value=b&tagsA[1].name=c&tagsA[1].value=d'       
| '"tagsA":[{"name":"a","value":"b"},{"name":"c","value":"d"}]'
-            '/bean?tagsB[0].name=e&tagsB[1].name=c&tagsB[1].value=d'           
             | '"tagsB":[{"name":"e","value":"b"},{"name":"c","value":"d"}]'
-            '/bean?tagsC[0].name=e&tagsC[1].name=c&tagsC[1].value=d'           
             | '"tagsC":[{"name":"e","value":"b"},{"name":"c","value":"d"}]'
-            '/bean?groupMaps[0].one.name=a&groupMaps[1].two.name=b'            
             | 
'"groupMaps":[{"one":{"id":0,"name":"a"}},{"two":{"id":0,"name":"b"}}]'
-            '/bean?id=1&features.a=xx&features.b=2'                            
             | '"features":{"a":"xx","b":"2"}'
-            '/bean?id=1&features[a]=xx&features[b]=2'                          
             | '"features":{"a":"xx","b":"2"}'
-            '/bean?group.id=2&group.features.a=1&group.features.b=xx'          
             | '"group":{"features":{"a":"1","b":"xx"},"id":2}'
-            
'/bean?tagMap.a.name=a&tagMap.a.value=b&tagMap.b.name=c&tagMap.b.value=d'       
| '"tagMap":{"a":{"name":"a","value":"b"},"b":{"name":"c","value":"d"}}'
-            '/bean?tagMapA.a.name=e&tagMapA.b.name=c&tagMapA.b.value=d'        
             | 
'"tagMapA":{"a":{"name":"e","value":"b"},"b":{"name":"c","value":"d"}}'
-            '/bean?tagMapB[2].name=a&tagMapB[2].value=b&tagMapB[3].name=c'     
             | '"tagMapB":{2:{"name":"a","value":"b"},3:{"name":"c"}}'
-            
'/bean?groupsMap.one[0].name=a&groupsMap.one[1].name=b&groupsMap.two[1].name=c' 
| 
'"groupsMap":{"one":[{"id":0,"name":"a"},{"id":0,"name":"b"}],"two":[null,{"id":0,"name":"c"}]}'
+            path                                                               
             | output                                                           
                        | fragments
+            '/bean?id=1&name=sam'                                              
             | '"id":1,"name":"sam"'                                            
                        | null
+            '/bean?user.id=1&user.name=sam'                                    
             | '"id":1,"name":"sam"'                                            
                        | null
+            '/bean?name=sam&p=123&[email protected]'                            
                | '"email":"[email protected]","name":"sam","phone":"123"'             
                              | null
+            '/bean?group.name=g1&group.owner.name=jack'                        
             | '"group":{"id":0,"name":"g1","owner":{"name":"jack"'             
                        | null
+            '/bean?group.parent.parent.children[0].name=xx'                    
             | 
'"group":{"id":0,"parent":{"id":0,"parent":{"children":[{"id":0,"name":"xx"}],"id":0}}}'
 | null
+            '/bean?group={"name":"g1","id":2}'                                 
             | '"group":{"id":2,"name":"g1"}'                                   
                        | null
+            '/bean?ids=3&ids=4'                                                
             | '"ids":[3,4]'                                                    
                        | null
+            '/bean?ids[]=3&ids[]=4'                                            
             | '"ids":[3,4]'                                                    
                        | null
+            '/bean?ids[1]=3&ids[2]=4'                                          
             | '"ids":[0,3,4]'                                                  
                        | null
+            '/bean?scores=3&scores=4'                                          
             | '"scores":[3,4]'                                                 
                        | null
+            '/bean?scores[]=3&scores[]=4'                                      
             | '"scores":[3,4]'                                                 
                        | null
+            '/bean?scores[1]=3&scores[2]=4'                                    
             | '"scores":[null,3,4]'                                            
                        | null
+            
'/bean?tags[0].name=a&tags[0].value=b&tags[1].name=c&tags[1].value=d'           
| '"tags":[{"name":"a","value":"b"},{"name":"c","value":"d"}]'                  
           | null
+            
'/bean?tagsA[0].name=a&tagsA[0].value=b&tagsA[1].name=c&tagsA[1].value=d'       
| '"tagsA":[{"name":"a","value":"b"},{"name":"c","value":"d"}]'                 
           | null
+            '/bean?tagsB[0].name=e&tagsB[1].name=c&tagsB[1].value=d'           
             | '"tagsB":[{"name":"e","value":"b"},{"name":"c","value":"d"}]'    
                        | null
+            '/bean?tagsC[0].name=e&tagsC[1].name=c&tagsC[1].value=d'           
             | '"tagsC":[{"name":"e","value":"b"},{"name":"c","value":"d"}]'    
                        | null
+            '/bean?groupMaps[0].one.name=a&groupMaps[1].two.name=b'            
             | 
'"groupMaps":[{"one":{"id":0,"name":"a"}},{"two":{"id":0,"name":"b"}}]'         
         | null
+            '/bean?id=1&features.a=xx&features.b=2'                            
             | null                                                             
                        | ['"features"', '"a":"xx"', '"b":"2"']
+            '/bean?id=1&features[a]=xx&features[b]=2'                          
             | null                                                             
                        | ['"features"', '"a":"xx"', '"b":"2"']
+            '/bean?group.id=2&group.features.a=1&group.features.b=xx'          
             | null                                                             
                        | ['"group"', '"features"', '"a":"1"', '"b":"xx"']
+            
'/bean?tagMap.a.name=a&tagMap.a.value=b&tagMap.b.name=c&tagMap.b.value=d'       
| null                                                                          
           | ['"tagMap"', '"name":"a"', '"value":"b"', '"name":"c"', 
'"value":"d"']
+            '/bean?tagMapA.a.name=e&tagMapA.b.name=c&tagMapA.b.value=d'        
             | null                                                             
                        | ['"tagMapA"', '"name":"e"', '"value":"b"', 
'"name":"c"', '"value":"d"']
+            '/bean?tagMapB[2].name=a&tagMapB[2].value=b&tagMapB[3].name=c'     
             | null                                                             
                        | ['"tagMapB"', '"name":"a"', '"value":"b"', 
'"name":"c"']
+            
'/bean?groupsMap.one[0].name=a&groupsMap.one[1].name=b&groupsMap.two[1].name=c' 
| null                                                                          
           | ['"groupsMap"', '"one":[{"id":0,"name":"a"}', '"name":"b"', 
'"two":[null,{"id":0,"name":"c"}]']
     }
 
     def "bean body test"() {

Reply via email to