[VOL-4466]  support multi onu sw section download

Change-Id: Iee29866f22a1b3de65aa257fdfaf46112d058c01
diff --git a/internal/pkg/core/device_handler_test.go b/internal/pkg/core/device_handler_test.go
index 108fd4c..f95856e 100644
--- a/internal/pkg/core/device_handler_test.go
+++ b/internal/pkg/core/device_handler_test.go
@@ -42,6 +42,7 @@
 	ofp "github.com/opencord/voltha-protos/v5/go/openflow_13"
 	oop "github.com/opencord/voltha-protos/v5/go/openolt"
 	"github.com/opencord/voltha-protos/v5/go/voltha"
+	"github.com/stretchr/testify/assert"
 )
 
 const (
@@ -646,6 +647,89 @@
 	}
 }
 
+func TestDeviceHandler_ProxyOmciRequests(t *testing.T) {
+	ctx := context.Background()
+	dh1 := newMockDeviceHandler()
+	dh2 := negativeDeviceHandler()
+	device1 := &voltha.Device{
+		Id:       "onu1",
+		Root:     false,
+		ParentId: "logical_device",
+		ProxyAddress: &voltha.Device_ProxyAddress{
+			DeviceId:       "onu1",
+			DeviceType:     "onu",
+			ChannelId:      1,
+			ChannelGroupId: 1,
+		},
+		ConnectStatus: 1,
+	}
+	device2 := device1
+	device2.ConnectStatus = 2
+
+	iaomciMsg1 := &ia.OmciMessages{
+		ConnectStatus: 1,
+		ProxyAddress: &voltha.Device_ProxyAddress{
+			DeviceId:       "onu2",
+			DeviceType:     "onu",
+			ChannelId:      1,
+			ChannelGroupId: 1,
+		},
+	}
+
+	iaomciMsg2 := &ia.OmciMessages{
+		ConnectStatus: 1,
+		ProxyAddress: &voltha.Device_ProxyAddress{
+			DeviceId:       "onu3",
+			DeviceType:     "onu",
+			ChannelId:      1,
+			ChannelGroupId: 1,
+		},
+	}
+
+	type args struct {
+		onuDevice *voltha.Device
+		omciMsg   *ia.OmciMessages
+	}
+	tests := []struct {
+		name          string
+		devicehandler *DeviceHandler
+		args          args
+	}{
+		{"sendProxiedMessage-1", dh1, args{onuDevice: device1, omciMsg: &ia.OmciMessages{}}},
+		{"sendProxiedMessage-2", dh1, args{onuDevice: device2, omciMsg: &ia.OmciMessages{}}},
+		{"sendProxiedMessage-3", dh1, args{onuDevice: nil, omciMsg: iaomciMsg1}},
+		{"sendProxiedMessage-4", dh1, args{onuDevice: nil, omciMsg: iaomciMsg2}},
+		{"sendProxiedMessage-5", dh2, args{onuDevice: nil, omciMsg: iaomciMsg2}},
+		{"sendProxiedMessage-6", dh2, args{onuDevice: device1, omciMsg: &ia.OmciMessages{}}},
+	}
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			switch tt.name {
+			case "sendProxiedMessage-1":
+				err := tt.devicehandler.ProxyOmciRequests(ctx, tt.args.omciMsg)
+				assert.Contains(t, err.Error(), "no deviceID")
+			case "sendProxiedMessage-2":
+				err := tt.devicehandler.ProxyOmciRequests(ctx, tt.args.omciMsg)
+				assert.Contains(t, err.Error(), "no deviceID")
+			case "sendProxiedMessage-3":
+				err := tt.devicehandler.ProxyOmciRequests(ctx, tt.args.omciMsg)
+				assert.Contains(t, err.Error(), "failed-communication")
+			case "sendProxiedMessage-4":
+				err := tt.devicehandler.ProxyOmciRequests(ctx, tt.args.omciMsg)
+				assert.Contains(t, err.Error(), "failed-communication")
+			case "sendProxiedMessage-5":
+				err := tt.devicehandler.ProxyOmciRequests(ctx, tt.args.omciMsg)
+				assert.Contains(t, err.Error(), "failed-communication")
+			case "sendProxiedMessage-6":
+				err := tt.devicehandler.ProxyOmciRequests(ctx, tt.args.omciMsg)
+				assert.Contains(t, err.Error(), "no deviceID")
+
+			}
+
+		})
+	}
+}
+
 func TestDeviceHandler_SendPacketInToCore(t *testing.T) {
 	dh1 := newMockDeviceHandler()
 	dh2 := negativeDeviceHandler()