X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=alarm%2Falarm_test.go;h=fa9e5b133fb1c3c2c68f26e0c7c48c7b4b8f2edb;hb=3649fae7a06ad3ad099d0aa4e68f7ca3a2ae5a87;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..fa9e5b1 --- 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) @@ -99,3 +108,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 +}