add ut for addService of msb 65/34165/1
authorLvbo163 <lv.bo163@zte.com.cn>
Tue, 6 Mar 2018 01:17:03 +0000 (09:17 +0800)
committerLvbo163 <lv.bo163@zte.com.cn>
Tue, 6 Mar 2018 01:17:03 +0000 (09:17 +0800)
Issue-ID: MSB-173

Change-Id: Ia0b557ec4cb367e8ae111b3c2488e7fa10eeadda
Signed-off-by: Lvbo163 <lv.bo163@zte.com.cn>
src/kube2msb/msb_work_test.go

index e271d22..9f5a823 100644 (file)
@@ -16,9 +16,62 @@ limitations under the License.
 package main
 
 import (
+       "encoding/json"
+       "fmt"
+       "io/ioutil"
+       "net/http"
+       "net/http/httptest"
        "testing"
 )
 
+func TestAddServiceMsb(t *testing.T) {
+       handler := func(res http.ResponseWriter, req *http.Request) {
+               if req.Method != "POST" {
+                       t.Errorf("Register() request method should be 'Post' not %s", req.Method)
+               } else if urlPrefix != req.URL.String() {
+                       t.Errorf("Register() url should be %s, not %s", urlPrefix, req.URL)
+               } else {
+                       body, err := ioutil.ReadAll(req.Body)
+                       if err != nil {
+                               t.Errorf("Register() fail to read request body")
+                       }
+                       var su = ServiceUnit{}
+                       parseError := json.Unmarshal([]byte(body), &su)
+                       if parseError != nil {
+                               t.Errorf("Register() request body can not parse to ServiceUnit, %s", body)
+                               return
+                       } else {
+                               res.WriteHeader(200)
+                               res.Header().Set("Content-Type", "application/xml")
+                               fmt.Fprintln(res, "regist success")
+                       }
+               }
+
+       }
+       server := httptest.NewServer(http.HandlerFunc(handler))
+       defer server.Close()
+
+       client := MSBAgentWorker{
+               agent: &MSBAgent{
+                       url: server.URL,
+               },
+       }
+
+       serviceInfo := `[{
+               "port":"8080",
+               "serviceName":"resgisterTest",
+               "version":"v1",
+               "url":"/register/test",
+               "protocol":"http",
+               "lb_policy":"random",
+               "visualRange":"1",
+               "path":"rt",
+               "enable_ssl":true
+       }]`
+
+       client.AddService("192.168.1.10", serviceInfo)
+}
+
 func TestMergeIP(t *testing.T) {
        cases := []struct{ ip, sInfo, want string }{
                {"127.0.0.1", "{}", "{\"ip\":\"127.0.0.1\",}"},