[VOL-2650] Deleting gem ports from local cache not working as expected

Fixed the gem port deletion from local cache and added a unit test case

Change-Id: Ic22e7345072641957516417b41e26e70c685be78
diff --git a/adaptercore/openolt_flowmgr.go b/adaptercore/openolt_flowmgr.go
index 5a4225a..2b8855a 100644
--- a/adaptercore/openolt_flowmgr.go
+++ b/adaptercore/openolt_flowmgr.go
@@ -1475,14 +1475,15 @@
 	f.lockCache.Lock()
 	defer f.lockCache.Unlock()
 	onugem := f.onuGemInfo[intfID]
-	for _, onu := range onugem {
+	for i, onu := range onugem {
 		if onu.OnuID == onuID {
-			for i, gem := range onu.GemPorts {
+			for j, gem := range onu.GemPorts {
 				// If the gemport is found, delete it from local cache.
 				if gem == gemPortID {
-					onu.GemPorts = append(onu.GemPorts[:i], onu.GemPorts[i+1:]...)
+					onu.GemPorts = append(onu.GemPorts[:j], onu.GemPorts[j+1:]...)
+					onugem[i] = onu
 					log.Debugw("removed gemport from local cache",
-						log.Fields{"intfID": intfID, "onuID": onuID, "gemPortID": gemPortID})
+						log.Fields{"intfID": intfID, "onuID": onuID, "deletedGemPortID": gemPortID, "gemPorts": onu.GemPorts})
 					break
 				}
 			}