Added config and logger module from xapp-fwk. Added Routes related to A1Mediator...
[ric-plt/rtmgr.git] / pkg / nbi / httprestful_test.go
index 137e75b..b9d88c6 100644 (file)
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
+
+
+   This source code is part of the near-RT RIC (RAN Intelligent Controller)
+   platform project (RICP).
+
 ==================================================================================
 */
 /*
 ==================================================================================
 */
 /*
 package nbi
 
 import (
 package nbi
 
 import (
-       "routing-manager/pkg/stub"
-        "routing-manager/pkg/models"
-        "routing-manager/pkg/sdl"
-       "github.com/go-openapi/swag"
-        "testing"
-       "time"
-        "net"
-        "net/http"
-        "net/http/httptest"
+       "encoding/json"
        "fmt"
        "fmt"
-       "os"
        "io/ioutil"
        "io/ioutil"
-       "encoding/json"
+       "net"
+       "net/http"
+       "net/http/httptest"
+       "os"
+       "routing-manager/pkg/models"
+       "routing-manager/pkg/sdl"
+       "routing-manager/pkg/stub"
+       "testing"
+       "time"
+
+       "github.com/go-openapi/swag"
 )
 
 )
 
-var BASIC_XAPPLIST = []byte(`[
+var BasicXAppLists = []byte(`[
  {
  "name":"xapp-01","status":"unknown","version":"1.2.3",
     "instances":[
  {
  "name":"xapp-01","status":"unknown","version":"1.2.3",
     "instances":[
@@ -56,11 +62,9 @@ var BASIC_XAPPLIST = []byte(`[
 }
 ]`)
 
 }
 ]`)
 
-var SUBSCRIPTION_RESP = []byte(`{"ID":"deadbeef1234567890", "Version":0, "EventType":"all"}`)
-
-
-var INVALID_SUB_RESP = []byte(`{"Version":0, "EventType":all}`)
+var SubscriptionResp = []byte(`{"ID":"deadbeef1234567890", "Version":0, "EventType":"all"}`)
 
 
+var InvalidSubResp = []byte(`{"Version":0, "EventType":all}`)
 
 func createMockAppmgrWithData(url string, g []byte, p []byte) *httptest.Server {
        l, err := net.Listen("tcp", url)
 
 func createMockAppmgrWithData(url string, g []byte, p []byte) *httptest.Server {
        l, err := net.Listen("tcp", url)
@@ -74,10 +78,10 @@ func createMockAppmgrWithData(url string, g []byte, p []byte) *httptest.Server {
                        w.Write(g)
                }
                if r.Method == "POST" && r.URL.String() == "/ric/v1/subscriptions" {
                        w.Write(g)
                }
                if r.Method == "POST" && r.URL.String() == "/ric/v1/subscriptions" {
-                        w.Header().Add("Content-Type", "application/json")
-                        w.WriteHeader(http.StatusCreated)
-                        w.Write(p)
-                }
+                       w.Header().Add("Content-Type", "application/json")
+                       w.WriteHeader(http.StatusCreated)
+                       w.Write(p)
+               }
 
        }))
        ts.Listener.Close()
 
        }))
        ts.Listener.Close()
@@ -86,31 +90,31 @@ func createMockAppmgrWithData(url string, g []byte, p []byte) *httptest.Server {
 }
 
 func createMockPlatformComponents() {
 }
 
 func createMockPlatformComponents() {
-       var filename = string("config.json")
+       var filename = "config.json"
        file, _ := json.MarshalIndent(stub.ValidPlatformComponents, "", "")
        filestr := string(file)
        file, _ := json.MarshalIndent(stub.ValidPlatformComponents, "", "")
        filestr := string(file)
-       filestr = "{\"PlatformComponents\":"+filestr+"}"
+       filestr = "{\"PlatformComponents\":" + filestr + "}"
        file = []byte(filestr)
        _ = ioutil.WriteFile(filename, file, 644)
 }
 
 func TestRecvXappCallbackData(t *testing.T) {
        file = []byte(filestr)
        _ = ioutil.WriteFile(filename, file, 644)
 }
 
 func TestRecvXappCallbackData(t *testing.T) {
-       data := models.XappCallbackData {
-                Data: *swag.String("[]"),
-                DataVersion: *swag.Int64(1),
-                Event: *swag.String("any"),
-                ID: *swag.Int64(123456),
+       data := models.XappCallbackData{
+               XApps:   *swag.String("[]"),
+               Version: *swag.Int64(1),
+               Event:   *swag.String("any"),
+               ID:      *swag.String("123456"),
        }
 
        ch := make(chan *models.XappCallbackData)
        defer close(ch)
        httpRestful := NewHttpRestful()
        }
 
        ch := make(chan *models.XappCallbackData)
        defer close(ch)
        httpRestful := NewHttpRestful()
-       go func() {ch<- &data}()
+       go func() { ch <- &data }()
        time.Sleep(1 * time.Second)
        t.Log(string(len(ch)))
        xappList, err := httpRestful.RecvXappCallbackData(ch)
        if err != nil {
        time.Sleep(1 * time.Second)
        t.Log(string(len(ch)))
        xappList, err := httpRestful.RecvXappCallbackData(ch)
        if err != nil {
-               t.Error("Receive failed: "+err.Error())
+               t.Error("Receive failed: " + err.Error())
        } else {
                if xappList == nil {
                        t.Error("Expected an XApp notification list")
        } else {
                if xappList == nil {
                        t.Error("Expected an XApp notification list")
@@ -124,18 +128,18 @@ func TestProvideXappHandleHandlerImpl(t *testing.T) {
        datach := make(chan *models.XappCallbackData, 10)
        defer close(datach)
        data := models.XappCallbackData{
        datach := make(chan *models.XappCallbackData, 10)
        defer close(datach)
        data := models.XappCallbackData{
-               Data: *swag.String("[]"),
-               DataVersion: *swag.Int64(1),
-               Event: *swag.String("someevent"),
-               ID: *swag.Int64(123456)}
+               XApps:   *swag.String("[]"),
+               Version: *swag.Int64(1),
+               Event:   *swag.String("someevent"),
+               ID:      *swag.String("123456")}
        var httpRestful, _ = GetNbi("httpRESTful")
        err := httpRestful.(*HttpRestful).ProvideXappHandleHandlerImpl(datach, &data)
        if err != nil {
        var httpRestful, _ = GetNbi("httpRESTful")
        err := httpRestful.(*HttpRestful).ProvideXappHandleHandlerImpl(datach, &data)
        if err != nil {
-               t.Error("Error occured: "+err.Error())
+               t.Error("Error occured: " + err.Error())
        } else {
                recv := <-datach
                if recv == nil {
        } else {
                recv := <-datach
                if recv == nil {
-                       t.Error("Something gone wrong: "+err.Error())
+                       t.Error("Something gone wrong: " + err.Error())
                } else {
                        if recv != &data {
                                t.Error("Malformed data on channel")
                } else {
                        if recv != &data {
                                t.Error("Malformed data on channel")
@@ -145,46 +149,45 @@ func TestProvideXappHandleHandlerImpl(t *testing.T) {
 }
 
 func TestValidateXappCallbackData(t *testing.T) {
 }
 
 func TestValidateXappCallbackData(t *testing.T) {
-        data := models.XappCallbackData{
-                Data: *swag.String("[]"),
-                DataVersion: *swag.Int64(1),
-                Event: *swag.String("someevent"),
-                ID: *swag.Int64(123456)}
+       data := models.XappCallbackData{
+               XApps:   *swag.String("[]"),
+               Version: *swag.Int64(1),
+               Event:   *swag.String("someevent"),
+               ID:      *swag.String("123456")}
 
        err := validateXappCallbackData(&data)
        if err != nil {
 
        err := validateXappCallbackData(&data)
        if err != nil {
-               t.Error("Invalid XApp callback data: "+err.Error())
+               t.Error("Invalid XApp callback data: " + err.Error())
        }
 }
 
 func TestValidateXappCallbackDataWithInvalidData(t *testing.T) {
        }
 }
 
 func TestValidateXappCallbackDataWithInvalidData(t *testing.T) {
-        data := models.XappCallbackData{
-                Data: *swag.String("{}"),
-                DataVersion: *swag.Int64(1),
-                Event: *swag.String("someevent"),
-                ID: *swag.Int64(123456)}
-
-        err := validateXappCallbackData(&data)
-        if err == nil {
-                t.Error("Invalid XApp callback data: "+err.Error())
-        }
-}
+       data := models.XappCallbackData{
+               XApps:   *swag.String("{}"),
+               Version: *swag.Int64(1),
+               Event:   *swag.String("someevent"),
+               ID:      *swag.String("123456")}
 
 
+       err := validateXappCallbackData(&data)
+       if err == nil {
+               t.Error("Invalid XApp callback data: " + err.Error())
+       }
+}
 
 
-func TestHttpGetXappsInvalidData(t *testing.T) {
-        _, err := httpGetXapps(XMURL)
-        if err == nil {
-                t.Error("No XApp data received: "+err.Error())
-        }
+func TestHttpGetXAppsInvalidData(t *testing.T) {
+       _, err := httpGetXApps(XMURL)
+       if err == nil {
+               t.Error("No XApp data received: " + err.Error())
+       }
 }
 
 }
 
-func TestHttpGetXappsWithValidData(t *testing.T) {
-       var expected int = 1
-       ts := createMockAppmgrWithData("127.0.0.1:3000", BASIC_XAPPLIST, nil)
+func TestHttpGetXAppsWithValidData(t *testing.T) {
+       var expected = 1
+       ts := createMockAppmgrWithData("127.0.0.1:3000", BasicXAppLists, nil)
 
        ts.Start()
        defer ts.Close()
 
        ts.Start()
        defer ts.Close()
-       xapplist, err := httpGetXapps(XMURL)
+       xapplist, err := httpGetXApps(XMURL)
        if err != nil {
                t.Error("Error occured: " + err.Error())
        } else {
        if err != nil {
                t.Error("Error occured: " + err.Error())
        } else {
@@ -197,41 +200,41 @@ func TestHttpGetXappsWithValidData(t *testing.T) {
 func TestRetrieveStartupDataTimeout(t *testing.T) {
        sdlEngine, _ := sdl.GetSdl("file")
        createMockPlatformComponents()
 func TestRetrieveStartupDataTimeout(t *testing.T) {
        sdlEngine, _ := sdl.GetSdl("file")
        createMockPlatformComponents()
-       err := retrieveStartupData(XMURL, "httpgetter","rt.json", "config.json", sdlEngine)
+       err := retrieveStartupData(XMURL, "httpgetter", "rt.json", "config.json", sdlEngine)
        if err == nil {
        if err == nil {
-               t.Error("Cannot retrieve startup data: "+err.Error())
+               t.Error("Cannot retrieve startup data: " + err.Error())
        }
        os.Remove("rt.json")
        os.Remove("config.json")
 }
 
 func TestRetrieveStartupData(t *testing.T) {
        }
        os.Remove("rt.json")
        os.Remove("config.json")
 }
 
 func TestRetrieveStartupData(t *testing.T) {
-       ts := createMockAppmgrWithData("127.0.0.1:3000", BASIC_XAPPLIST, SUBSCRIPTION_RESP)
+       ts := createMockAppmgrWithData("127.0.0.1:3000", BasicXAppLists, SubscriptionResp)
        ts.Start()
        defer ts.Close()
        ts.Start()
        defer ts.Close()
-        sdlEngine, _ := sdl.GetSdl("file")
+       sdlEngine, _ := sdl.GetSdl("file")
        var httpRestful, _ = GetNbi("httpRESTful")
        createMockPlatformComponents()
        var httpRestful, _ = GetNbi("httpRESTful")
        createMockPlatformComponents()
-       err := httpRestful.(*HttpRestful).RetrieveStartupData(XMURL, "httpgetter", "rt.json","config.json", sdlEngine)
-        //err := retrieveStartupData(XMURL, "httpgetter", "rt.json", "config.json", sdlEngine)
-        if err != nil {
-                t.Error("Cannot retrieve startup data: "+err.Error())
-        }
+       err := httpRestful.(*HttpRestful).RetrieveStartupData(XMURL, "httpgetter", "rt.json", "config.json", sdlEngine)
+       //err := retrieveStartupData(XMURL, "httpgetter", "rt.json", "config.json", sdlEngine)
+       if err != nil {
+               t.Error("Cannot retrieve startup data: " + err.Error())
+       }
        os.Remove("rt.json")
        os.Remove("config.json")
 }
 
 func TestRetrieveStartupDataWithInvalidSubResp(t *testing.T) {
        os.Remove("rt.json")
        os.Remove("config.json")
 }
 
 func TestRetrieveStartupDataWithInvalidSubResp(t *testing.T) {
-       ts := createMockAppmgrWithData("127.0.0.1:3000", BASIC_XAPPLIST, INVALID_SUB_RESP)
+       ts := createMockAppmgrWithData("127.0.0.1:3000", BasicXAppLists, InvalidSubResp)
        ts.Start()
        defer ts.Close()
        ts.Start()
        defer ts.Close()
-        sdlEngine, _ := sdl.GetSdl("file")
+       sdlEngine, _ := sdl.GetSdl("file")
        var httpRestful, _ = GetNbi("httpRESTful")
        createMockPlatformComponents()
        var httpRestful, _ = GetNbi("httpRESTful")
        createMockPlatformComponents()
-        err := httpRestful.(*HttpRestful).RetrieveStartupData(XMURL, "httpgetter", "rt.json", "config.json", sdlEngine)
-        if err == nil {
-                t.Error("Cannot retrieve startup data: "+err.Error())
-        }
+       err := httpRestful.(*HttpRestful).RetrieveStartupData(XMURL, "httpgetter", "rt.json", "config.json", sdlEngine)
+       if err == nil {
+               t.Error("Cannot retrieve startup data: " + err.Error())
+       }
        os.Remove("rt.json")
        os.Remove("config.json")
 }
        os.Remove("rt.json")
        os.Remove("config.json")
 }