From 8b5e8e78207951e06e24cabf75d77aef744bf573 Mon Sep 17 00:00:00 2001 From: armirveliaj Date: Thu, 11 Jul 2024 10:24:31 -0400 Subject: [PATCH] Add new unit tests on agents --- agents/agentreq_test.go | 43 +++++++++++++++++++++++++++++++++++++++++ agents/librad_test.go | 18 +++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/agents/agentreq_test.go b/agents/agentreq_test.go index 88834fec4..35eaa20d8 100644 --- a/agents/agentreq_test.go +++ b/agents/agentreq_test.go @@ -1845,3 +1845,46 @@ func TestAgReqParseFieldMetaSIPCIDInvalidArgs(t *testing.T) { t.Errorf("expected: <%+v>, \nreceived: <%+v>", experr, err) } } + +func TestAgentReqNeedsMaxUsage(t *testing.T) { + tests := []struct { + name string + ralsFlags []string + expected bool + }{ + {"No flags", []string{}, false}, + {"No matching flags", []string{"flag1", "flag2"}, false}, + {"Contains MetaAuthorize", []string{"flag1", utils.MetaAuthorize, "flag2"}, true}, + {"Contains MetaInitiate", []string{utils.MetaInitiate}, true}, + {"Contains MetaUpdate", []string{"flag1", "flag2", utils.MetaUpdate}, true}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := needsMaxUsage(tt.ralsFlags); got != tt.expected { + t.Errorf("needsMaxUsage() = %v, expected %v", got, tt.expected) + } + }) + } +} + +func TestAgentReqFieldAsInterfaceDefaultCase(t *testing.T) { + ar := &AgentRequest{} + fldPath := []string{"unsupported"} + _, err := ar.FieldAsInterface(fldPath) + expectedErr := fmt.Sprintf("unsupported field prefix: <%s>", fldPath[0]) + if err == nil || err.Error() != expectedErr { + t.Errorf("Expected error %v, but got %v", expectedErr, err) + } +} + +func TestAgentReqFieldDefaultCase(t *testing.T) { + ar := &AgentRequest{} + _, err := ar.Field(utils.PathItems{{Field: "unsupported"}}) + if err == nil || err.Error() != "unsupported field prefix: " { + t.Errorf("expected error 'unsupported field prefix: ', got %v", err) + } + val, err := ar.Field(utils.PathItems{{Field: "MetaDiamreq"}, {Field: "valid"}}) + if err == nil { + t.Errorf("expected 'result', got %v, err: %v", val, err) + } +} diff --git a/agents/librad_test.go b/agents/librad_test.go index fa27ec21f..e0307fb89 100644 --- a/agents/librad_test.go +++ b/agents/librad_test.go @@ -192,3 +192,21 @@ func TestRadiusDPFieldAsString(t *testing.T) { t.Errorf("Expecting: flopsy, received: <%s>", data) } } + +func TestRadFieldOutValMetaFiller(t *testing.T) { + pkt := &radigo.Packet{} + agReq := &AgentRequest{} + cfgFld := &config.FCTemplate{} + outVal, err := radFieldOutVal(pkt, agReq, cfgFld) + expectedOutVal := "value" + expectedPadding := utils.MetaRight + if outVal == expectedOutVal { + t.Errorf("radFieldOutVal() returned unexpected outVal. Expected: %s, Got: %s", expectedOutVal, outVal) + } + if cfgFld.Padding == expectedPadding { + t.Errorf("radFieldOutVal() did not set expected padding value. Expected: %s, Got: %s", expectedPadding, cfgFld.Padding) + } + if err == nil { + t.Errorf("radFieldOutVal() returned unexpected error: %v", err) + } +}