From e20200c30a87756f2c70fb9dc669b48a9fa5d94d Mon Sep 17 00:00:00 2001 From: armirveliaj Date: Wed, 5 Jun 2024 11:09:50 -0400 Subject: [PATCH] Revise and Add new unit tests on agents --- agents/agentreq_test.go | 32 +++++++++++------------ agents/libdiam_test.go | 57 ++++++++++++++++++++++++++++++----------- agents/librad_test.go | 24 +++++++++++++++++ 3 files changed, 82 insertions(+), 31 deletions(-) diff --git a/agents/agentreq_test.go b/agents/agentreq_test.go index a0d465508..8bc67000a 100644 --- a/agents/agentreq_test.go +++ b/agents/agentreq_test.go @@ -136,7 +136,7 @@ func TestAgReqSetFields(t *testing.T) { } } -func TestAgentRequestSetFields(t *testing.T) { +func TestAgReqSetFieldsComp(t *testing.T) { req := map[string]any{ utils.AccountField: 1009, utils.Tenant: "cgrates.org", @@ -2449,7 +2449,7 @@ func BenchmarkAgReqSetField(b *testing.B) { } } -func TestNeedsMaxUsage(t *testing.T) { +func TestAgReqNeedsMaxUsage(t *testing.T) { if needsMaxUsage(nil) { t.Error("Expected empty flag to not need maxUsage") } @@ -2494,7 +2494,7 @@ func TestAgReqSetFieldsFromCfg(t *testing.T) { } -func TestFieldAsInterface(t *testing.T) { +func TestAgReqFieldsAsInterface(t *testing.T) { fldPath := []string{utils.MetaOpts, utils.AccountField} ar := &AgentRequest{ Request: nil, @@ -2524,7 +2524,7 @@ func TestFieldAsInterface(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeDaily(t *testing.T) { +func TestAgReqParseFieldDateTimeDaily(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("*daily", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{ @@ -2553,7 +2553,7 @@ func TestAgentRequestParseFieldDateTimeDaily(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeTimeZone(t *testing.T) { +func TestAgReqParseFieldDateTimeTimeZone(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("*daily", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2581,7 +2581,7 @@ func TestAgentRequestParseFieldDateTimeTimeZone(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeMonthly(t *testing.T) { +func TestAgReqParseFieldDateTimeMonthly(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("*monthly", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2609,7 +2609,7 @@ func TestAgentRequestParseFieldDateTimeMonthly(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeMonthlyEstimated(t *testing.T) { +func TestAgReqParseFieldDateTimeMonthlyEstimated(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("*monthly_estimated", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2637,7 +2637,7 @@ func TestAgentRequestParseFieldDateTimeMonthlyEstimated(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeYearly(t *testing.T) { +func TestAgReqParseFieldDateTimeYearly(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("*yearly", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2665,7 +2665,7 @@ func TestAgentRequestParseFieldDateTimeYearly(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeMetaUnlimited(t *testing.T) { +func TestAgReqParseFieldDateTimeMetaUnlimited(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile(utils.MetaUnlimited, utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2693,7 +2693,7 @@ func TestAgentRequestParseFieldDateTimeMetaUnlimited(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeEmpty(t *testing.T) { +func TestAgReqParseFieldDateTimeEmpty(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2721,7 +2721,7 @@ func TestAgentRequestParseFieldDateTimeEmpty(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeMonthEnd(t *testing.T) { +func TestAgReqParseFieldDateTimeMonthEnd(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("*month_endTest", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2749,7 +2749,7 @@ func TestAgentRequestParseFieldDateTimeMonthEnd(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeError(t *testing.T) { +func TestAgReqParseFieldDateTimeError(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("*month_endTest", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) fctTemp := &config.FCTemplate{Type: utils.MetaDateTime, @@ -2765,7 +2765,7 @@ func TestAgentRequestParseFieldDateTimeError(t *testing.T) { } } -func TestAgentRequestParseFieldDateTimeError2(t *testing.T) { +func TestAgReqParseFieldDateTimeError2(t *testing.T) { prsr, err := config.NewRSRParsersFromSlice([]string{"2.", "~*req.CGRID<~*opts.Converter>"}) if err != nil { t.Fatal(err) @@ -2784,7 +2784,7 @@ func TestAgentRequestParseFieldDateTimeError2(t *testing.T) { } } -func TestAgentRequestRemoveAll(t *testing.T) { +func TestAgReqRemoveAll(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, nil, tntTpl, "", "", nil, nil) @@ -2814,7 +2814,7 @@ func TestAgentRequestRemoveAll(t *testing.T) { } } -func TestAgentRequestRemove(t *testing.T) { +func TestAgReqRemove(t *testing.T) { tntTpl := config.NewRSRParsersMustCompile("", utils.InfieldSep) AgentReq := NewAgentRequest(utils.MapStorage{}, nil, nil, nil, utils.MapStorage{utils.AccountField: "Field1"}, tntTpl, "", "", nil, nil) testCases := []struct { @@ -2872,7 +2872,7 @@ func TestAgentRequestRemove(t *testing.T) { // } // } -func TestAgentRequestString(t *testing.T) { +func TestAgReqString(t *testing.T) { sampleRequest := &AgentRequest{ Request: nil, Vars: nil, diff --git a/agents/libdiam_test.go b/agents/libdiam_test.go index 650b4ab1e..eda64a486 100644 --- a/agents/libdiam_test.go +++ b/agents/libdiam_test.go @@ -33,7 +33,7 @@ import ( "github.com/fiorix/go-diameter/v4/diam/datatype" ) -func TestDPFieldAsInterface(t *testing.T) { +func TestLibDiamDPFieldAsInterface(t *testing.T) { m := diam.NewRequest(diam.CreditControl, 4, nil) m.NewAVP("Session-Id", avp.Mbit, 0, datatype.UTF8String("simuhuawei;1449573472;00002")) m.NewAVP(avp.RequestedServiceUnit, avp.Mbit, 0, &diam.GroupedAVP{ @@ -111,7 +111,7 @@ func TestDPFieldAsInterface(t *testing.T) { } } -func TestMessageSetAVPsWithPath(t *testing.T) { +func TestLibDiamMessageSetAVPsWithPath(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Session-Id", avp.Mbit, 0, datatype.UTF8String("simuhuawei;1449573472;00001")) @@ -184,7 +184,7 @@ func TestMessageSetAVPsWithPath(t *testing.T) { } } -func TestMessageSetAVPsWithPath2(t *testing.T) { +func TestLibDiamMessageSetAVPsWithPath2(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -211,7 +211,7 @@ func TestMessageSetAVPsWithPath2(t *testing.T) { } } -func TestMessageSetAVPsWithPath3(t *testing.T) { +func TestLibDiamMessageSetAVPsWithPath3(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -256,7 +256,7 @@ func TestMessageSetAVPsWithPath3(t *testing.T) { } } -func TestMessageSetAVPsWithPath4(t *testing.T) { +func TestLibDiamMessageSetAVPsWithPath4(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -300,7 +300,7 @@ func TestMessageSetAVPsWithPath4(t *testing.T) { } } -func TestMessageSetAVPsWithPath5(t *testing.T) { +func TestLibDiamMessageSetAVPsWithPath5(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -377,7 +377,7 @@ func TestMessageSetAVPsWithPath6(t *testing.T) { } */ -func TestDisectDiamListen(t *testing.T) { +func TestLibDiamDisectDiamListen(t *testing.T) { expIPs := []net.IP{net.ParseIP("192.168.56.203"), net.ParseIP("192.168.57.203")} rvc := disectDiamListen("192.168.56.203/192.168.57.203:3869") if !reflect.DeepEqual(expIPs, rvc) { @@ -396,7 +396,7 @@ func TestDisectDiamListen(t *testing.T) { } -func TestUpdateDiamMsgFromNavMap1(t *testing.T) { +func TestLibDiamUpdateDiamMsgFromNavMap1(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -464,7 +464,7 @@ func TestUpdateDiamMsgFromNavMap1(t *testing.T) { } } -func TestUpdateDiamMsgFromNavMap2(t *testing.T) { +func TestLibDiamUpdateDiamMsgFromNavMap2(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -558,7 +558,7 @@ func TestUpdateDiamMsgFromNavMap2(t *testing.T) { } } -func TestUpdateDiamMsgFromNavMap3(t *testing.T) { +func TestLibDiamUpdateDiamMsgFromNavMap3(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -629,7 +629,7 @@ func TestUpdateDiamMsgFromNavMap3(t *testing.T) { } } -func TestUpdateDiamMsgFromNavMap4(t *testing.T) { +func TestLibDiamUpdateDiamMsgFromNavMap4(t *testing.T) { eMessage := diam.NewRequest(diam.CreditControl, 4, nil) eMessage.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -741,7 +741,7 @@ func TestUpdateDiamMsgFromNavMap4(t *testing.T) { } } -func TestDiamAVPAsIface(t *testing.T) { +func TestLibDiamAVPAsIface(t *testing.T) { args := diam.NewAVP(435, avp.Mbit, 0, datatype.Address("127.0.0.1")) var exp any = net.IP([]byte("127.0.0.1")) if rply, err := diamAVPAsIface(args); err != nil { @@ -889,7 +889,7 @@ func TestDiamAVPAsIface(t *testing.T) { } } -func TestNewDiamDataType(t *testing.T) { +func TestLibDiamNewDiamDataType(t *testing.T) { argType := datatype.AddressType argVal := "127.0.0.1" var exp datatype.Type = datatype.Address(net.ParseIP("127.0.0.1")) @@ -1092,7 +1092,7 @@ func TestNewDiamDataType(t *testing.T) { } } -func TestDiamAvpGroupIface(t *testing.T) { +func TestLibDiamAvpGroupIface(t *testing.T) { avps := diam.NewRequest(diam.CreditControl, 4, nil) avps.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -1134,7 +1134,7 @@ func TestDiamAvpGroupIface(t *testing.T) { } } -func TestFilterWithDiameterDP(t *testing.T) { +func TestLibDiamFilterWithDiameterDP(t *testing.T) { avps := diam.NewRequest(diam.CreditControl, 4, nil) avps.NewAVP("Multiple-Services-Credit-Control", avp.Mbit, 0, &diam.GroupedAVP{ AVP: []*diam.AVP{ @@ -1179,3 +1179,30 @@ func TestFilterWithDiameterDP(t *testing.T) { t.Errorf("Exptected true, received: %+v", pass) } } + +func TestLibDiamHeaderLen(t *testing.T) { + tests := []struct { + name string + avp *diam.AVP + wantLen int + }{ + { + name: "len equals", + avp: &diam.AVP{Flags: avp.Vbit}, + wantLen: 12, + }, + { + name: "len not set", + avp: &diam.AVP{}, + wantLen: 8, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + gotLen := headerLen(tt.avp) + if gotLen != tt.wantLen { + t.Errorf("headerLen() returned %d, want %d", gotLen, tt.wantLen) + } + }) + } +} diff --git a/agents/librad_test.go b/agents/librad_test.go index 6367b57f8..2f8c576af 100644 --- a/agents/librad_test.go +++ b/agents/librad_test.go @@ -141,3 +141,27 @@ func TestRadiusDPFieldAsString(t *testing.T) { t.Errorf("Expecting: flopsy, received: <%s>", data) } } + +func TestLibradRadiusDPString(t *testing.T) { + + tests := []struct { + name string + req *radigo.Packet + want string + }{ + { + name: "NilRequest", + req: nil, + want: "null", + }, + } + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + r := &radiusDP{req: tc.req} + got := r.String() + if got != tc.want { + t.Errorf("Got: %s, Expected: %s", got, tc.want) + } + }) + } +}