Peter Kurfer
3466037421
- remove option to expose commands from a plugins - remove dynamic command loading to make startup process easier
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package plugins
|
|
|
|
import (
|
|
"github.com/baez90/inetmock/pkg/api"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func Test_handlerRegistry_HandlerForName(t *testing.T) {
|
|
type fields struct {
|
|
handlers map[string]api.PluginInstanceFactory
|
|
}
|
|
type args struct {
|
|
handlerName string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
fields fields
|
|
args args
|
|
wantInstance api.ProtocolHandler
|
|
wantOk bool
|
|
}{
|
|
{
|
|
name: "No instance if nothing is registered",
|
|
fields: fields{},
|
|
args: args{},
|
|
wantInstance: nil,
|
|
wantOk: false,
|
|
},
|
|
{
|
|
name: "Nil instance from pseudo factory",
|
|
fields: fields{
|
|
handlers: map[string]api.PluginInstanceFactory{
|
|
"pseudo": func() api.ProtocolHandler {
|
|
return nil
|
|
},
|
|
},
|
|
},
|
|
args: args{
|
|
handlerName: "pseudo",
|
|
},
|
|
wantInstance: nil,
|
|
wantOk: true,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
h := &handlerRegistry{
|
|
handlers: tt.fields.handlers,
|
|
}
|
|
gotInstance, gotOk := h.HandlerForName(tt.args.handlerName)
|
|
if !reflect.DeepEqual(gotInstance, tt.wantInstance) {
|
|
t.Errorf("HandlerForName() gotInstance = %v, want %v", gotInstance, tt.wantInstance)
|
|
}
|
|
if gotOk != tt.wantOk {
|
|
t.Errorf("HandlerForName() gotOk = %v, want %v", gotOk, tt.wantOk)
|
|
}
|
|
})
|
|
}
|
|
}
|