Skip to content
Snippets Groups Projects
device_test.go 2.18 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"
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	"code.fbi.h-da.de/cocsn/gosdn/forks/goarista/gnmi"
    	"code.fbi.h-da.de/cocsn/yang-models/generated/openconfig"
    	"github.com/google/uuid"
    	"github.com/openconfig/ygot/ygot"
    )
    
    func TestDevice_Id(t *testing.T) {
    	type fields struct {
    		GoStruct  ygot.GoStruct
    		SBI       SouthboundInterface
    		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) {
    			d := &Device{
    				GoStruct:  tt.fields.GoStruct,
    				SBI:       tt.fields.SBI,
    				Transport: tt.fields.Transport,
    
    				UUID:      tt.fields.UUID,
    
    				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  SouthboundInterface
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    		opts TransportOptions
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	}
    	tests := []struct {
    		name    string
    		args    args
    		want    *Device
    		wantErr bool
    	}{
    		{
    			name: "default",
    			args: args{
    
    				sbi: sbi,
    				opts: &GnmiTransportOptions{
    					Config: gnmi.Config{
    						Addr:     "test:///",
    						Username: "test",
    						Password: "test",
    					},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				},
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			},
    			want: &Device{
    				GoStruct: &openconfig.Device{},
    				SBI:      sbi,
    
    				UUID:     uuid.New(),
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    				Transport: &Gnmi{
    
    					Options: &GnmiTransportOptions{
    						Config: gnmi.Config{
    							Addr:     "test:///",
    							Username: "test",
    							Password: "test",
    						},
    
    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) {
    
    			got, err := NewDevice(tt.args.sbi, tt.args.opts, tt.args.name)
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			if err != nil {
    				t.Error(err)
    			}
    
    			tt.want.Transport.(*Gnmi).client = got.Transport.(*Gnmi).client
    
    			tt.want.UUID = got.ID()
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    			if (err != nil) != tt.wantErr {
    				t.Errorf("NewDevice() error = %v, wantErr %v", err, tt.wantErr)
    				return
    			}
    			if !reflect.DeepEqual(got, tt.want) {
    				t.Errorf("NewDevice() got = %v, want %v", got, tt.want)
    			}
    		})
    	}
    }