mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 16:24:19 -04:00
* plugin/metadata: some cleanups Name to provider.go as that's what being defined right now in the file. Use request.Request because that's done in variables.go anyway. Name the main storage M, because there is no further meaning behind. Remove superfluous methods Signed-off-by: Miek Gieben <miek@miek.nl> * Fix test Signed-off-by: Miek Gieben <miek@miek.nl>
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package metadata
|
|
|
|
import (
|
|
"context"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestMD(t *testing.T) {
|
|
tests := []struct {
|
|
addValues map[string]interface{}
|
|
expectedValues map[string]interface{}
|
|
}{
|
|
{
|
|
// Add initial metadata key/vals
|
|
map[string]interface{}{"key1": "val1", "key2": 2},
|
|
map[string]interface{}{"key1": "val1", "key2": 2},
|
|
},
|
|
{
|
|
// Add additional key/vals.
|
|
map[string]interface{}{"key3": 3, "key4": 4.5},
|
|
map[string]interface{}{"key1": "val1", "key2": 2, "key3": 3, "key4": 4.5},
|
|
},
|
|
}
|
|
|
|
// Using one same md and ctx for all test cases
|
|
ctx := context.TODO()
|
|
ctx = context.WithValue(ctx, metadataKey{}, M{})
|
|
m, _ := FromContext(ctx)
|
|
|
|
for i, tc := range tests {
|
|
for k, v := range tc.addValues {
|
|
m.SetValue(k, v)
|
|
}
|
|
if !reflect.DeepEqual(tc.expectedValues, map[string]interface{}(m)) {
|
|
t.Errorf("Test %d: Expected %v but got %v", i, tc.expectedValues, m)
|
|
}
|
|
|
|
// Make sure that md is recieved from context successfullly
|
|
mFromContext, ok := FromContext(ctx)
|
|
if !ok {
|
|
t.Errorf("Test %d: md is not recieved from the context", i)
|
|
}
|
|
if !reflect.DeepEqual(m, mFromContext) {
|
|
t.Errorf("Test %d: md recieved from context differs from initial. Initial: %v, from context: %v", i, m, mFromContext)
|
|
}
|
|
}
|
|
}
|