Skip to content
Snippets Groups Projects

Change the current gosdn plugin implementation from Go's internal plugin system to hashicorp's go-plugins

Merged Ghost User requested to merge mb/plugin-registry-hashicorp-go-plugin into develop
1 file
+ 13
19
Compare changes
  • Side-by-side
  • Inline
@@ -5,20 +5,18 @@ import (
"testing"
"code.fbi.h-da.de/danet/gosdn/controller/conflict"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/transport"
"code.fbi.h-da.de/danet/gosdn/controller/mocks"
tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport"
"code.fbi.h-da.de/danet/gosdn/models/generated/openconfig"
"github.com/google/uuid"
"github.com/openconfig/ygot/ygot"
)
func TestNetworkElement_Id(t *testing.T) {
type fields struct {
Model ygot.ValidatedGoStruct
SBI southbound.SouthboundInterface
Plugin plugin.Plugin
Transport transport.Transport
UUID uuid.UUID
Name string
@@ -39,8 +37,7 @@ func TestNetworkElement_Id(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
d := &CommonNetworkElement{
Plugin: tt.fields.Model,
sbi: tt.fields.SBI,
Plugin: tt.fields.Plugin,
transport: tt.fields.Transport,
UUID: tt.fields.UUID,
name: tt.fields.Name,
@@ -53,11 +50,11 @@ func TestNetworkElement_Id(t *testing.T) {
}
func TestNewNetworkElement(t *testing.T) {
sbi := &OpenConfig{}
mockPlugin := mockPlugin(t)
type args struct {
sbi southbound.SouthboundInterface
opts *tpb.TransportOption
name string
plugin plugin.Plugin
opts *tpb.TransportOption
name string
}
tests := []struct {
name string
@@ -67,7 +64,7 @@ func TestNewNetworkElement(t *testing.T) {
{
name: "default",
args: args{
sbi: sbi,
plugin: mockPlugin,
opts: &tpb.TransportOption{
Address: "test:///",
Username: "test",
@@ -87,7 +84,7 @@ func TestNewNetworkElement(t *testing.T) {
{
name: "invalid options",
args: args{
sbi: sbi,
plugin: mockPlugin,
opts: &tpb.TransportOption{
Address: "test:///",
Username: "test",
@@ -102,21 +99,18 @@ func TestNewNetworkElement(t *testing.T) {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
resp, err := NewNetworkElement(tt.args.name, uuid.Nil, tt.args.opts, tt.args.sbi, conflict.Metadata{})
resp, err := NewNetworkElement(tt.args.name, uuid.Nil, tt.args.opts, tt.args.plugin, conflict.Metadata{})
if (err != nil) != tt.wantErr {
t.Errorf("NewNetworkElement() error = %v, wantErr %v", err, tt.wantErr)
return
}
if resp != nil {
if reflect.TypeOf(resp.GetModel()) != reflect.TypeOf(&openconfig.Device{}) {
t.Error("NewNetworkElement() returned invalid GoStruct")
if reflect.TypeOf(resp.GetPlugin()) != reflect.TypeOf(&mocks.Plugin{}) {
t.Error("NewNetworkElement() returned invalid plugin")
}
if reflect.TypeOf(resp.Transport()) != reflect.TypeOf(&Gnmi{}) {
t.Error("NewNetworkElement() returned invalid transport")
}
if reflect.TypeOf(resp.SBI()) != reflect.TypeOf(&OpenConfig{}) {
t.Error("NewNetworkElement() returned invalid GoStruct")
}
if resp.Name() != "MyNetworkElement" {
t.Error("NewNetworkElement() returned wrong name")
}
Loading