X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=alarm%2Falarm_test.go;h=fa9e5b133fb1c3c2c68f26e0c7c48c7b4b8f2edb;hb=3649fae7a06ad3ad099d0aa4e68f7ca3a2ae5a87;hp=ea56b0090b82a036daa8f17b8c70d6bdbb8f74f9;hpb=3e0381545172d07ba76b9e84e41334a2e9cf66e4;p=ric-plt%2Falarm-go.git diff --git a/alarm/alarm_test.go b/alarm/alarm_test.go index ea56b00..fa9e5b1 100755 --- a/alarm/alarm_test.go +++ b/alarm/alarm_test.go @@ -21,22 +21,32 @@ package alarm_test import ( + "encoding/json" "github.com/stretchr/testify/assert" + "net" + "net/http" + "net/http/httptest" + "os" "testing" "time" - "gerrit.o-ran-sc.org/r/ric-plt/alarm-go/alarm" + "gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm" ) var alarmer *alarm.RICAlarm +var managerSim *httptest.Server // Test cases func TestAlarmInitSuccess(t *testing.T) { - a, err := alarm.InitAlarm("my-pod", "my-app") + 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) alarmer = a + time.Sleep(time.Duration(5 * time.Second)) } func TestAlarmRaiseSuccess(t *testing.T) { @@ -81,7 +91,46 @@ func TestAlarmSendSuccess(t *testing.T) { go alarmer.ReceiveMessage(consumer) time.Sleep(time.Duration(1 * time.Second)) - m := alarmer.NewAlarmMessage(a, alarm.AlarmActionRaise) - err := alarmer.SendMessage(m) + err := alarmer.Raise(a) assert.Nil(t, err, "send failed") } + +func TestSetManagedObjectIdSuccess(t *testing.T) { + alarmer.SetManagedObjectId("new-pod") + + a := alarmer.NewAlarm(1234, alarm.SeverityMajor, "Some App data", "eth 0 1") + assert.Equal(t, a.ManagedObjectId, "new-pod") +} + +func TestSetApplicationIdSuccess(t *testing.T) { + alarmer.SetApplicationId("new-app") + + 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 +}