mainCtrl = &testingSubmgrControl{}
mainCtrl.RmrControl.Init("SUBMGRCTL", srcId, rtgSvc)
mainCtrl.c = NewControl()
+ mainCtrl.c.UTTesting = true
+ mainCtrl.c.LoggerLevel = 4
+ mainCtrl.c.e2ap.SetASN1DebugPrintStatus(mainCtrl.c.LoggerLevel)
+ xapp.Logger.Debug("Test: LoggerLevel %v", mainCtrl.c.LoggerLevel)
xapp.Logger.Debug("Replacing real db with test db")
- mainCtrl.c.db = CreateMock() // This overrides real database for testing
+ mainCtrl.c.e2SubsDb = CreateMock() // This overrides real E2 Subscription database for testing
+ mainCtrl.c.restSubsDb = CreateRestSubsDbMock() // This overrides real REST Subscription database for testing
+ mainCtrl.c.e2IfStateDb = CreateXappRnibIfMock() // This overrides real RNIB database for testing
xapp.SetReadyCB(mainCtrl.ReadyCB, nil)
go xapp.RunWithParams(mainCtrl.c, false)
mainCtrl.WaitCB()
mainCtrl.c.registry.subIds = nil
// Initialize subIds slice and subscription map
mainCtrl.c.registry.Initialize()
+ mainCtrl.c.restDuplicateCtrl.Init()
// Read subIds and subscriptions from database
subIds, register, err := mainCtrl.c.ReadAllSubscriptionsFromSdl()
if err != nil {
mc.TestError(t, "%v", err)
} else {
- mainCtrl.c.registry.register = nil
mainCtrl.c.registry.subIds = subIds
mainCtrl.c.registry.register = register
-
- mc.TestLog(t, "register:")
- for subId, subs := range register {
- mc.TestLog(t, " subId=%v", subId)
- mc.TestLog(t, " subs.SubRespRcvd=%v", subs.SubRespRcvd)
- mc.TestLog(t, " subs=%v\n", subs)
- }
-
mc.TestLog(t, "mainCtrl.c.registry.register:")
for subId, subs := range mainCtrl.c.registry.register {
mc.TestLog(t, " subId=%v", subId)
mc.TestLog(t, " subs=%v\n", subs)
}
}
+ restSubscriptions, err := mainCtrl.c.ReadAllRESTSubscriptionsFromSdl()
+ if err != nil {
+ mc.TestError(t, "%v", err)
+ } else {
+ mainCtrl.c.registry.restSubscriptions = restSubscriptions
+ mc.TestLog(t, "mainCtrl.c.registry.restSubscriptions:")
+ for restSubId, restSubs := range mainCtrl.c.registry.restSubscriptions {
+ mc.TestLog(t, " restSubId=%v", restSubId)
+ mc.TestLog(t, " restSubs=%v\n", restSubs)
+ }
+ }
+
go mainCtrl.c.HandleUncompletedSubscriptions(mainCtrl.c.registry.register)
}
+func (mc *testingSubmgrControl) MakeTransactionNil(t *testing.T, subId uint32) {
+
+ mc.TestLog(t, "Makin transaction nil for SubId=%v", subId)
+ subs := mainCtrl.c.registry.GetSubscription(subId)
+ subs.TheTrans = nil
+}
+
func (mc *testingSubmgrControl) SetResetTestFlag(t *testing.T, status bool) {
- mc.TestLog(t, "ResetTestFlag set to %v=", status)
+ mc.TestLog(t, "ResetTestFlag set to %v", status)
mainCtrl.c.ResetTestFlag = status
}
}
time.Sleep(100 * time.Millisecond)
}
- mc.TestError(t, "(submgr) no registry empty within %d secs: %d", secs, cnt)
+ mc.TestError(t, "(submgr) no registry empty within %d secs: %d, register: %v", secs, cnt, mc.c.registry.register)
return false
}
}
func (mc *testingSubmgrControl) VerifyCounterValues(t *testing.T) {
+
+ // Check that expected counters are added ok
currentCountersMap := mc.GetCurrentCounterValues(t, toBeAddedCountersMap)
for _, toBeAddedCounter := range toBeAddedCountersMap {
if currentCounter, ok := currentCountersMap[toBeAddedCounter.Name]; ok == true {
}
}
+ // Check that not any unexpected counter are added (this is not working correctly!)
+ for _, currentCounter := range currentCountersMap {
+ if _, ok := toBeAddedCountersMap[currentCounter.Name]; ok == false {
+ if beforeCounter, ok := countersBeforeMap[currentCounter.Name]; ok == true {
+ if currentCounter.Value != beforeCounter.Value {
+ mc.TestError(t, "Error: unexpected counter value added: counterName %v, current value %v, expected value %v",
+ currentCounter.Name, beforeCounter.Value, beforeCounter.Value)
+
+ //fmt.Printf("beforeCounter.Value=%v, toBeAddedCounter.Value=%v, \n",beforeCounter.Value, toBeAddedCounter.Value)
+ }
+ } else {
+ mc.TestError(t, "Counter %v not in countersBeforeMap", beforeCounter.Name)
+ }
+ }
+ }
+
// Make map empty
//fmt.Printf("toBeAddedCountersMap=%v\n",toBeAddedCountersMap)
toBeAddedCountersMap = make(map[string]Counter)
mc.TestLog(t, "%s", respBody)
return
}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+func (mc *testingSubmgrControl) SetE2State(t *testing.T, ranNameState string) {
+
+ if err := mc.c.e2IfStateDb.XappRnibStoreAndPublish("RAN_CONNECTION_STATUS_CHANGE", ranNameState, "key1", "data1"); err != nil {
+ t.Errorf("XappRnibStoreAndPublish failed: %v", err)
+ }
+}