diff --git a/broker/memory_test.go b/broker/memory_test.go index 25c7cfe1..168c8d16 100644 --- a/broker/memory_test.go +++ b/broker/memory_test.go @@ -32,7 +32,7 @@ func TestMemoryBroker(t *testing.T) { "foo": "bar", "id": fmt.Sprintf("%d", i), }, - Body: []byte(`hello world`), + Body: []byte(`"hello world"`), } if err := b.Publish(ctx, topic, message); err != nil { diff --git a/config/config.go b/config/config.go index d257849d..6cd4457a 100644 --- a/config/config.go +++ b/config/config.go @@ -43,13 +43,13 @@ type Watcher interface { } // Load loads config from config sources -func Load(ctx context.Context, cs ...Config) error { +func Load(ctx context.Context, cs []Config, opts ...LoadOption) error { var err error for _, c := range cs { if err = c.Init(); err != nil { return err } - if err = c.Load(ctx); err != nil { + if err = c.Load(ctx, opts...); err != nil { return err } } diff --git a/util/fn/fn.go b/util/fn/fn.go new file mode 100644 index 00000000..dd8c1c28 --- /dev/null +++ b/util/fn/fn.go @@ -0,0 +1,15 @@ +package fn + +type Initer interface { + Init(opts ...interface{}) error +} + +func Init(ifaces ...Initer) error { + var err error + for _, iface := range ifaces { + if err = iface.Init(); err != nil { + return err + } + } + return nil +}