diff --git a/config/diametercfg_test.go b/config/diametercfg_test.go index 616d22836..c9ecf6693 100644 --- a/config/diametercfg_test.go +++ b/config/diametercfg_test.go @@ -1,6 +1,6 @@ /* Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments -Copyright (C) ITsysCOM GmbH +Copyright (C) ITsysCOraM GmbH This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,50 +25,58 @@ import ( ) func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) { - var dacfg, expected DiameterAgentCfg - if err := dacfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(dacfg, expected) { - t.Errorf("Expected: %+v ,recived: %+v", expected, dacfg) + jsonCFG := &DiameterAgentJsonCfg{ + Enabled: utils.BoolPointer(true), + Listen_net: utils.StringPointer("tcp"), + Listen: utils.StringPointer("127.0.0.1:3868"), + Dictionaries_path: utils.StringPointer("/usr/share/cgrates/diameter/dict/"), + Sessions_conns: &[]string{"*internal"}, + Origin_host: utils.StringPointer("CGR-DA"), + Origin_realm: utils.StringPointer("cgrates.org"), + Vendor_id: utils.IntPointer(0), + Product_name: utils.StringPointer("randomName"), + Concurrent_requests: utils.IntPointer(10), + Synced_conn_requests: utils.BoolPointer(true), + Asr_template: utils.StringPointer("randomTemplate"), + Rar_template: utils.StringPointer("randomTemplate"), + Forced_disconnect: utils.StringPointer("forced"), + Request_processors: &[]*ReqProcessorJsnCfg{ + { + ID: utils.StringPointer("cgrates"), + Timezone: utils.StringPointer("Local"), + }, + }, } - if err := dacfg.loadFromJsonCfg(new(DiameterAgentJsonCfg), utils.INFIELD_SEP); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(dacfg, expected) { - t.Errorf("Expected: %+v ,recived: %+v", expected, dacfg) - } - cfgJSONStr := `{ -"diameter_agent": { - "enabled": false, // enables the diameter agent: - "listen": "127.0.0.1:3868", // address where to listen for diameter requests - "dictionaries_path": "/usr/share/cgrates/diameter/dict/", // path towards directory holding additional dictionaries to load - "sessions_conns": ["*internal"], - "origin_host": "CGR-DA", // diameter Origin-Host AVP used in replies - "origin_realm": "cgrates.org", // diameter Origin-Realm AVP used in replies - "vendor_id": 0, // diameter Vendor-Id AVP used in replies - "product_name": "CGRateS", // diameter Product-Name AVP used in replies - "synced_conn_requests": true, - "request_processors": [], -}, -}` - expected = DiameterAgentCfg{ + expected := &DiameterAgentCfg{ + Enabled: true, + ListenNet: "tcp", Listen: "127.0.0.1:3868", DictionariesPath: "/usr/share/cgrates/diameter/dict/", - SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)}, + SessionSConns: []string{"*internal:*sessions"}, OriginHost: "CGR-DA", OriginRealm: "cgrates.org", VendorId: 0, - ProductName: "CGRateS", + ProductName: "randomName", + ConcurrentReqs: 10, SyncedConnReqs: true, + ASRTemplate: "randomTemplate", + RARTemplate: "randomTemplate", + ForcedDisconnect: "forced", + RequestProcessors: []*RequestProcessor{ + { + ID: "cgrates", + Timezone: "Local", + }, + }, } - if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil { + if jsnCfg, err := NewDefaultCGRConfig(); err != nil { t.Error(err) - } else if jsnDaCfg, err := jsnCfg.DiameterAgentJsonCfg(); err != nil { + } else if err = jsnCfg.diameterAgentCfg.loadFromJsonCfg(jsonCFG, jsnCfg.generalCfg.RSRSep); err != nil { t.Error(err) - } else if err = dacfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP); err != nil { - t.Error(err) - } else if !reflect.DeepEqual(expected, dacfg) { - t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(dacfg)) + } else if !reflect.DeepEqual(expected, jsnCfg.diameterAgentCfg) { + t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsnCfg.diameterAgentCfg)) } + } func TestDiameterAgentCfgAsMapInterface(t *testing.T) {