Skip to content
Snippets Groups Projects
device_test.go 2.76 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/interfaces/southbound"
    	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/transport"
    
    	tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport"
    
    	"code.fbi.h-da.de/danet/gosdn/models/generated/openconfig"
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	"github.com/google/uuid"
    	"github.com/openconfig/ygot/ygot"
    )
    
    func TestDevice_Id(t *testing.T) {
    	type fields struct {
    
    Andre Sterba's avatar
    Andre Sterba committed
    		Model     ygot.ValidatedGoStruct
    
    		SBI       southbound.SouthboundInterface
    		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
    			},
    			want: did,
    		},
    	}
    	for _, tt := range tests {
    		t.Run(tt.name, func(t *testing.T) {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			d := &CommonDevice{
    
    Andre Sterba's avatar
    Andre Sterba committed
    				Model:     tt.fields.Model,
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				sbi:       tt.fields.SBI,
    				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)
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			}
    		})
    	}
    }
    
    func TestNewDevice(t *testing.T) {
    	sbi := &OpenConfig{}
    	type args struct {
    
    		sbi  southbound.SouthboundInterface
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    		opts *tpb.TransportOption
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	}
    	tests := []struct {
    		name    string
    		args    args
    		wantErr bool
    	}{
    		{
    			name: "default",
    			args: args{
    
    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{
    				sbi: sbi,
    				opts: &tpb.TransportOption{
    					Address:  "test:///",
    					Username: "test",
    					Password: "test",
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				name: "MyDevice",
    
    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 := NewDevice(tt.args.name, uuid.Nil, tt.args.opts, tt.args.sbi)
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			if (err != nil) != tt.wantErr {
    				t.Errorf("NewDevice() error = %v, wantErr %v", err, tt.wantErr)
    				return
    			}
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			if resp != nil {
    
    Andre Sterba's avatar
    Andre Sterba committed
    				if reflect.TypeOf(resp.GetModel()) != reflect.TypeOf(&openconfig.Device{}) {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    					t.Error("NewDevice() returned invalid GoStruct")
    				}
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				if reflect.TypeOf(resp.Transport()) != reflect.TypeOf(&Gnmi{}) {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    					t.Error("NewDevice() returned invalid transport")
    				}
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				if reflect.TypeOf(resp.SBI()) != reflect.TypeOf(&OpenConfig{}) {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    					t.Error("NewDevice() returned invalid GoStruct")
    				}
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				if resp.Name() != "MyDevice" {
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    					t.Error("NewDevice() returned wrong name")
    				}