mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Tests for Default value for answer time is now null in cdrsql
This commit is contained in:
committed by
Dan Christian Bogos
parent
fc3c644f05
commit
b74f2306fc
@@ -318,7 +318,7 @@ func TestCDRNewCDRFromSQL(t *testing.T) {
|
||||
Subject: "1001",
|
||||
Destination: "+4986517174963",
|
||||
SetupTime: time.Date(2013, 11, 7, 8, 42, 20, 0, time.UTC),
|
||||
AnswerTime: time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC),
|
||||
AnswerTime: utils.TimePointer(time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC)),
|
||||
Usage: 10000000000,
|
||||
Cost: 1.01,
|
||||
RequestType: utils.MetaRated,
|
||||
|
||||
84
engine/models_test.go
Normal file
84
engine/models_test.go
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
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, or56
|
||||
(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 <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package engine
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestModelsAsMapStringInterface(t *testing.T) {
|
||||
testCdrSql := CDRsql{
|
||||
ID: 1,
|
||||
Cgrid: "testCgrID1",
|
||||
RunID: "testRunID",
|
||||
OriginHost: "testOriginHost",
|
||||
Source: "testSource",
|
||||
OriginID: "testOriginId",
|
||||
TOR: "testTOR",
|
||||
RequestType: "testRequestType",
|
||||
Tenant: "cgrates.org",
|
||||
Category: "testCategory",
|
||||
Account: "testAccount",
|
||||
Subject: "testSubject",
|
||||
Destination: "testDestination",
|
||||
SetupTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
AnswerTime: utils.TimePointer(time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)),
|
||||
Usage: 2,
|
||||
ExtraFields: "extraFields",
|
||||
CostSource: "testCostSource",
|
||||
Cost: 2,
|
||||
CostDetails: "testCostDetails",
|
||||
ExtraInfo: "testExtraInfo",
|
||||
CreatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
UpdatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
DeletedAt: utils.TimePointer(time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)),
|
||||
}
|
||||
expected := map[string]interface{}{
|
||||
"cgrid": testCdrSql.Cgrid,
|
||||
"run_id": testCdrSql.RunID,
|
||||
"origin_host": testCdrSql.OriginHost,
|
||||
"source": testCdrSql.Source,
|
||||
"origin_id": testCdrSql.OriginID,
|
||||
"tor": testCdrSql.TOR,
|
||||
"request_type": testCdrSql.RequestType,
|
||||
"tenant": testCdrSql.Tenant,
|
||||
"category": testCdrSql.Category,
|
||||
"account": testCdrSql.Account,
|
||||
"subject": testCdrSql.Subject,
|
||||
"destination": testCdrSql.Destination,
|
||||
"setup_time": testCdrSql.SetupTime,
|
||||
"answer_time": testCdrSql.AnswerTime,
|
||||
"usage": testCdrSql.Usage,
|
||||
"extra_fields": testCdrSql.ExtraFields,
|
||||
"cost_source": testCdrSql.CostSource,
|
||||
"cost": testCdrSql.Cost,
|
||||
"cost_details": testCdrSql.CostDetails,
|
||||
"extra_info": testCdrSql.ExtraInfo,
|
||||
"created_at": testCdrSql.CreatedAt,
|
||||
"updated_at": testCdrSql.UpdatedAt,
|
||||
}
|
||||
result := testCdrSql.AsMapStringInterface()
|
||||
if !reflect.DeepEqual(expected, result) {
|
||||
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
|
||||
}
|
||||
}
|
||||
210
migrator/cdrs_test.go
Normal file
210
migrator/cdrs_test.go
Normal file
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
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 <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
package migrator
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/engine"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestCdrsNewV1CDRFromCDRSql(t *testing.T) {
|
||||
testCdrSql := &engine.CDRsql{
|
||||
ID: 1,
|
||||
Cgrid: "testID",
|
||||
RunID: "testRunID",
|
||||
OriginHost: "testOriginHost",
|
||||
Source: "testSource",
|
||||
TOR: "testTOR",
|
||||
RequestType: "testRequestType",
|
||||
Tenant: "cgrates.org",
|
||||
Category: "testCategory",
|
||||
Account: "testAccount",
|
||||
Subject: "testSubject",
|
||||
Destination: "testDestination",
|
||||
SetupTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
AnswerTime: utils.TimePointer(time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)),
|
||||
Usage: 1,
|
||||
CostSource: "testSource",
|
||||
Cost: 2,
|
||||
ExtraInfo: "testExtraInfo",
|
||||
CreatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
UpdatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
DeletedAt: utils.TimePointer(time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)),
|
||||
}
|
||||
expected := &v1Cdrs{
|
||||
CGRID: "testID",
|
||||
RunID: "testRunID",
|
||||
OriginHost: "testOriginHost",
|
||||
OrderID: 1,
|
||||
Source: "testSource",
|
||||
ToR: "testTOR",
|
||||
RequestType: "testRequestType",
|
||||
Tenant: "cgrates.org",
|
||||
Category: "testCategory",
|
||||
Account: "testAccount",
|
||||
Subject: "testSubject",
|
||||
Destination: "testDestination",
|
||||
SetupTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
AnswerTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
Usage: time.Nanosecond,
|
||||
ExtraInfo: "testExtraInfo",
|
||||
Partial: false,
|
||||
Rated: false,
|
||||
CostSource: "testSource",
|
||||
Cost: 2,
|
||||
}
|
||||
result, err := NewV1CDRFromCDRSql(testCdrSql)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expected, result) {
|
||||
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCdrsAsCDRsql(t *testing.T) {
|
||||
testV1Cdrs := &v1Cdrs{
|
||||
CGRID: "testID",
|
||||
RunID: "testRunID",
|
||||
OriginHost: "testOriginHost",
|
||||
OrderID: 1,
|
||||
Source: "testSource",
|
||||
ToR: "testTOR",
|
||||
RequestType: "testRequestType",
|
||||
Tenant: "cgrates.org",
|
||||
Category: "testCategory",
|
||||
Account: "testAccount",
|
||||
Subject: "testSubject",
|
||||
Destination: "testDestination",
|
||||
SetupTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
AnswerTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
Usage: time.Nanosecond,
|
||||
ExtraInfo: "testExtraInfo",
|
||||
Partial: false,
|
||||
Rated: false,
|
||||
CostSource: "testSource",
|
||||
Cost: 2,
|
||||
}
|
||||
|
||||
expected := &engine.CDRsql{
|
||||
ID: 0,
|
||||
Cgrid: "testID",
|
||||
RunID: "testRunID",
|
||||
OriginHost: "testOriginHost",
|
||||
Source: "testSource",
|
||||
TOR: "testTOR",
|
||||
RequestType: "testRequestType",
|
||||
Tenant: "cgrates.org",
|
||||
Category: "testCategory",
|
||||
Account: "testAccount",
|
||||
Subject: "testSubject",
|
||||
Destination: "testDestination",
|
||||
SetupTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
AnswerTime: utils.TimePointer(time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)),
|
||||
Usage: 1,
|
||||
CostSource: "testSource",
|
||||
Cost: 2,
|
||||
ExtraInfo: "testExtraInfo",
|
||||
CreatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
ExtraFields: "",
|
||||
CostDetails: "",
|
||||
}
|
||||
result := testV1Cdrs.AsCDRsql()
|
||||
result.CreatedAt = time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)
|
||||
result.ExtraFields = ""
|
||||
result.CostDetails = ""
|
||||
if !reflect.DeepEqual(expected, result) {
|
||||
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(expected), utils.ToJSON(result))
|
||||
}
|
||||
}
|
||||
|
||||
func TestCdrsAsCDRsqlAnswertimeEmpty(t *testing.T) {
|
||||
var answTime time.Time
|
||||
testV1Cdrs := &v1Cdrs{
|
||||
AnswerTime: answTime,
|
||||
}
|
||||
|
||||
expected := &engine.CDRsql{
|
||||
AnswerTime: nil,
|
||||
CreatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
}
|
||||
result := testV1Cdrs.AsCDRsql()
|
||||
result.CreatedAt = time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)
|
||||
result.ExtraFields = ""
|
||||
result.CostDetails = ""
|
||||
if !reflect.DeepEqual(expected, result) {
|
||||
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(expected), utils.ToJSON(result))
|
||||
}
|
||||
}
|
||||
|
||||
func TestCdrsNewV1CDRFromCDRSqlAnswerTimeNil(t *testing.T) {
|
||||
testCdrSql := &engine.CDRsql{
|
||||
ID: 1,
|
||||
Cgrid: "testID",
|
||||
RunID: "testRunID",
|
||||
OriginHost: "testOriginHost",
|
||||
Source: "testSource",
|
||||
TOR: "testTOR",
|
||||
RequestType: "testRequestType",
|
||||
Tenant: "cgrates.org",
|
||||
Category: "testCategory",
|
||||
Account: "testAccount",
|
||||
Subject: "testSubject",
|
||||
Destination: "testDestination",
|
||||
SetupTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
AnswerTime: nil,
|
||||
Usage: 1,
|
||||
CostSource: "testSource",
|
||||
Cost: 2,
|
||||
ExtraInfo: "testExtraInfo",
|
||||
CreatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
UpdatedAt: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
DeletedAt: utils.TimePointer(time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC)),
|
||||
}
|
||||
var answTime time.Time
|
||||
expected := &v1Cdrs{
|
||||
CGRID: "testID",
|
||||
RunID: "testRunID",
|
||||
OriginHost: "testOriginHost",
|
||||
OrderID: 1,
|
||||
Source: "testSource",
|
||||
ToR: "testTOR",
|
||||
RequestType: "testRequestType",
|
||||
Tenant: "cgrates.org",
|
||||
Category: "testCategory",
|
||||
Account: "testAccount",
|
||||
Subject: "testSubject",
|
||||
Destination: "testDestination",
|
||||
SetupTime: time.Date(2021, 3, 3, 3, 3, 3, 3, time.UTC),
|
||||
AnswerTime: answTime,
|
||||
Usage: time.Nanosecond,
|
||||
ExtraInfo: "testExtraInfo",
|
||||
Partial: false,
|
||||
Rated: false,
|
||||
CostSource: "testSource",
|
||||
Cost: 2,
|
||||
}
|
||||
result, err := NewV1CDRFromCDRSql(testCdrSql)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if !reflect.DeepEqual(expected, result) {
|
||||
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, result)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user