[RIC-306] - Fix bug with parsing 71/3971/1
authorss412g <shuky.har-noy@intl.att.com>
Wed, 3 Jun 2020 07:32:12 +0000 (10:32 +0300)
committerss412g <shuky.har-noy@intl.att.com>
Wed, 3 Jun 2020 13:02:41 +0000 (16:02 +0300)
Change-Id: If6f819e40a261084ba3f11f6b4c6fe1094dc075c
Signed-off-by: ss412g <shuky.har-noy@intl.att.com>
E2Manager/configuration/configuration.go
E2Manager/configuration/configuration_test.go
E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler.go
E2Manager/handlers/rmrmsghandlers/e2_setup_request_notification_handler_test.go
E2Manager/resources/configuration.yaml

index 8beac3c..89515e4 100644 (file)
@@ -50,8 +50,8 @@ type Configuration struct {
        E2TInstanceDeletionTimeoutMs int
        GlobalRicId                  struct {
                RicId string
-               Mcc   int
-               Mnc   int
+               Mcc   string
+               Mnc   string
        }
 }
 
@@ -118,8 +118,8 @@ func (c *Configuration) populateGlobalRicIdConfig(globalRicIdConfig *viper.Viper
                panic(err.Error())
        }
        c.GlobalRicId.RicId = globalRicIdConfig.GetString("ricId")
-       c.GlobalRicId.Mcc = globalRicIdConfig.GetInt("mcc")
-       c.GlobalRicId.Mnc = globalRicIdConfig.GetInt("mnc")
+       c.GlobalRicId.Mcc = globalRicIdConfig.GetString("mcc")
+       c.GlobalRicId.Mnc = globalRicIdConfig.GetString("mnc")
 }
 
 func validateGlobalRicIdConfig(globalRicIdConfig *viper.Viper) error {
@@ -133,13 +133,13 @@ func validateGlobalRicIdConfig(globalRicIdConfig *viper.Viper) error {
                return err
        }
 
-       err = validateMcc(globalRicIdConfig.GetInt("mcc"))
+       err = validateMcc(globalRicIdConfig.GetString("mcc"))
 
        if err != nil {
                return err
        }
 
-       err = validateMnc(globalRicIdConfig.GetInt("mnc"))
+       err = validateMnc(globalRicIdConfig.GetString("mnc"))
 
        if err != nil {
                return err
@@ -149,29 +149,45 @@ func validateGlobalRicIdConfig(globalRicIdConfig *viper.Viper) error {
        return nil
 }
 
-func validateMcc(mcc int) error {
+func validateMcc(mcc string) error {
 
-       mccStr := strconv.Itoa(mcc)
+       if len(mcc) == 0{
+               return errors.New("#configuration.validateMcc - mcc is emtpy or missing\n")
+       }
 
-       if len(mccStr) != 3{
+       if len(mcc) != 3{
                return errors.New("#configuration.validateMcc - mcc is not 3 digits\n")
        }
 
-       if mcc < 0 {
+       mccInt, err := strconv.Atoi(mcc)
+
+       if err != nil{
+               return errors.New("#configuration.validateMcc - mcc is not a number\n")
+       }
+
+       if mccInt < 0 {
                return errors.New("#configuration.validateMcc - mcc is negative\n")
        }
        return nil
 }
 
-func validateMnc(mnc int) error {
+func validateMnc(mnc string) error {
 
-       mncStr := strconv.Itoa(mnc)
+       if len(mnc) == 0{
+               return errors.New("#configuration.validateMnc - mnc is emtpy or missing\n")
+       }
 
-       if len(mncStr) < 2 || len(mncStr) >3 {
+       if len(mnc) < 2 || len(mnc) >3 {
                return errors.New("#configuration.validateMnc - mnc is not 2 or 3 digits\n")
        }
 
-       if mnc < 0 {
+       mncAsInt, err := strconv.Atoi(mnc)
+
+       if err != nil{
+               return errors.New("#configuration.validateMnc - mnc is not a number\n")
+       }
+
+       if mncAsInt < 0 {
                return errors.New("#configuration.validateMnc - mnc is negative\n")
        }
 
@@ -181,7 +197,7 @@ func validateMnc(mnc int) error {
 func validateRicId(ricId string) error{
 
        if len(ricId) == 0{
-               return errors.New("#configuration.validateRicId - ricId is emtpy\n")
+               return errors.New("#configuration.validateRicId - ricId is emtpy or missing\n")
        }
 
        if len(ricId) != 5 {
@@ -201,7 +217,7 @@ func (c *Configuration) String() string {
        return fmt.Sprintf("{logging.logLevel: %s, http.port: %d, rmr: { port: %d, maxMsgSize: %d}, routingManager.baseUrl: %s, "+
                "notificationResponseBuffer: %d, bigRedButtonTimeoutSec: %d, maxRnibConnectionAttempts: %d, "+
                "rnibRetryIntervalMs: %d, keepAliveResponseTimeoutMs: %d, keepAliveDelayMs: %d, e2tInstanceDeletionTimeoutMs: %d, "+
-               "globalRicId: { ricId: %s, mcc: %d, mnc: %d}",
+               "globalRicId: { ricId: %s, mcc: %s, mnc: %s}",
                c.Logging.LogLevel,
                c.Http.Port,
                c.Rmr.Port,
index c6b1e18..9a1a9fb 100644 (file)
@@ -41,8 +41,8 @@ func TestParseConfigurationSuccess(t *testing.T) {
        assert.Equal(t, 15000, config.E2TInstanceDeletionTimeoutMs)
        assert.NotNil(t, config.GlobalRicId)
        assert.Equal(t, "AACCE", config.GlobalRicId.RicId)
-       assert.Equal(t, 327, config.GlobalRicId.Mcc)
-       assert.Equal(t, 94, config.GlobalRicId.Mnc)
+       assert.Equal(t, "026", config.GlobalRicId.Mcc)
+       assert.Equal(t, "09", config.GlobalRicId.Mnc)
 }
 
 func TestStringer(t *testing.T) {
@@ -82,7 +82,7 @@ func TestRmrConfigNotFoundFailure(t *testing.T) {
        yamlMap := map[string]interface{}{
                "logging": map[string]interface{}{"logLevel": "info"},
                "http":    map[string]interface{}{"port": 3800},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
                "globalRicId":    map[string]interface{}{"plmnId": "131014", "ricNearRtId": "556670"},
        }
        buf, err := yaml.Marshal(yamlMap)
@@ -112,7 +112,7 @@ func TestLoggingConfigNotFoundFailure(t *testing.T) {
        yamlMap := map[string]interface{}{
                "rmr":  map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
                "http": map[string]interface{}{"port": 3800},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
                "globalRicId":    map[string]interface{}{"plmnId": "131014", "ricNearRtId": "556670"},
        }
        buf, err := yaml.Marshal(yamlMap)
@@ -143,7 +143,7 @@ func TestHttpConfigNotFoundFailure(t *testing.T) {
        yamlMap := map[string]interface{}{
                "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
                "logging": map[string]interface{}{"logLevel": "info"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
                "globalRicId":    map[string]interface{}{"plmnId": "131014", "ricNearRtId": "556670"},
        }
        buf, err := yaml.Marshal(yamlMap)
@@ -206,7 +206,7 @@ func TestGlobalRicIdConfigNotFoundFailure(t *testing.T) {
                "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -237,8 +237,8 @@ yamlMap := map[string]interface{}{
 "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
 "logging": map[string]interface{}{"logLevel": "info"},
 "http": map[string]interface{}{"port": 3800},
-"globalRicId":    map[string]interface{}{"mcc": 327, "mnc": 94, "ricId": ""},
-"routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+"globalRicId":    map[string]interface{}{"mcc": "327", "mnc": "94", "ricId": ""},
+"routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
 }
 buf, err := yaml.Marshal(yamlMap)
 if err != nil {
@@ -248,10 +248,42 @@ err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
 if err != nil {
 t.Errorf("#TestEmptyRicIdFailure - failed to write configuration file: %s\n", configPath)
 }
-assert.PanicsWithValue(t, "#configuration.validateRicId - ricId is emtpy\n",
+assert.PanicsWithValue(t, "#configuration.validateRicId - ricId is emtpy or missing\n",
 func() { ParseConfiguration() })
 }
 
+func TestMissingRicIdFailure(t *testing.T) {
+       configPath := "../resources/configuration.yaml"
+       configPathTmp := "../resources/configuration.yaml_tmp"
+       err := os.Rename(configPath, configPathTmp)
+       if err != nil {
+               t.Errorf("#TestEmptyRicIdFailure - failed to rename configuration file: %s\n", configPath)
+       }
+       defer func() {
+               err = os.Rename(configPathTmp, configPath)
+               if err != nil {
+                       t.Errorf("#TestEmptyRicIdFailure - failed to rename configuration file: %s\n", configPath)
+               }
+       }()
+       yamlMap := map[string]interface{}{
+               "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
+               "logging": map[string]interface{}{"logLevel": "info"},
+               "http": map[string]interface{}{"port": 3800},
+               "globalRicId":    map[string]interface{}{"mcc": "327", "mnc": "94"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
+       }
+       buf, err := yaml.Marshal(yamlMap)
+       if err != nil {
+               t.Errorf("#TestEmptyRicIdFailure - failed to marshal configuration map\n")
+       }
+       err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
+       if err != nil {
+               t.Errorf("#TestEmptyRicIdFailure - failed to write configuration file: %s\n", configPath)
+       }
+       assert.PanicsWithValue(t, "#configuration.validateRicId - ricId is emtpy or missing\n",
+               func() { ParseConfiguration() })
+}
+
 func TestNonHexRicIdFailure(t *testing.T) {
        configPath := "../resources/configuration.yaml"
        configPathTmp := "../resources/configuration.yaml_tmp"
@@ -269,8 +301,8 @@ func TestNonHexRicIdFailure(t *testing.T) {
                "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
-               "globalRicId":    map[string]interface{}{"mcc": 327, "mnc": 94, "ricId": "TEST1"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "globalRicId":    map[string]interface{}{"mcc": "327", "mnc": "94", "ricId": "TEST1"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -301,8 +333,8 @@ func TestWrongRicIdLengthFailure(t *testing.T) {
                "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
-               "globalRicId":    map[string]interface{}{"mcc": 327, "mnc": 94, "ricId": "AA43"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "globalRicId":    map[string]interface{}{"mcc": "327", "mnc": "94", "ricId": "AA43"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -334,7 +366,7 @@ func TestMccNotThreeDigitsFailure(t *testing.T) {
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
                "globalRicId":    map[string]interface{}{"mcc": "31", "mnc": "94", "ricId": "AA443"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -366,7 +398,7 @@ func TestMncLengthIsGreaterThanThreeDigitsFailure(t *testing.T) {
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
                "globalRicId":    map[string]interface{}{"mcc": "310", "mnc": "6794", "ricId": "AA443"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -398,7 +430,7 @@ func TestMncLengthIsLessThanTwoDigitsFailure(t *testing.T) {
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
                "globalRicId":    map[string]interface{}{"mcc": "310", "mnc": "4", "ricId": "AA443"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -429,8 +461,8 @@ func TestNegativeMncFailure(t *testing.T) {
                "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
-               "globalRicId":    map[string]interface{}{"mcc": "310", "mnc": -2, "ricId": "AA443"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "globalRicId":    map[string]interface{}{"mcc": "310", "mnc": "-2", "ricId": "AA443"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -461,8 +493,8 @@ func TestNegativeMccFailure(t *testing.T) {
                "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
                "logging": map[string]interface{}{"logLevel": "info"},
                "http": map[string]interface{}{"port": 3800},
-               "globalRicId":    map[string]interface{}{"mcc": -31, "mnc": 222, "ricId": "AA443"},
-               "routingManager":    map[string]interface{}{"baseUrl": "http://iltlv740.intl.att.com:8080/ric/v1/handles/"},
+               "globalRicId":    map[string]interface{}{"mcc": "-31", "mnc": "222", "ricId": "AA443"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
        }
        buf, err := yaml.Marshal(yamlMap)
        if err != nil {
@@ -474,4 +506,197 @@ func TestNegativeMccFailure(t *testing.T) {
        }
        assert.PanicsWithValue(t, "#configuration.validateMcc - mcc is negative\n",
                func() { ParseConfiguration() })
-}
\ No newline at end of file
+}
+
+func TestAlphaNumericMccFailure(t *testing.T) {
+       configPath := "../resources/configuration.yaml"
+       configPathTmp := "../resources/configuration.yaml_tmp"
+       err := os.Rename(configPath, configPathTmp)
+       if err != nil {
+               t.Errorf("#TestAlphaNumericMccFailure - failed to rename configuration file: %s\n", configPath)
+       }
+       defer func() {
+               err = os.Rename(configPathTmp, configPath)
+               if err != nil {
+                       t.Errorf("#TestAlphaNumericMccFailure - failed to rename configuration file: %s\n", configPath)
+               }
+       }()
+       yamlMap := map[string]interface{}{
+               "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
+               "logging": map[string]interface{}{"logLevel": "info"},
+               "http": map[string]interface{}{"port": 3800},
+               "globalRicId":    map[string]interface{}{"mcc": "1W2", "mnc": "222", "ricId": "AA443"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
+       }
+       buf, err := yaml.Marshal(yamlMap)
+       if err != nil {
+               t.Errorf("#TestAlphaNumericMccFailure - failed to marshal configuration map\n")
+       }
+       err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
+       if err != nil {
+               t.Errorf("#TestAlphaNumericMccFailure - failed to write configuration file: %s\n", configPath)
+       }
+       assert.PanicsWithValue(t, "#configuration.validateMcc - mcc is not a number\n",
+               func() { ParseConfiguration() })
+}
+
+func TestAlphaNumericMncFailure(t *testing.T) {
+       configPath := "../resources/configuration.yaml"
+       configPathTmp := "../resources/configuration.yaml_tmp"
+       err := os.Rename(configPath, configPathTmp)
+       if err != nil {
+               t.Errorf("#TestAlphaNumericMncFailure - failed to rename configuration file: %s\n", configPath)
+       }
+       defer func() {
+               err = os.Rename(configPathTmp, configPath)
+               if err != nil {
+                       t.Errorf("#TestAlphaNumericMncFailure - failed to rename configuration file: %s\n", configPath)
+               }
+       }()
+       yamlMap := map[string]interface{}{
+               "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
+               "logging": map[string]interface{}{"logLevel": "info"},
+               "http": map[string]interface{}{"port": 3800},
+               "globalRicId":    map[string]interface{}{"mcc": "111", "mnc": "2A8", "ricId": "AA443"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
+       }
+       buf, err := yaml.Marshal(yamlMap)
+       if err != nil {
+               t.Errorf("#TestAlphaNumericMncFailure - failed to marshal configuration map\n")
+       }
+       err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
+       if err != nil {
+               t.Errorf("#TestAlphaNumericMncFailure - failed to write configuration file: %s\n", configPath)
+       }
+       assert.PanicsWithValue(t, "#configuration.validateMnc - mnc is not a number\n",
+               func() { ParseConfiguration() })
+}
+
+func TestMissingMmcFailure(t *testing.T) {
+       configPath := "../resources/configuration.yaml"
+       configPathTmp := "../resources/configuration.yaml_tmp"
+       err := os.Rename(configPath, configPathTmp)
+       if err != nil {
+               t.Errorf("#TestMissingMmcFailure - failed to rename configuration file: %s\n", configPath)
+       }
+       defer func() {
+               err = os.Rename(configPathTmp, configPath)
+               if err != nil {
+                       t.Errorf("#TestMissingMmcFailure - failed to rename configuration file: %s\n", configPath)
+               }
+       }()
+       yamlMap := map[string]interface{}{
+               "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
+               "logging": map[string]interface{}{"logLevel": "info"},
+               "http": map[string]interface{}{"port": 3800},
+               "globalRicId":    map[string]interface{}{"mnc": "94", "ricId": "AABB3"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
+       }
+       buf, err := yaml.Marshal(yamlMap)
+       if err != nil {
+               t.Errorf("#TestMissingMmcFailure - failed to marshal configuration map\n")
+       }
+       err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
+       if err != nil {
+               t.Errorf("#TestMissingMmcFailure - failed to write configuration file: %s\n", configPath)
+       }
+       assert.PanicsWithValue(t, "#configuration.validateMcc - mcc is emtpy or missing\n",
+               func() { ParseConfiguration() })
+}
+
+
+func TestEmptyMmcFailure(t *testing.T) {
+       configPath := "../resources/configuration.yaml"
+       configPathTmp := "../resources/configuration.yaml_tmp"
+       err := os.Rename(configPath, configPathTmp)
+       if err != nil {
+               t.Errorf("#TestEmptyMmcFailure - failed to rename configuration file: %s\n", configPath)
+       }
+       defer func() {
+               err = os.Rename(configPathTmp, configPath)
+               if err != nil {
+                       t.Errorf("#TestEmptyMmcFailure - failed to rename configuration file: %s\n", configPath)
+               }
+       }()
+       yamlMap := map[string]interface{}{
+               "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
+               "logging": map[string]interface{}{"logLevel": "info"},
+               "http": map[string]interface{}{"port": 3800},
+               "globalRicId":    map[string]interface{}{"mcc": "", "mnc": "94", "ricId": "AABB3"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
+       }
+       buf, err := yaml.Marshal(yamlMap)
+       if err != nil {
+               t.Errorf("#TestEmptyMmcFailure - failed to marshal configuration map\n")
+       }
+       err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
+       if err != nil {
+               t.Errorf("#TestEmptyMmcFailure - failed to write configuration file: %s\n", configPath)
+       }
+       assert.PanicsWithValue(t, "#configuration.validateMcc - mcc is emtpy or missing\n",
+               func() { ParseConfiguration() })
+}
+
+func TestEmptyMncFailure(t *testing.T) {
+       configPath := "../resources/configuration.yaml"
+       configPathTmp := "../resources/configuration.yaml_tmp"
+       err := os.Rename(configPath, configPathTmp)
+       if err != nil {
+               t.Errorf("#TestEmptyMncFailure - failed to rename configuration file: %s\n", configPath)
+       }
+       defer func() {
+               err = os.Rename(configPathTmp, configPath)
+               if err != nil {
+                       t.Errorf("#TestEmptyMncFailure - failed to rename configuration file: %s\n", configPath)
+               }
+       }()
+       yamlMap := map[string]interface{}{
+               "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
+               "logging": map[string]interface{}{"logLevel": "info"},
+               "http": map[string]interface{}{"port": 3800},
+               "globalRicId":    map[string]interface{}{"mcc": "111", "mnc": "", "ricId": "AABB3"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
+       }
+       buf, err := yaml.Marshal(yamlMap)
+       if err != nil {
+               t.Errorf("#TestEmptyMncFailure - failed to marshal configuration map\n")
+       }
+       err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
+       if err != nil {
+               t.Errorf("#TestEmptyMncFailure - failed to write configuration file: %s\n", configPath)
+       }
+       assert.PanicsWithValue(t, "#configuration.validateMnc - mnc is emtpy or missing\n",
+               func() { ParseConfiguration() })
+}
+
+func TestMissingMncFailure(t *testing.T) {
+       configPath := "../resources/configuration.yaml"
+       configPathTmp := "../resources/configuration.yaml_tmp"
+       err := os.Rename(configPath, configPathTmp)
+       if err != nil {
+               t.Errorf("#TestMissingMncFailure - failed to rename configuration file: %s\n", configPath)
+       }
+       defer func() {
+               err = os.Rename(configPathTmp, configPath)
+               if err != nil {
+                       t.Errorf("#TestMissingMncFailure - failed to rename configuration file: %s\n", configPath)
+               }
+       }()
+       yamlMap := map[string]interface{}{
+               "rmr":     map[string]interface{}{"port": 3801, "maxMsgSize": 4096},
+               "logging": map[string]interface{}{"logLevel": "info"},
+               "http": map[string]interface{}{"port": 3800},
+               "globalRicId":    map[string]interface{}{"mcc": "111", "ricId": "AABB3"},
+               "routingManager":    map[string]interface{}{"baseUrl": "http://localhost:8080/ric/v1/handles/"},
+       }
+       buf, err := yaml.Marshal(yamlMap)
+       if err != nil {
+               t.Errorf("#TestMissingMncFailure - failed to marshal configuration map\n")
+       }
+       err = ioutil.WriteFile("../resources/configuration.yaml", buf, 0644)
+       if err != nil {
+               t.Errorf("#TestMissingMncFailure - failed to write configuration file: %s\n", configPath)
+       }
+       assert.PanicsWithValue(t, "#configuration.validateMnc - mnc is emtpy or missing\n",
+               func() { ParseConfiguration() })
+}
index de17a4f..2a39b73 100644 (file)
@@ -171,7 +171,7 @@ func (h E2SetupRequestNotificationHandler) handleUnsuccessfulResponse(nodebInfo
 
 func (h E2SetupRequestNotificationHandler) handleSuccessfulResponse(ranName string, req *models.NotificationRequest, setupRequest *models.E2SetupRequestMessage) {
 
-       plmnId := buildPlmnId(strconv.Itoa(h.config.GlobalRicId.Mcc), strconv.Itoa(h.config.GlobalRicId.Mnc))
+       plmnId := buildPlmnId(h.config.GlobalRicId.Mcc, h.config.GlobalRicId.Mnc)
 
        ricNearRtId, err := convertTo20BitString(h.config.GlobalRicId.RicId)
        if err != nil {
index 30bc71a..a824e0c 100644 (file)
@@ -308,9 +308,9 @@ func TestE2SetupRequestNotificationHandler_ConvertTo20BitStringError(t *testing.
        logger := tests.InitLog(t)
        config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
                RicId string
-               Mcc   int
-               Mnc   int
-       }{Mcc: 327, Mnc: 94 ,RicId: "10011001101010101011"}}
+               Mcc   string
+               Mnc   string
+       }{Mcc: "327", Mnc: "94" ,RicId: "10011001101010101011"}}
        rmrMessengerMock := &mocks.RmrMessengerMock{}
        rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
        readerMock := &mocks.RnibReaderMock{}
@@ -367,9 +367,9 @@ func initMocks(t *testing.T) (E2SetupRequestNotificationHandler, *mocks.RnibRead
        logger := tests.InitLog(t)
        config := &configuration.Configuration{RnibRetryIntervalMs: 10, MaxRnibConnectionAttempts: 3, GlobalRicId: struct {
                RicId string
-               Mcc   int
-               Mnc   int
-       }{Mcc: 327, Mnc: 94 ,RicId: "AACCE"}}
+               Mcc   string
+               Mnc   string
+       }{Mcc: "327", Mnc: "94" ,RicId: "AACCE"}}
        rmrMessengerMock := &mocks.RmrMessengerMock{}
        rmrSender := tests.InitRmrSender(rmrMessengerMock, logger)
        readerMock := &mocks.RnibReaderMock{}
index 0331f44..f2875d4 100644 (file)
@@ -15,6 +15,6 @@ keepAliveResponseTimeoutMs: 4500
 keepAliveDelayMs: 1500
 e2tInstanceDeletionTimeoutMs: 15000
 globalRicId:
-  ricId: AACCE
-  mcc: 327
-  mnc: 94
\ No newline at end of file
+  ricId: "AACCE"
+  mcc: "026"
+  mnc: "09"
\ No newline at end of file