From c3c5b617d2cd6c8cf3bd94df968d56a3d85d16e3 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Wed, 9 Jul 2025 19:28:10 +0300 Subject: [PATCH] ips: integrate CDRs into RADIUS IPAM integration test --- data/conf/samples/radius_ipam/acct.json | 1 + data/conf/samples/radius_ipam/cgrates.json | 6 ++++++ general_tests/radius_ipam_it_test.go | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/data/conf/samples/radius_ipam/acct.json b/data/conf/samples/radius_ipam/acct.json index bcabe6cd7..9c61b0994 100644 --- a/data/conf/samples/radius_ipam/acct.json +++ b/data/conf/samples/radius_ipam/acct.json @@ -303,6 +303,7 @@ ], "flags": [ "*terminate", + "*cdrs", "*ips" ], "request_fields": [ diff --git a/data/conf/samples/radius_ipam/cgrates.json b/data/conf/samples/radius_ipam/cgrates.json index 67a14c811..6400b540d 100644 --- a/data/conf/samples/radius_ipam/cgrates.json +++ b/data/conf/samples/radius_ipam/cgrates.json @@ -3,12 +3,18 @@ "enabled": true, "ips_conns": [ "*localhost" + ], + "cdrs_conns": [ + "*localhost" ] }, "ips": { "enabled": true, "store_interval": "-1" }, + "cdrs": { + "enabled": true + }, "radius_agent": { "enabled": true, "sessions_conns": [ diff --git a/general_tests/radius_ipam_it_test.go b/general_tests/radius_ipam_it_test.go index 264b6091a..5db7f323b 100644 --- a/general_tests/radius_ipam_it_test.go +++ b/general_tests/radius_ipam_it_test.go @@ -297,6 +297,7 @@ VALUE Acct-Terminate-Cause User-Request 1 }, ) checkAllocs(t, client, "IPsAPI") + checkCDR(t, client, imsi) } func sendRadReq(t *testing.T, client *radigo.Client, code radigo.PacketCode, id uint8, avps map[string]string) *radigo.Packet { @@ -360,3 +361,20 @@ func checkAllocs(t *testing.T, client *birpc.Client, id string, wantAllocs ...st } } } + +func checkCDR(t *testing.T, client *birpc.Client, acnt string) { + t.Helper() + var cdrs []*utils.CDR + if err := client.Call(context.Background(), utils.AdminSv1GetCDRs, + &utils.CDRFilters{ + FilterIDs: []string{ + fmt.Sprintf("*string:~*req.Account:%s", acnt), + }, + }, &cdrs); err != nil { + t.Fatal(err) + } + if len(cdrs) != 1 { + t.Fatalf("%s received %d cdrs, want exactly one", utils.AdminSv1GetCDRs, len(cdrs)) + } + t.Logf("CDR contents: %s", utils.ToIJSON(cdrs[0])) +}