From 4e33673e6b1f073da58d4e4977cf52a487f62c44 Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Wed, 20 Jan 2021 17:59:51 +0200 Subject: [PATCH] Covered core file in cores package --- cores/core_test.go | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 cores/core_test.go diff --git a/cores/core_test.go b/cores/core_test.go new file mode 100644 index 000000000..ad27c09e8 --- /dev/null +++ b/cores/core_test.go @@ -0,0 +1,93 @@ +/* +Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments +Copyright (C) ITsysCOM 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 +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package cores + +import ( + "reflect" + "runtime" + "testing" + + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" +) + +func TestNewCoreService(t *testing.T) { + cfgDflt := config.NewDefaultCGRConfig() + cfgDflt.CoreSCfg().CapsStatsInterval = 1 + caps := engine.NewCaps(1, utils.MetaBusy) + stopChan := make(chan struct{}, 1) + sts := engine.NewCapsStats(cfgDflt.CoreSCfg().CapsStatsInterval, caps, stopChan) + expected := &CoreService{ + cfg: cfgDflt, + CapsStats: sts, + } + rcv := NewCoreService(cfgDflt, caps, stopChan) + if !reflect.DeepEqual(expected, rcv) { + t.Errorf("Expected %+v, received %+v", utils.ToJSON(expected), utils.ToJSON(rcv)) + } + + //shut down the service + rcv.Shutdown() +} + +func TestCoreServiceStatus(t *testing.T) { + cfgDflt := config.NewDefaultCGRConfig() + cfgDflt.CoreSCfg().CapsStatsInterval = 1 + caps := engine.NewCaps(1, utils.MetaBusy) + stopChan := make(chan struct{}, 1) + + cores := NewCoreService(cfgDflt, caps, stopChan) + args := &utils.TenantWithOpts{ + Tenant: "cgrates.org", + Opts: map[string]interface{}{}, + } + + var reply map[string]interface{} + cfgVrs, err := utils.GetCGRVersion() + if err != nil { + t.Error(err) + } + + expected := map[string]interface{}{ + utils.GoVersion: runtime.Version(), + utils.RunningSince: "TIME_CHANGED", + utils.VersionName: cfgVrs, + utils.ActiveGoroutines: runtime.NumGoroutine(), + utils.MemoryUsage: "CHANGED_MEMORY_USAGE", + utils.NodeID: cfgDflt.GeneralCfg().NodeID, + } + if err := cores.Status(args, &reply); err != nil { + t.Error(err) + } else { + reply[utils.RunningSince] = "TIME_CHANGED" + reply[utils.MemoryUsage] = "CHANGED_MEMORY_USAGE" + if !reflect.DeepEqual(expected, reply) { + t.Errorf("Expected %+v, received %+v", utils.ToJSON(expected), utils.ToJSON(reply)) + } + } + + utils.GitLastLog = `Date: wrong format +` + if err := cores.Status(args, &reply); err != nil { + t.Error(err) + } + + utils.GitLastLog = "" +}