69 lines
1.3 KiB
Go
69 lines
1.3 KiB
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestFromContext(t *testing.T) {
|
||
|
ctx := context.WithValue(context.TODO(), configKey{}, NewConfig())
|
||
|
|
||
|
c, ok := FromContext(ctx)
|
||
|
if c == nil || !ok {
|
||
|
t.Fatal("FromContext not works")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestNewContext(t *testing.T) {
|
||
|
ctx := NewContext(context.TODO(), NewConfig())
|
||
|
|
||
|
c, ok := FromContext(ctx)
|
||
|
if c == nil || !ok {
|
||
|
t.Fatal("NewContext not works")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestSetOption(t *testing.T) {
|
||
|
type key struct{}
|
||
|
o := SetOption(key{}, "test")
|
||
|
opts := &Options{}
|
||
|
o(opts)
|
||
|
|
||
|
if v, ok := opts.Context.Value(key{}).(string); !ok || v == "" {
|
||
|
t.Fatal("SetOption not works")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestSetSaveOption(t *testing.T) {
|
||
|
type key struct{}
|
||
|
o := SetSaveOption(key{}, "test")
|
||
|
opts := &SaveOptions{}
|
||
|
o(opts)
|
||
|
|
||
|
if v, ok := opts.Context.Value(key{}).(string); !ok || v == "" {
|
||
|
t.Fatal("SetSaveOption not works")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestSetLoadOption(t *testing.T) {
|
||
|
type key struct{}
|
||
|
o := SetLoadOption(key{}, "test")
|
||
|
opts := &LoadOptions{}
|
||
|
o(opts)
|
||
|
|
||
|
if v, ok := opts.Context.Value(key{}).(string); !ok || v == "" {
|
||
|
t.Fatal("SetLoadOption not works")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestSetWatchOption(t *testing.T) {
|
||
|
type key struct{}
|
||
|
o := SetWatchOption(key{}, "test")
|
||
|
opts := &WatchOptions{}
|
||
|
o(opts)
|
||
|
|
||
|
if v, ok := opts.Context.Value(key{}).(string); !ok || v == "" {
|
||
|
t.Fatal("SetWatchOption not works")
|
||
|
}
|
||
|
}
|