package nucleus

// import (
// 	"reflect"
// 	"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/transport"

// 	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
// 		Transport transport.Transport
// 		UUID      uuid.UUID
// 		Name      string
// 	}
// 	tests := []struct {
// 		name   string
// 		fields fields
// 		want   uuid.UUID
// 	}{
// 		{
// 			name: "default",
// 			fields: fields{
// 				UUID: mneid,
// 			},
// 			want: mneid,
// 		},
// 	}
// 	for _, tt := range tests {
// 		t.Run(tt.name, func(t *testing.T) {
// 			d := &CommonNetworkElement{
// 				Model:     tt.fields.Model,
// 				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 TestNewNetworkElement(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: "MyNetworkElement",
// 			},
// 		},
// 		{
// 			name: "invalid options",
// 			args: args{
// 				sbi: sbi,
// 				opts: &tpb.TransportOption{
// 					Address:  "test:///",
// 					Username: "test",
// 					Password: "test",
// 				},
// 				name: "MyNetworkElement",
// 			},
// 			wantErr: true,
// 		},
// 	}
// 	for _, tt := range tests {
// 		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{})
// 			if (err != nil) != tt.wantErr {
// 				t.Errorf("NewNetworkElement() error = %v, wantErr %v", err, tt.wantErr)
// 				return
// 			}
// 			if resp != nil {
// 				if reflect.TypeOf(resp.GetPlugin()) != reflect.TypeOf(&openconfig.Device{}) {
// 					t.Error("NewNetworkElement() returned invalid GoStruct")
// 				}
// 				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")
// 				}
// 			}
// 		})
// 	}
// }
