mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
client/v3/watch_test.go: test fmt metadata print
Signed-off-by: Mohamed Awnallah <mohamedmohey2352@gmail.com> Co-authored-by: Benjamin Wang <ahrtr>
This commit is contained in:
parent
b1fc94f88e
commit
1bfca729f5
@ -15,8 +15,11 @@
|
||||
package clientv3
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"google.golang.org/grpc/metadata"
|
||||
|
||||
"go.etcd.io/etcd/api/v3/mvccpb"
|
||||
)
|
||||
|
||||
@ -53,3 +56,53 @@ func TestEvent(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestStreamKeyFromCtx tests the streamKeyFromCtx function to ensure it correctly
|
||||
// formats metadata as a map[string][]string when extracting metadata from the context.
|
||||
//
|
||||
// The fmt package in Go guarantees that maps are printed in a consistent order,
|
||||
// sorted by the keys. This test verifies that the streamKeyFromCtx function
|
||||
// produces the expected formatted string representation of metadata maps when called with
|
||||
// various context scenarios.
|
||||
func TestStreamKeyFromCtx(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
ctx context.Context
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
name: "multiple keys",
|
||||
ctx: metadata.NewOutgoingContext(context.Background(), metadata.MD{
|
||||
"key1": []string{"value1"},
|
||||
"key2": []string{"value2a", "value2b"},
|
||||
}),
|
||||
expected: "map[key1:[value1] key2:[value2a value2b]]",
|
||||
},
|
||||
{
|
||||
name: "no keys",
|
||||
ctx: metadata.NewOutgoingContext(context.Background(), metadata.MD{}),
|
||||
expected: "map[]",
|
||||
},
|
||||
{
|
||||
name: "only one key",
|
||||
ctx: metadata.NewOutgoingContext(context.Background(), metadata.MD{
|
||||
"key1": []string{"value1", "value1a"},
|
||||
}),
|
||||
expected: "map[key1:[value1 value1a]]",
|
||||
},
|
||||
{
|
||||
name: "no metadata",
|
||||
ctx: context.Background(),
|
||||
expected: "",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
actual := streamKeyFromCtx(tt.ctx)
|
||||
if actual != tt.expected {
|
||||
t.Errorf("streamKeyFromCtx() = %v, expected %v", actual, tt.expected)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user