[VOL-3745] Chaos Monkey: BBSIM-ONU does not respond to OMCI requests

Change-Id: I9d52a05657be448839f0a180126736ec9a33eaaf
diff --git a/internal/bbsim/devices/onu_omci_test.go b/internal/bbsim/devices/onu_omci_test.go
index 246514b..20f8a35 100644
--- a/internal/bbsim/devices/onu_omci_test.go
+++ b/internal/bbsim/devices/onu_omci_test.go
@@ -17,6 +17,8 @@
 package devices
 
 import (
+	"testing"
+
 	"github.com/google/gopacket"
 	bbsim "github.com/opencord/bbsim/internal/bbsim/types"
 	omcilib "github.com/opencord/bbsim/internal/common/omci"
@@ -24,7 +26,6 @@
 	me "github.com/opencord/omci-lib-go/generated"
 	"github.com/opencord/voltha-protos/v4/go/openolt"
 	"gotest.tools/assert"
-	"testing"
 )
 
 var mockAttr = me.AttributeValueMap{
@@ -240,3 +241,21 @@
 	responseLayer = omciToCreateResponse(t, omciPkt)
 	assert.Equal(t, responseLayer.Result, me.ProcessingError)
 }
+
+func Test_OmciResponseRate(t *testing.T) {
+
+	onu := createMockOnu(1, 1)
+
+	for onu.OmciResponseRate = 0; onu.OmciResponseRate <= maxOmciMsgCounter; onu.OmciResponseRate++ {
+		//t.Logf("onu.OmciResponseRate: %d", onu.OmciResponseRate)
+		stream := &mockStream{
+			Calls: make(map[int]*openolt.Indication),
+		}
+		//send ten OMCI requests and check if number of responses is only equal to onu.OmciResponseRate
+		for i := 0; i < 10; i++ {
+			onu.handleOmciRequest(makeOmciMessage(t, onu, makeOmciSetRequest(t)), stream)
+			//t.Logf("stream.CallCount: %d", stream.CallCount)
+		}
+		assert.Equal(t, stream.CallCount, int(onu.OmciResponseRate))
+	}
+}