api/internal/plugins/loading_test.go
Peter Kurfer 3466037421 Remove plugin commands feature
- remove option to expose commands from a plugins
- remove dynamic command loading to make startup process easier
2020-06-15 12:32:18 +02:00

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)
}
})
}
}