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