From 45dfefc0274b00ad9967570cbd1cc1e25f0b8048 Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@stud.h-da.de>
Date: Fri, 26 Feb 2021 00:24:52 +0100
Subject: [PATCH] added testcase for:

- NewGnmiTransport()
- "fails wrong type" for pnd.AddDevice() and pnd.AddSBI()
---
 nucleus/gnmi_transport_test.go         | 44 ++++++++++++++++++++++++++
 nucleus/principalNetworkDomain_test.go | 27 ++++++++++++++--
 2 files changed, 68 insertions(+), 3 deletions(-)

diff --git a/nucleus/gnmi_transport_test.go b/nucleus/gnmi_transport_test.go
index b36a4a542..095731339 100644
--- a/nucleus/gnmi_transport_test.go
+++ b/nucleus/gnmi_transport_test.go
@@ -37,6 +37,15 @@ func testSetupGnmi() {
 		Encoding: gpb.Encoding_PROTO,
 	}
 
+	gnmiTransportOptions = &GnmiTransportOptions{
+		Username: "test",
+		Password: "test",
+		Addr:     "localhost:13371",
+		SetNode:  nil,
+		RespChan: make(chan *gpb.SubscribeResponse),
+		Encoding: gpb.Encoding_PROTO,
+	}
+
 	startGnmiTarget = make(chan string)
 	stopGnmiTarget = make(chan bool)
 	go targetRunner()
@@ -61,10 +70,45 @@ func mockTransport() Gnmi {
 }
 
 var gnmiConfig *gnmi.Config
+var gnmiTransportOptions *GnmiTransportOptions
 var startGnmiTarget chan string
 var stopGnmiTarget chan bool
 var mockContext = mock.MatchedBy(func(ctx context.Context) bool { return true })
 
+func TestNewGnmiTransport(t *testing.T) {
+	gnmiTransport := mockTransport()
+	type args struct {
+		opts *GnmiTransportOptions
+	}
+	tests := []struct {
+		name    string
+		args    args
+		want    *Gnmi
+		wantErr bool
+	}{
+		{
+			name: "default",
+			args: args{
+				opts: gnmiTransportOptions,
+			},
+			want:    &gnmiTransport,
+			wantErr: false,
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			got, err := NewGnmiTransport(tt.args.opts)
+			if (err != nil) != tt.wantErr {
+				t.Errorf("NewGnmiTransport() error = %v, wantErr %v", err, tt.wantErr)
+				return
+			}
+			if !reflect.DeepEqual(got, tt.want) {
+				t.Errorf("NewGnmiTransport() = %v, want %v", got, tt.want)
+			}
+		})
+	}
+}
+
 func TestGnmi_Capabilities(t *testing.T) {
 	transport := mockTransport()
 	capabilityResponse := &gpb.CapabilityResponse{
diff --git a/nucleus/principalNetworkDomain_test.go b/nucleus/principalNetworkDomain_test.go
index f08877e69..d37447d6a 100644
--- a/nucleus/principalNetworkDomain_test.go
+++ b/nucleus/principalNetworkDomain_test.go
@@ -169,7 +169,7 @@ func Test_destroy(t *testing.T) {
 
 func Test_pndImplementation_AddDevice(t *testing.T) {
 	type args struct {
-		device *Device
+		device interface{}
 	}
 	tests := []struct {
 		name    string
@@ -183,6 +183,13 @@ func Test_pndImplementation_AddDevice(t *testing.T) {
 			}},
 			wantErr: false,
 		},
+		{
+			name: "fails wrong type",
+			args: args{device: &pndImplementation{
+				id: did,
+			}},
+			wantErr: true,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -204,7 +211,7 @@ func Test_pndImplementation_AddDevice(t *testing.T) {
 
 func Test_pndImplementation_AddSbi(t *testing.T) {
 	type args struct {
-		sbi SouthboundInterface
+		sbi interface{}
 	}
 	tests := []struct {
 		name    string
@@ -220,6 +227,15 @@ func Test_pndImplementation_AddSbi(t *testing.T) {
 			},
 			wantErr: false,
 		},
+		{
+			name: "fails wrong type",
+			args: args{
+				sbi: &pndImplementation{
+					id: defaultSbiId,
+				},
+			},
+			wantErr: true,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
@@ -370,7 +386,12 @@ func Test_pndImplementation_MarshalDevice(t *testing.T) {
 		want    string
 		wantErr bool
 	}{
-		{name: "default", args: args{did}, want: "{\n\t\"Acl\": null,\n\t\"Bgp\": null,\n\t\"Components\": null,\n\t\"Interfaces\": null,\n\t\"LocalRoutes\": null,\n\t\"Messages\": null,\n\t\"NetworkInstances\": null,\n\t\"RoutingPolicy\": null,\n\t\"System\": null\n}", wantErr: false},
+		{
+			name:    "default",
+			args:    args{did},
+			want:    "{\n\t\"Acl\": null,\n\t\"Bgp\": null,\n\t\"Components\": null,\n\t\"Interfaces\": null,\n\t\"LocalRoutes\": null,\n\t\"Messages\": null,\n\t\"NetworkInstances\": null,\n\t\"RoutingPolicy\": null,\n\t\"System\": null\n}",
+			wantErr: false,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-- 
GitLab