X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=alarm%2Falarm_test.go;h=9f399b177a280c7f086490134b963ebc2dbabb0a;hb=acc15b9fd487af75d0bc2ae585a94065af38138e;hp=8f6ebdd086f0264be5c883a84131995334282716;hpb=c8687a0e843eb98d91f3f669a2d3dcc680def039;p=ric-plt%2Falarm-go.git diff --git a/alarm/alarm_test.go b/alarm/alarm_test.go old mode 100644 new mode 100755 index 8f6ebdd..9f399b1 --- a/alarm/alarm_test.go +++ b/alarm/alarm_test.go @@ -21,7 +21,12 @@ package alarm_test import ( + "encoding/json" "github.com/stretchr/testify/assert" + "net" + "net/http" + "net/http/httptest" + "os" "testing" "time" @@ -29,9 +34,13 @@ import ( ) var alarmer *alarm.RICAlarm +var managerSim *httptest.Server // Test cases func TestAlarmInitSuccess(t *testing.T) { + os.Setenv("ALARM_MANAGER_URL", "http://localhost:8080") + managerSim = CreateAlarmManagerSim(t, "POST", "/ric/v1/alarms", http.StatusOK, nil) + a, err := alarm.InitAlarm("my-pod-lib", "my-app") assert.Nil(t, err, "init failed") assert.Equal(t, false, a == nil) @@ -54,6 +63,26 @@ func TestAlarmClearSuccess(t *testing.T) { assert.Nil(t, err, "clear failed") } +func TestAlarmRaiseSuccessLong(t *testing.T) { + ainfo := "" + for i := 1; i <= 2024; i++ { + ainfo += "a" + } + a := alarmer.NewAlarm(1234, alarm.SeverityMajor, ainfo, "eth 0 1") + err := alarmer.Raise(a) + assert.Nil(t, err, "raise failed") +} + +func TestAlarmClearSuccessLong(t *testing.T) { + ainfo := "" + for i := 1; i <= 2024; i++ { + ainfo += "a" + } + a := alarmer.NewAlarm(1234, alarm.SeverityMajor, ainfo, "eth 0 1") + err := alarmer.Clear(a) + assert.Nil(t, err, "clear failed") +} + func TestAlarmReraiseSuccess(t *testing.T) { a := alarmer.NewAlarm(1234, alarm.SeverityMajor, "Some App data", "eth 0 1") @@ -99,3 +128,29 @@ func TestSetApplicationIdSuccess(t *testing.T) { a := alarmer.NewAlarm(1234, alarm.SeverityMajor, "Some App data", "eth 0 1") assert.Equal(t, a.ApplicationId, "new-app") } + +func TestTeardown(t *testing.T) { + managerSim.Close() +} + +func CreateAlarmManagerSim(t *testing.T, method, url string, status int, respData interface{}) *httptest.Server { + l, err := net.Listen("tcp", "localhost:8080") + if err != nil { + t.Error("Failed to create listener: " + err.Error()) + } + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + assert.Equal(t, r.Method, method) + assert.Equal(t, r.URL.String(), url) + + w.Header().Add("Content-Type", "application/json") + w.WriteHeader(status) + b, _ := json.Marshal(respData) + w.Write(b) + })) + ts.Listener.Close() + ts.Listener = l + + ts.Start() + + return ts +}