marsevilspirit commented on code in PR #2941:
URL: https://github.com/apache/dubbo-go/pull/2941#discussion_r2230409640


##########
client/options_test.go:
##########
@@ -1231,3 +1232,85 @@ func TestWithKeepAliveConfig(t *testing.T) {
        }
        processNewClientCases(t, cases)
 }
+
+func TestClientOptionsInitConsumerToOverallReferenceCopy(t *testing.T) {
+       cliOpts := &ClientOptions{
+               Consumer: &global.ConsumerConfig{
+                       Filter:      "mock-filter",
+                       RegistryIDs: []string{"mock-registry"},
+                       TracingKey:  "trace-123",
+                       Check:       true,
+               },
+               overallReference: &global.ReferenceConfig{},
+               Registries: map[string]*global.RegistryConfig{
+                       "mock-registry": {
+                               Address:  "127.0.0.1:2181",
+                               Protocol: "zookeeper",
+                       },
+               },
+       }
+
+       err := cliOpts.init()
+       if err != nil {
+               t.Fatalf("init failed: %v", err)
+       }
+
+       // Verify that the overallReference field is overwritten
+       if cliOpts.overallReference.Filter != "mock-filter" {
+               t.Errorf("expected Filter to be copied from Consumer, got: %s", 
cliOpts.overallReference.Filter)
+       }
+
+       if len(cliOpts.overallReference.RegistryIDs) != 1 || 
cliOpts.overallReference.RegistryIDs[0] != "mock-registry" {
+               t.Errorf("expected RegistryIDs to be copied from Consumer, got: 
%v", cliOpts.overallReference.RegistryIDs)
+       }
+
+       if cliOpts.overallReference.TracingKey != "trace-123" {
+               t.Errorf("expected TracingKey to be copied from Consumer, got: 
%s", cliOpts.overallReference.TracingKey)
+       }
+
+       if cliOpts.overallReference.Check == nil || 
*cliOpts.overallReference.Check != true {
+               t.Errorf("expected Check to be copied as pointer with value 
true, got: %v", cliOpts.overallReference.Check)
+       }
+
+       falseVal := false
+
+       reverseTestingcliOpts := &ClientOptions{
+               Consumer: &global.ConsumerConfig{
+                       Filter:      "from-consumer",
+                       RegistryIDs: []string{"from-consumer-id"},
+                       TracingKey:  "from-consumer-trace",
+                       Check:       true,
+               },
+               overallReference: &global.ReferenceConfig{
+                       Filter:      "already-set",
+                       RegistryIDs: []string{"already-set-id"},
+                       TracingKey:  "already-set-trace",
+                       Check:       &falseVal,
+               },
+               Registries: map[string]*global.RegistryConfig{
+                       "already-set-id": {
+                               Address:  "127.0.0.1:2181",
+                               Protocol: "zookeeper",
+                       },
+               },
+       }
+
+       err = reverseTestingcliOpts.init()
+       if err != nil {
+               t.Fatalf("init failed: %v", err)
+       }
+
+       // Reverse test to verify that the overallReference field is not 
overwritten
+       if reverseTestingcliOpts.overallReference.Filter != "already-set" {
+               t.Errorf("expected Filter to remain 'already-set', got %s", 
reverseTestingcliOpts.overallReference.Filter)
+       }
+       if len(reverseTestingcliOpts.overallReference.RegistryIDs) != 1 || 
reverseTestingcliOpts.overallReference.RegistryIDs[0] != "already-set-id" {
+               t.Errorf("expected RegistryIDs to remain ['already-set-id'], 
got %v", reverseTestingcliOpts.overallReference.RegistryIDs)
+       }
+       if reverseTestingcliOpts.overallReference.TracingKey != 
"already-set-trace" {
+               t.Errorf("expected TracingKey to remain 'already-set-trace', 
got %s", reverseTestingcliOpts.overallReference.TracingKey)
+       }
+       if reverseTestingcliOpts.overallReference.Check == nil || 
*reverseTestingcliOpts.overallReference.Check != false {
+               t.Errorf("expected Check to remain false, got %v", 
reverseTestingcliOpts.overallReference.Check)
+       }
+}

Review Comment:
   I don't like this test case. I think you just need to test the part you 
changed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org
For additional commands, e-mail: notifications-h...@dubbo.apache.org

Reply via email to