Update rcvr name for TestEngine.Run method

This commit is contained in:
ionutboangiu
2024-10-07 16:56:54 +03:00
committed by Dan Christian Bogos
parent 6bc162cbc1
commit 14e602452c

View File

@@ -70,20 +70,20 @@ type TestEngine struct {
// Run initializes a cgr-engine instance for testing, loads tariff plans (if available) and returns
// an RPC client and the CGRConfig object. It calls t.Fatal on any setup failure.
func (env TestEngine) Run(t *testing.T) (*birpc.Client, *config.CGRConfig) {
func (ng TestEngine) Run(t *testing.T) (*birpc.Client, *config.CGRConfig) {
t.Helper()
// Parse config files.
var cfgPath string
switch {
case env.ConfigJSON != "":
case ng.ConfigJSON != "":
cfgPath = t.TempDir()
filePath := filepath.Join(cfgPath, "cgrates.json")
if err := os.WriteFile(filePath, []byte(env.ConfigJSON), 0644); err != nil {
if err := os.WriteFile(filePath, []byte(ng.ConfigJSON), 0644); err != nil {
t.Fatal(err)
}
case env.ConfigPath != "":
cfgPath = env.ConfigPath
case ng.ConfigPath != "":
cfgPath = ng.ConfigPath
default:
t.Fatal("missing config source")
}
@@ -92,13 +92,13 @@ func (env TestEngine) Run(t *testing.T) (*birpc.Client, *config.CGRConfig) {
t.Fatalf("could not init config from path %s: %v", cfgPath, err)
}
flushDBs(t, cfg, !env.PreserveDataDB, !env.PreserveStorDB)
flushDBs(t, cfg, !ng.PreserveDataDB, !ng.PreserveStorDB)
if env.PreStartHook != nil {
env.PreStartHook(t, cfg)
if ng.PreStartHook != nil {
ng.PreStartHook(t, cfg)
}
startEngine(t, cfg, env.LogBuffer)
startEngine(t, cfg, ng.LogBuffer)
client, err := newRPCClient(cfg.ListenCfg())
if err != nil {
@@ -106,33 +106,14 @@ func (env TestEngine) Run(t *testing.T) (*birpc.Client, *config.CGRConfig) {
}
var customTpPath string
if len(env.TpFiles) != 0 {
if len(ng.TpFiles) != 0 {
customTpPath = t.TempDir()
}
loadCSVs(t, client, env.TpPath, customTpPath, env.TpFiles)
loadCSVs(t, client, ng.TpPath, customTpPath, ng.TpFiles)
return client, cfg
}
func waitForService(t *testing.T, ctx *context.Context, client *birpc.Client, service string) {
t.Helper()
method := service + ".Ping"
backoff := utils.FibDuration(time.Millisecond, 0)
var reply any
for {
select {
case <-ctx.Done():
t.Fatalf("%s service did not become available: %v", service, ctx.Err())
default:
err := client.Call(context.Background(), method, nil, &reply)
if err == nil && reply == utils.Pong {
return
}
time.Sleep(backoff())
}
}
}
// loadCSVs loads tariff plan data from CSV files into the service. It handles directory creation and file
// writing for custom paths, and loads data from the specified paths using the provided RPC client.
func loadCSVs(t *testing.T, client *birpc.Client, tpPath, customTpPath string, csvFiles map[string]string) {
@@ -219,3 +200,22 @@ func startEngine(t *testing.T, cfg *config.CGRConfig, logBuffer io.Writer) {
t.Fatalf("starting cgr-engine on port %s failed: %v", cfg.ListenCfg().RPCJSONListen, err)
}
}
func waitForService(t *testing.T, ctx *context.Context, client *birpc.Client, service string) {
t.Helper()
method := service + ".Ping"
backoff := utils.FibDuration(time.Millisecond, 0)
var reply any
for {
select {
case <-ctx.Done():
t.Fatalf("%s service did not become available: %v", service, ctx.Err())
default:
err := client.Call(context.Background(), method, nil, &reply)
if err == nil && reply == utils.Pong {
return
}
time.Sleep(backoff())
}
}
}