Minor bugs fix in ORU-app simulator
[nonrtric.git] / test / usecases / oruclosedlooprecovery / goversion / main_test.go
index 99419bf..c0e2973 100644 (file)
@@ -54,23 +54,24 @@ func Test_init(t *testing.T) {
        doInit()
 
        wantedConfiguration := &config.Config{
-               LogLevel:               log.InfoLevel,
                ConsumerHost:           "consumerHost",
                ConsumerPort:           8095,
                InfoCoordinatorAddress: "http://enrichmentservice:8083",
-               SDNRHost:               "http://localhost",
-               SDNRPort:               3904,
+               SDNRAddress:            "http://localhost:3904",
                SDNRUser:               "admin",
                SDNPassword:            "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U",
                ORUToODUMapFile:        "o-ru-to-o-du-map.csv",
+               ConsumerCertPath:       "security/consumer.crt",
+               ConsumerKeyPath:        "security/consumer.key",
+               LogLevel:               log.InfoLevel,
        }
        assertions.Equal(wantedConfiguration, configuration)
 
        assertions.Equal(fmt.Sprint(wantedConfiguration.ConsumerPort), consumerPort)
-       assertions.Equal(wantedConfiguration.ConsumerHost+":"+fmt.Sprint(wantedConfiguration.ConsumerPort), jobRegistrationInfo.JobResultUri)
+       assertions.Equal(wantedConfiguration.ConsumerHost+":"+fmt.Sprint(wantedConfiguration.ConsumerPort), jobRegistrationInfo.JobResultURI)
 
        wantedLinkFailureConfig := linkfailure.Configuration{
-               SDNRAddress:  wantedConfiguration.SDNRHost + ":" + fmt.Sprint(wantedConfiguration.SDNRPort),
+               SDNRAddress:  wantedConfiguration.SDNRAddress,
                SDNRUser:     wantedConfiguration.SDNRUser,
                SDNRPassword: wantedConfiguration.SDNPassword,
        }
@@ -92,8 +93,10 @@ func Test_validateConfiguration(t *testing.T) {
                        name: "Valid config, should return nil",
                        args: args{
                                configuration: &config.Config{
-                                       ConsumerHost: "host",
-                                       ConsumerPort: 80,
+                                       ConsumerHost:     "host",
+                                       ConsumerPort:     80,
+                                       ConsumerCertPath: "security/consumer.crt",
+                                       ConsumerKeyPath:  "security/consumer.key",
                                },
                        },
                },
@@ -186,34 +189,20 @@ func Test_getRouter_shouldContainAllPathsWithHandlers(t *testing.T) {
        assertions.Nil(err)
        path, _ = stopHandlerRoute.GetPathTemplate()
        assertions.Equal("/admin/stop", path)
-}
 
-func Test_startServer_shouldDeleteJobWhenServerStopsWithErrorAndLog(t *testing.T) {
-       assertions := require.New(t)
-
-       var buf bytes.Buffer
-       log.SetOutput(&buf)
-
-       os.Setenv("CONSUMER_PORT", "wrong")
-       t.Cleanup(func() {
-               log.SetOutput(os.Stderr)
-       })
-
-       mockServer := &mocks.Server{}
-       mockServer.On("ListenAndServe").Return(errors.New("Server failure"))
-
-       startServer(mockServer)
-
-       log := buf.String()
-       assertions.Contains(log, "level=error")
-       assertions.Contains(log, "Server stopped unintentionally due to: Server failure. Deleteing job.")
-       assertions.Contains(log, "Please remove job 14e7bb84-a44d-44c1-90b7-6995a92ad43c manually")
+       statusHandlerRoute := r.Get("status")
+       assertions.NotNil(statusHandlerRoute)
+       supportedMethods, err = statusHandlerRoute.GetMethods()
+       assertions.Equal([]string{http.MethodGet}, supportedMethods)
+       assertions.Nil(err)
+       path, _ = statusHandlerRoute.GetPathTemplate()
+       assertions.Equal("/status", path)
 }
 
 func Test_startHandler(t *testing.T) {
        assertions := require.New(t)
 
-       jobRegistrationInfo.JobResultUri = "host:80"
+       jobRegistrationInfo.JobResultURI = "host:80"
 
        type args struct {
                mockReturnBody   []byte
@@ -283,6 +272,16 @@ func Test_startHandler(t *testing.T) {
                        expectedBody := wantedBody
                        assertions.Equal(expectedBody, body)
                        clientMock.AssertNumberOfCalls(t, "Do", 1)
+
+                       // Check that the running status is "started"
+                       statusHandler := http.HandlerFunc(statusHandler)
+                       statusResponseRecorder := httptest.NewRecorder()
+                       statusRequest, _ := http.NewRequest(http.MethodGet, "/status", nil)
+
+                       statusHandler.ServeHTTP(statusResponseRecorder, statusRequest)
+
+                       assertions.Equal(http.StatusOK, statusResponseRecorder.Code)
+                       assertions.Equal(`{"status": "started"}`, statusResponseRecorder.Body.String())
                })
        }
 }
@@ -290,7 +289,7 @@ func Test_startHandler(t *testing.T) {
 func Test_stopHandler(t *testing.T) {
        assertions := require.New(t)
 
-       jobRegistrationInfo.JobResultUri = "host:80"
+       jobRegistrationInfo.JobResultURI = "host:80"
 
        type args struct {
                mockReturnBody   []byte
@@ -343,6 +342,16 @@ func Test_stopHandler(t *testing.T) {
                        assertions.Equal("enrichmentservice:8083", actualRequest.URL.Host)
                        assertions.Equal("/data-consumer/v1/info-jobs/14e7bb84-a44d-44c1-90b7-6995a92ad43c", actualRequest.URL.Path)
                        clientMock.AssertNumberOfCalls(t, "Do", 1)
+
+                       // Check that the running status is "stopped"
+                       statusHandler := http.HandlerFunc(statusHandler)
+                       statusResponseRecorder := httptest.NewRecorder()
+                       statusRequest, _ := http.NewRequest(http.MethodGet, "/status", nil)
+
+                       statusHandler.ServeHTTP(statusResponseRecorder, statusRequest)
+
+                       assertions.Equal(http.StatusOK, statusResponseRecorder.Code)
+                       assertions.Equal(`{"status": "stopped"}`, statusResponseRecorder.Body.String())
                })
        }
 }