micro/metadata/metadata_test.go

83 lines
1.6 KiB
Go
Raw Normal View History

2016-03-14 18:32:08 +00:00
package metadata
import (
2018-03-03 11:53:52 +00:00
"context"
2019-10-25 08:27:28 -07:00
"reflect"
2016-03-14 18:32:08 +00:00
"testing"
)
2019-01-17 09:40:49 +00:00
func TestMetadataCopy(t *testing.T) {
md := Metadata{
2019-12-31 13:37:29 +00:00
"Foo": "bar",
2019-01-17 09:40:49 +00:00
"bar": "baz",
}
cp := Copy(md)
for k, v := range md {
if cv := cp[k]; cv != v {
t.Fatalf("Got %s:%s for %s:%s", k, cv, k, v)
}
}
}
2016-03-14 18:32:08 +00:00
func TestMetadataContext(t *testing.T) {
md := Metadata{
2019-12-31 13:37:29 +00:00
"Foo": "bar",
2016-03-14 18:32:08 +00:00
}
ctx := NewContext(context.TODO(), md)
emd, ok := FromContext(ctx)
if !ok {
t.Errorf("Unexpected error retrieving metadata, got %t", ok)
}
2019-12-31 13:37:29 +00:00
if emd["Foo"] != md["Foo"] {
t.Errorf("Expected key: %s val: %s, got key: %s val: %s", "Foo", md["Foo"], "Foo", emd["Foo"])
2016-03-14 18:32:08 +00:00
}
if i := len(emd); i != 1 {
t.Errorf("Expected metadata length 1 got %d", i)
}
}
2019-10-25 23:28:43 +01:00
func TestMergeContext(t *testing.T) {
2019-10-25 08:27:28 -07:00
type args struct {
existing Metadata
append Metadata
overwrite bool
}
2019-10-25 08:27:28 -07:00
tests := []struct {
name string
args args
want Metadata
}{
{
name: "matching key, overwrite false",
args: args{
2019-12-31 13:37:29 +00:00
existing: Metadata{"Foo": "bar", "Sumo": "demo"},
append: Metadata{"Sumo": "demo2"},
2019-10-25 08:27:28 -07:00
overwrite: false,
},
2019-12-31 13:37:29 +00:00
want: Metadata{"Foo": "bar", "Sumo": "demo"},
2019-10-25 08:27:28 -07:00
},
{
name: "matching key, overwrite true",
args: args{
2019-12-31 13:37:29 +00:00
existing: Metadata{"Foo": "bar", "Sumo": "demo"},
append: Metadata{"Sumo": "demo2"},
2019-10-25 08:27:28 -07:00
overwrite: true,
},
2019-12-31 13:37:29 +00:00
want: Metadata{"Foo": "bar", "Sumo": "demo2"},
2019-10-25 08:27:28 -07:00
},
}
2019-10-25 08:27:28 -07:00
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
2019-10-25 23:28:43 +01:00
if got, _ := FromContext(MergeContext(NewContext(context.TODO(), tt.args.existing), tt.args.append, tt.args.overwrite)); !reflect.DeepEqual(got, tt.want) {
t.Errorf("MergeContext() = %v, want %v", got, tt.want)
2019-10-25 08:27:28 -07:00
}
})
}
}