Commit Graph

885 Commits

Author SHA1 Message Date
ionutboangiu
6a6fefd0cd Improve cost formatting and parsing for CDRs
The FormatCost function in cdr.go now accepts an additional parameter of type *config.RSRParser. This is
then used to extract the value from its path as opposed to always using the value of the Cost field directly.

Improved the unit test for the FormatCost function. Now it has become a table-driven test and it handles
cases when the cost is retrieved from different fields other than  from the CDR.
2023-05-22 07:53:47 +02:00
ionutboangiu
4cd2dc3de8 Revise CDR rerating
The (*CDRServer).processEvent function is now called processEvents and can
be passed an array of CGREvents instead of only one. This was done because
when calling the RateCDRs API we want to first refund all CDRs before
starting to debit again.

The rerate parameter is now no longer hardcoded to true for the RateCDRs API.If
required, the "*rerate" flag must be provided by the caller.

Now, the refundEventCost function returns an additional boolean, that signals
whether the refund occured or didn't.

If the reRate parameter is set to true, also set refund to true.

In case CostDetails is not populated, retrieve it from StorDB if possible
and add it to the CGREvent before converting to CDRs. Set CostDetails back
to nil once the refund goes through.

Remove the refund logic from within the store block.

Now that the refund happens before the debit, revise the expected values for
the "testV1CDRsProcessEventWithRefund" subtest within the
apier/v1/cdrs_it_test.go file.

Add an integration test for the following scenario:
 -create one account with one balance of 1 free minute and rating for the rest.
 -send one CDR of two minutes with ProcessEvent. This should consume 60s out of
the free balance and charge 60s. The SetupTime in the CDR should be 1 hour after
the second CDR.
 -send the second CDR with an usage of 2m. This should be charged entirely.
 -send a RateCDR API call with OrderBy: "SetupTime". This should rerate the two
CDRs from above and change their order of rating.
2023-04-20 20:05:00 +02:00
ionutboangiu
15b404e8cf Revise randomly failing tests 2023-03-28 17:59:32 +02:00
gezimbll
7dcbd09a1f replacing non-meta constants for storage types 2023-03-08 19:14:24 +01:00
ionutboangiu
6a7fde0c99 Add integration tests for amqpv1 exporter 2023-02-20 19:45:08 +01:00
ionutboangiu
c9ec5e53c8 Leave exportPath unprocessed for kafka + tests 2023-02-20 19:45:08 +01:00
ionutboangiu
40943dda09 Add test for *amqp_json_cdr exporter 2023-02-20 19:45:08 +01:00
ionutboangiu
6f91f027c8 Leave exportPath unprocessed for s3&sqs + tests 2023-02-17 12:19:22 +01:00
ionutboangiu
c2a824a94b Leave export_path as is when exporting (AMQP) + tests 2023-02-16 11:25:20 +01:00
adi
6285d92f29 Indexes various combination in tests 2022-11-22 13:59:02 +02:00
Trial97
65a9b4df9d Updated rsyslog files 2021-12-23 10:08:54 +01:00
andronache
a4625e64fe Fixed integration test regadring cdrs ttl internal 2021-10-05 21:05:49 +02:00
andronache
8182d964e7 Fixed tutmongo config for integration tests 2021-10-04 11:33:05 +02:00
Trial97
4ea2d18463 Updated resources unit tests 2021-07-23 11:01:39 +02:00
ionutboangiu
2a00b1cd5e Fix typo (parralel->parallel) v0.10 2021-06-30 20:26:02 +02:00
Trial97
07ef7f2609 Replaced max_call_duration config with default_usage for each ToR 2021-02-19 14:22:48 +01:00
TeoV
2116571e57 Add integration test diameter authorization with ForceDuration flag 2020-12-16 15:31:40 +01:00
TeoV
f6b8bdc97f Update config for diameter(sctp/dispatcher) with *fd flag 2020-11-05 17:09:01 +01:00
Trial97
102bdeb94a SupplierS Require connections to RALs for calculating the cost 2020-10-20 19:54:47 +02:00
TeoV
b91f6d02f8 Append to RALs BalanceRatingSubject instead of overwrite 2020-07-21 14:59:14 +02:00
TeoV
115a9a1b7c Correctly populate max usage from Agents SessionSv1.ProcessEvent + added test 2020-07-10 15:25:09 +03:00
TeoV
40987e13fd Import in v0.10 Concurrent mechanism 2020-07-09 17:27:11 +03:00
Trial97
b76d626f6f Updated MapEvent.AsCDR to initialize the CostDetails. Fixes #2247 2020-06-30 11:30:41 +03:00
Trial97
8b81b6b8e4 Added *none ERs type. Closes #2201 2020-06-02 15:10:32 +02:00
Trial97
d6ad76ab75 Renamed logrotate config files 2020-05-26 17:46:36 +02:00
TeoV
3635f5ba36 Add test for counting NotFound supplier and the first supplier selected 2020-05-21 15:24:03 +02:00
Trial97
5df7b591ef Added tests for poster actions 2020-04-29 12:24:06 +02:00
TeoV
c362dddc3d Add test for *fd flag 2020-04-22 14:33:44 +02:00
TeoV
a75ce1f8e1 Move testing for setDDestinations in integration tests 2020-04-15 16:01:07 +02:00
Trial97
5b7b07df69 Added tests for diamagent errored reply 2020-04-14 15:04:17 +02:00
adragusin
07877daef0 Changed the strip strategy (e.g. "right" to "*right") 2020-03-12 17:23:45 +01:00
Trial97
325e4fbec8 Added docker scripts 2020-03-09 16:51:46 +01:00
TeoV
87095fa53b Correct using a connID with two connections one of it *internal 2020-03-01 17:28:31 +01:00
TeoV
94a7847a7f Add integration test for two engine sharing the same dataDB 2020-03-01 17:28:31 +01:00
TeoV
9e9d328a75 Add Limit and staticTTL option to Items from Data/StorDB 2020-03-01 17:28:31 +01:00
adragusin
a4a5c4070d Updated eventReader default config 2020-03-01 17:24:27 +01:00
Trial97
a242724377 Updated comment in default json config 2020-02-21 19:07:54 +01:00
TeoV
e3e8693c45 Add *group type in AgentRequest + update changelog 2020-02-18 13:01:15 +01:00
Trial97
ca7ed53b67 CDR export with path instead of Tag 2020-02-10 15:26:00 +01:00
Trial97
a1c61a76d0 Updated filterS 2020-02-08 12:17:46 +01:00
adragusin
ce81097162 Updated filters in configs 2020-02-06 09:57:51 +01:00
TeoV
9376889b10 Parse RunDelay from EventReader with ParseDurationWithNanosecs fixes #1897 2020-02-05 15:57:58 +01:00
TeoV
b85ebe8214 Update EventReader integration tests 2020-02-05 15:57:58 +01:00
TeoV
aa6d5a5450 Update integration test for RadiuAgent 2020-02-05 15:57:58 +01:00
TeoV
5537edf20b Update integration test for HTTPAgent 2020-02-05 15:57:58 +01:00
TeoV
1de1222698 Update integration test for DNSAgent 2020-02-05 15:57:58 +01:00
TeoV
d396051d77 Update DiamIntegration test for all configurations 2020-02-05 15:57:58 +01:00
DanB
797b85ea79 DiameterAgent with mysql integration tests passing for full path 2020-02-04 18:41:44 +01:00
DanB
dce48fcc19 Updating DiameterAgent TCP integration tests for SetFields 2020-02-04 10:27:59 +01:00
adragusin
7d848069ef Fixed tests 2020-01-30 17:17:14 +01:00