X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=alarm%2Falarm_test.go;h=fa9e5b133fb1c3c2c68f26e0c7c48c7b4b8f2edb;hb=refs%2Fchanges%2F12%2F6412%2F1;hp=6af23e9d9ce86d2e287c299199c2162a40448c34;hpb=4e7e71265c9a5b85d56478267b0a6ed44f6a80fb;p=ric-plt%2Falarm-go.git diff --git a/alarm/alarm_test.go b/alarm/alarm_test.go index 6af23e9..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) { @@ -84,3 +94,43 @@ func TestAlarmSendSuccess(t *testing.T) { 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 +}