From df883cbe96081b893a093f522fdeac9c20282117 Mon Sep 17 00:00:00 2001 From: DanB Date: Fri, 22 Jan 2016 13:32:08 +0100 Subject: [PATCH] Test returned code from DryRun template --- agents/dmtagent_it_test.go | 19 ++++++++++++++++--- .../samples/dmtagent/diameter_processors.json | 6 +----- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/agents/dmtagent_it_test.go b/agents/dmtagent_it_test.go index 394387874..15b3b0bd0 100644 --- a/agents/dmtagent_it_test.go +++ b/agents/dmtagent_it_test.go @@ -401,9 +401,10 @@ func TestDmtAgentSendCCRSMS(t *testing.T) { if err := dmtClient.SendMessage(ccr); err != nil { t.Error(err) } + + time.Sleep(time.Duration(100) * time.Millisecond) + dmtClient.ReceivedMessage() // Discard the received message so we can test next one /* - time.Sleep(time.Duration(100) * time.Millisecond) - msg := dmtClient.ReceivedMessage() if msg == nil { t.Fatal("No message returned") } @@ -430,7 +431,7 @@ func TestDmtAgentCdrs(t *testing.T) { return } var cdrs []*engine.ExternalCDR - req := utils.RPCCDRsFilter{RunIDs: []string{utils.META_DEFAULT}} + req := utils.RPCCDRsFilter{RunIDs: []string{utils.META_DEFAULT}, ToRs: []string{utils.VOICE}} if err := apierRpc.Call("ApierV2.GetCdrs", req, &cdrs); err != nil { t.Error("Unexpected error: ", err.Error()) } else if len(cdrs) != 1 { @@ -464,6 +465,18 @@ func TestDmtAgentDryRun1(t *testing.T) { if err := dmtClient.SendMessage(ccr); err != nil { t.Error(err) } + time.Sleep(time.Duration(100) * time.Millisecond) + msg := dmtClient.ReceivedMessage() + if msg == nil { + t.Fatal("No message returned") + } + if avps, err := msg.FindAVPsWithPath([]interface{}{"Result-Code"}, dict.UndefinedVendorID); err != nil { + t.Error(err) + } else if len(avps) == 0 { + t.Error("Result-Code") + } else if strResult := avpValAsString(avps[0]); strResult != "300" { // Result-Code set in the template + t.Errorf("Expecting 200, received: %s", strResult) + } } func TestDmtAgentStopEngine(t *testing.T) { diff --git a/data/conf/samples/dmtagent/diameter_processors.json b/data/conf/samples/dmtagent/diameter_processors.json index ae2f5e53c..4adf3990e 100644 --- a/data/conf/samples/dmtagent/diameter_processors.json +++ b/data/conf/samples/dmtagent/diameter_processors.json @@ -14,15 +14,11 @@ {"tag": "Direction", "field_id": "Direction", "type": "*composed", "value": "^*out", "mandatory": true}, {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "^cgrates.org", "mandatory": true}, {"tag": "Category", "field_id": "Category", "type": "*composed", "value": "^call", "mandatory": true}, - {"tag": "Account", "field_id": "Account", "type": "*composed", "value": "Subscription-Id>Subscription-Id-Data", "field_filter":"Subscription-Id>Subscription-Id-Type(0)", "mandatory": true}, - {"tag": "Subject", "field_id": "Subject", "type": "*composed", "value": "Subscription-Id>Subscription-Id-Data", "field_filter":"Subscription-Id>Subscription-Id-Type(0)", "mandatory": true}, - {"tag": "Destination", "field_id": "Destination", "type": "*composed", "value": "Service-Information>SMS-Information>Recipient-Address>Address-Data", "mandatory": true}, {"tag": "SetupTime", "field_id": "SetupTime", "type": "*composed", "value": "Event-Timestamp", "mandatory": true}, {"tag": "AnswerTime", "field_id": "AnswerTime", "type": "*composed", "value": "Event-Timestamp", "mandatory": true}, - {"tag": "Usage", "field_id": "Usage", "type": "*composed", "value": "Requested-Service-Unit>CC-Time", "mandatory": true}, ], "cca_fields":[ // fields returned in CCA - {"tag": "GrantedUnits", "field_id": "Granted-Service-Unit>CC-Time", "type": "*handler", "handler_id": "*cca_usage", "mandatory": true}, + {"tag": "ResultCode", "field_id": "Result-Code", "type": "*constant", "value": "300"}, ], }, {