From eda01bcfe351a43528fb70d477c868ca55151b56 Mon Sep 17 00:00:00 2001 From: andronache Date: Mon, 8 Mar 2021 17:13:42 +0200 Subject: [PATCH] Tests for registrar/libregistrarc.go --- registrarc/libregistrarc.go | 1 + registrarc/libregistrarc_test.go | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/registrarc/libregistrarc.go b/registrarc/libregistrarc.go index a5efcd000..bbe78f75a 100644 --- a/registrarc/libregistrarc.go +++ b/registrarc/libregistrarc.go @@ -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 { diff --git a/registrarc/libregistrarc_test.go b/registrarc/libregistrarc_test.go index afd673d86..f798d80a9 100644 --- a/registrarc/libregistrarc_test.go +++ b/registrarc/libregistrarc_test.go @@ -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",