Tests for registrar/libregistrarc.go

This commit is contained in:
andronache
2021-03-08 17:13:42 +02:00
committed by Dan Christian Bogos
parent 1090296d33
commit eda01bcfe3
2 changed files with 48 additions and 0 deletions

View File

@@ -190,6 +190,7 @@ func register(req *http.Request) (*json.RawMessage, error) {
}
rpcConns := config.CgrConfig().RPCConns()
config.CgrConfig().LockSections(config.RPCConnsJsonName)
fmt.Println(args.IDs)
for connID := range config.RemoveRPCCons(rpcConns, utils.NewStringSet(args.IDs)) {
if err = engine.Cache.Remove(utils.CacheRPCConnections, connID,
true, utils.NonTransactional); err != nil {

View File

@@ -483,6 +483,53 @@ func TestRegisterRegistrarSv1UnregisterRPCHosts(t *testing.T) {
}
}
func TestRegisterRegistrarSv1UnregisterRPCHostsError(t *testing.T) {
ra := &UnregisterArgs{
IDs: []string{"Host1"},
Tenant: "cgrates.org",
Opts: make(map[string]interface{}),
}
raJSON, err := json.Marshal([]interface{}{ra})
id := json.RawMessage("1")
if err != nil {
t.Fatal(err)
}
args := utils.NewServerRequest(utils.RegistrarSv1UnregisterRPCHosts, raJSON, id)
argsJSON, err := json.Marshal(args)
if err != nil {
t.Fatal(err)
}
req, err := http.NewRequest(http.MethodPost, "http://127.0.0.1:2080/json_rpc", bytes.NewBuffer(argsJSON))
if err != nil {
t.Fatal(err)
}
req.RemoteAddr = "127.0.0.1:2356"
cfg := config.NewDefaultCGRConfig()
config.CgrConfig().RPCConns()["errCon"] = &config.RPCConn{
Strategy: utils.MetaFirst,
PoolSize: 1,
Conns: []*config.RemoteHost{
{
ID: "Host1",
Address: "127.0.0.1:9999",
Transport: "*json",
Synchronous: true,
},
},
}
engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{})
cfg.RPCConns()["errCon"] = config.CgrConfig().RPCConns()["errCon"]
cfg.CacheCfg().ReplicationConns = []string{"errCon"}
cfg.CacheCfg().Partitions[utils.CacheRPCConnections].Replicate = true
engine.Cache = engine.NewCacheS(cfg, nil, nil)
if rplyID, err := register(req); err != nil {
t.Fatal(err)
} else if !reflect.DeepEqual(id, *rplyID) {
t.Errorf("Expected: %q ,received: %q", string(id), string(*rplyID))
}
delete(config.CgrConfig().RPCConns(), "errCon")
}
func TestRegisterRegistrarSv1RegisterRPCHosts(t *testing.T) {
ra := &RegisterArgs{
Tenant: "cgrates.org",