Skip to content
Snippets Groups Projects
networkElement_test.go 2.68 KiB
Newer Older
  • Learn to ignore specific revisions
  • Manuel Kieweg's avatar
    Manuel Kieweg committed
    package nucleus
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    import (
    
    Andre Sterba's avatar
    Andre Sterba committed
    	"reflect"
    	"testing"
    
    
    	"code.fbi.h-da.de/danet/gosdn/controller/conflict"
    
    	"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"
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	"github.com/google/uuid"
    )
    
    
    func TestNetworkElement_Id(t *testing.T) {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	type fields struct {
    
    		Plugin    plugin.Plugin
    
    		Transport transport.Transport
    
    		UUID      uuid.UUID
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	}
    	tests := []struct {
    		name   string
    		fields fields
    		want   uuid.UUID
    	}{
    		{
    			name: "default",
    			fields: fields{
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    		},
    	}
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    
    				Plugin:    tt.fields.Plugin,
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				transport: tt.fields.Transport,
    
    				UUID:      tt.fields.UUID,
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				name:      tt.fields.Name,
    
    			if got := d.ID(); !reflect.DeepEqual(got, tt.want) {
    				t.Errorf("ID() = %v, want %v", got, tt.want)
    
    func TestNewNetworkElement(t *testing.T) {
    
    	mockPlugin := mockPlugin(t)
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	type args struct {
    
    		plugin plugin.Plugin
    		opts   *tpb.TransportOption
    		name   string
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	}
    	tests := []struct {
    		name    string
    		args    args
    		wantErr bool
    	}{
    		{
    			name: "default",
    			args: args{
    
    				plugin: mockPlugin,
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				opts: &tpb.TransportOption{
    					Address:  "test:///",
    					Username: "test",
    					Password: "test",
    					TransportOption: &tpb.TransportOption_GnmiTransportOption{
    						GnmiTransportOption: &tpb.GnmiTransportOption{
    							Compression:     "",
    							GrpcDialOptions: nil,
    							Token:           "",
    							Encoding:        0,
    						},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    		},
    		{
    			name: "invalid options",
    			args: args{
    
    				plugin: mockPlugin,
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				opts: &tpb.TransportOption{
    					Address:  "test:///",
    					Username: "test",
    					Password: "test",
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			wantErr: true,
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    		},
    	}
    	for _, tt := range tests {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    		t.Run(tt.name, func(t *testing.T) {
    
    			t.Parallel()
    
    			resp, err := NewNetworkElement(tt.args.name, uuid.Nil, tt.args.opts, tt.args.plugin, conflict.Metadata{})
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			if (err != nil) != tt.wantErr {
    
    				t.Errorf("NewNetworkElement() error = %v, wantErr %v", err, tt.wantErr)
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				return
    			}
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			if resp != nil {
    
    				if reflect.TypeOf(resp.GetPlugin()) != reflect.TypeOf(&mocks.Plugin{}) {
    					t.Error("NewNetworkElement() returned invalid plugin")
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				}
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				if reflect.TypeOf(resp.Transport()) != reflect.TypeOf(&Gnmi{}) {
    
    					t.Error("NewNetworkElement() returned invalid transport")
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				}
    
    				if resp.Name() != "MyNetworkElement" {
    					t.Error("NewNetworkElement() returned wrong name")
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				}