-
Martin Stiemerling authored
uuidInput must be set to uuid.Nil if no uuid is already present, otherwise use the uuid.
Martin Stiemerling authoreduuidInput must be set to uuid.Nil if no uuid is already present, otherwise use the uuid.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
device_test.go 2.70 KiB
package nucleus
import (
"reflect"
"testing"
"code.fbi.h-da.de/danet/gosdn/interfaces/southbound"
"code.fbi.h-da.de/danet/gosdn/interfaces/transport"
tpb "code.fbi.h-da.de/danet/api/go/gosdn/transport"
"code.fbi.h-da.de/danet/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 southbound.SouthboundInterface
Transport transport.Transport
UUID uuid.UUID
Name string
}
tests := []struct {
name string
fields fields
want uuid.UUID
}{
{
name: "default",
fields: fields{
UUID: did,
},
want: did,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
d := &CommonDevice{
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)
}
})
}
}
func TestNewDevice(t *testing.T) {
sbi := &OpenConfig{}
type args struct {
sbi southbound.SouthboundInterface
opts *tpb.TransportOption
name string
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: "default",
args: args{
sbi: sbi,
opts: &tpb.TransportOption{
Address: "test:///",
Username: "test",
Password: "test",
TransportOption: &tpb.TransportOption_GnmiTransportOption{
GnmiTransportOption: &tpb.GnmiTransportOption{
Compression: "",
GrpcDialOptions: nil,
Token: "",
Encoding: 0,
},
},
},
name: "MyDevice",
},
},
{
name: "invalid options",
args: args{
sbi: sbi,
opts: &tpb.TransportOption{
Address: "test:///",
Username: "test",
Password: "test",
},
name: "MyDevice",
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
resp, err := NewDevice(tt.args.name, uuid.Nil, tt.args.opts, tt.args.sbi)
if (err != nil) != tt.wantErr {
t.Errorf("NewDevice() error = %v, wantErr %v", err, tt.wantErr)
return
}
if resp != nil {
if reflect.TypeOf(resp.Model()) != reflect.TypeOf(&openconfig.Device{}) {
t.Error("NewDevice() returned invalid GoStruct")
}
if reflect.TypeOf(resp.Transport()) != reflect.TypeOf(&Gnmi{}) {
t.Error("NewDevice() returned invalid transport")
}
if reflect.TypeOf(resp.SBI()) != reflect.TypeOf(&OpenConfig{}) {
t.Error("NewDevice() returned invalid GoStruct")
}
if resp.Name() != "MyDevice" {
t.Error("NewDevice() returned wrong name")
}
}
})
}
}