+++ /dev/null
-package servicemgr
-
-import (
- "encoding/json"
- "net/http"
- "net/http/httptest"
- "os/exec"
- "strings"
- "testing"
-)
-
-func AssertEqualStr(t *testing.T, a, b string) {
- t.Helper()
- if strings.Compare(a, b) != 0 {
- t.Errorf("%s != %s", a, b)
- }
-}
-
-func TestSetService(t *testing.T) {
- InitServiceMap()
-
- var cmd *exec.Cmd
- idx, _, _ := CreateServiceMap(cmd, "ls", "TestApps")
-
- var args []string
- args = append(args, "-ail")
- service := Service{idx, "ls", args, ""}
-
- _, pid, _ := service.setService()
-
- cmd, _ = GetCmd(idx)
- if cmd.Process.Pid != pid {
- t.Error()
- }
-
-}
-
-func TestRegisterRemoveService(t *testing.T) {
- InitServiceMap()
-
- var cmd *exec.Cmd
- idx, _, _ := CreateServiceMap(cmd, "ls", "TestApps")
-
- var args []string
- args = append(args, "-ail")
- service := Service{idx, "ls", args, ""}
-
- service.registerService()
- serviceInfo, _ := FindServiceByID(idx)
-
- t.Log(idx)
- if serviceInfo.ServiceID != idx {
- t.Error()
- }
-
- AssertEqualStr(t, serviceInfo.ServiceName, "ls")
- AssertEqualStr(t, serviceInfo.Status, ConstServiceStatusStarted)
-
- service.removeService()
-
- // @TODO FindServiceByID set timeout 30s
- // _, err := FindServiceByID(idx)
- // if err == nil {
- // t.Error()
- // }
-}
-
-func TestWaitService(t *testing.T) {
- InitServiceMap()
-
- var cmd *exec.Cmd
- idx, _, _ := CreateServiceMap(cmd, "ls", "TestApps")
-
- var args []string
- args = append(args, "-ail")
- service := Service{idx, "ls", args, "`"}
-
- service.registerService()
-
- executeCh := make(chan error)
-
- go func() {
- executeCh <- nil
- }()
-
- service.waitService(executeCh)
-
- // @TODO make error
-}
-
-func TestNotifyServiceStatus(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
- decoder := json.NewDecoder(req.Body)
- var statusNotificationRequest map[string]interface{}
-
- decoder.Decode(&statusNotificationRequest)
- t.Log(statusNotificationRequest["Status"].(string))
- AssertEqualStr(t, statusNotificationRequest["Status"].(string), ConstServiceStatusFinished)
-
- rw.Write([]byte(`OK`))
- }))
- defer server.Close()
-
- InitServiceMap()
-
- var cmd *exec.Cmd
- idx, _, _ := CreateServiceMap(cmd, "ls", "TestApps")
-
- var args []string
- args = append(args, "-ail")
- service := Service{idx, "ls", args, server.URL}
-
- service.registerService()
-
- err := service.notifyServiceStatus(ConstServiceStatusFinished)
- if err != nil {
- t.Error()
- }
-}
+++ /dev/null
-package test
-
-import (
- "encoding/json"
- "servicemgr"
- "testing"
-)
-
-func TestServiceCreate(t *testing.T) {
- servicemgr.InitServiceMap()
-
- serviceParam := servicemgr.ServiceParam{AppName: appName, ServiceName: serviceName, Count: 1}
-
- sibytes := servicemgr.Create(serviceParam)
-
- ret := servicemgr.ServiceCreationResponse{}
- json.Unmarshal(sibytes, &ret)
-
- for _, service := range ret.ServiceList {
- idx := service.ID
- name, _ := servicemgr.GetAppName(idx)
- AssertEqualStr(t, name, appName)
-
- name, _ = servicemgr.GetServiceName(idx)
- AssertEqualStr(t, name, serviceName)
- }
-}
+++ /dev/null
-package test
-
-import (
- "log"
- "net"
- "reflect"
- sm "servicemgr"
- "testing"
-)
-
-var data = sm.AppReturnInfo{
- AppName: "GreetWorldApp",
- ServiceList: []sm.ServiceReturnInfo{
- {
- ServiceID: 1,
- ServiceName: "hello world#1",
- Status: "started",
- DeviceIP: GetOutboundIP().String(),
- },
- {
- ServiceID: 2,
- ServiceName: "hello world#2",
- Status: "progressing",
- DeviceIP: GetOutboundIP().String(),
- },
- },
-}
-
-func GetOutboundIP() net.IP {
- conn, err := net.Dial("udp", "8.8.8.8:80")
- if err != nil {
- log.Fatal(err)
- }
- defer conn.Close()
-
- localAddr := conn.LocalAddr().(*net.UDPAddr)
-
- return localAddr.IP
-}
-
-func TestServiceRegisterRemove(t *testing.T) {
- ret := make(chan error)
-
- go sm.RegisterService(data.AppName, data.ServiceList[0].ServiceID,
- data.ServiceList[0].ServiceName, data.ServiceList[0].Status, ret)
-
- if err := <-ret; err != nil {
- t.Error(err)
- }
-
- err := sm.RemoveService(data.ServiceList[0].ServiceID)
-
- if err != nil {
- t.Error(err)
- }
-}
-
-func TestServiceList(t *testing.T) {
- ret := make(chan error)
-
- for _, service := range data.ServiceList {
- go sm.RegisterService(data.AppName, service.ServiceID,
- service.ServiceName, service.Status, ret)
-
- if err := <-ret; err != nil {
- t.Error(err)
- }
- }
-
- cmp, err := sm.ServiceList()
-
- t.Log(cmp[0])
- if len(cmp[0].ServiceList) != 2 {
- t.Error("fail")
- }
-
- for _, service := range data.ServiceList {
- err = sm.RemoveService(service.ServiceID)
-
- if err != nil {
- t.Error(err)
- }
- }
-}
-
-func TestFindServiceByName(t *testing.T) {
- ret := make(chan error)
-
- for _, service := range data.ServiceList {
- go sm.RegisterService(data.AppName, service.ServiceID,
- service.ServiceName, service.Status, ret)
-
- if err := <-ret; err != nil {
- t.Error(err)
- }
- }
-
- cmp, err := sm.FindServiceByName(data.AppName)
-
- t.Log(cmp)
- if len(cmp.ServiceList) != 2 {
- t.Error("fail")
- }
-
- for _, service := range data.ServiceList {
- err = sm.RemoveService(service.ServiceID)
-
- if err != nil {
- t.Error(err)
- }
- }
-}
-
-func TestFindServiceByID(t *testing.T) {
- ret := make(chan error)
-
- for _, service := range data.ServiceList {
- go sm.RegisterService(data.AppName, service.ServiceID,
- service.ServiceName, service.Status, ret)
-
- if err := <-ret; err != nil {
- t.Error(err)
- }
- }
-
- cmp, err := sm.FindServiceByID(data.ServiceList[0].ServiceID)
-
- t.Log(cmp)
- if !reflect.DeepEqual(cmp, data.ServiceList[0]) {
- t.Error("[Fail] FindServiceByID is failed")
- }
-
- for _, service := range data.ServiceList {
- err = sm.RemoveService(service.ServiceID)
-
- if err != nil {
- t.Error(err)
- }
- }
-}
-
-func TestChangeServiceStatus(t *testing.T) {
- ret := make(chan error)
-
- go sm.RegisterService(data.AppName, data.ServiceList[0].ServiceID,
- data.ServiceList[0].ServiceName, data.ServiceList[0].Status, ret)
-
- if err := <-ret; err != nil {
- t.Error(err)
- }
-
- cmp, err := sm.FindServiceByID(data.ServiceList[0].ServiceID)
- t.Log(cmp)
- if !reflect.DeepEqual(cmp, data.ServiceList[0]) {
- t.Error("[Fail] FindServiceByID is failed")
- }
-
- err = sm.ChangeServiceStatus(cmp.ServiceID, "progressing")
- if err != nil {
- t.Error(err)
- }
-
- cmp, err = sm.FindServiceByID(data.ServiceList[0].ServiceID)
- t.Log(cmp)
- if !reflect.DeepEqual(cmp.Status, "progressing") {
- t.Error("[Fail] Status is not equal")
- }
-
- err = sm.RemoveService(data.ServiceList[0].ServiceID)
-
- if err != nil {
- t.Error(err)
- }
-}
+++ /dev/null
-package test
-
-import (
- "os/exec"
- "servicemgr"
- "strings"
- "testing"
-)
-
-const (
- serviceName = "Service1"
- appName = "App1"
-)
-
-func AssertEqualStr(t *testing.T, a, b string) {
- t.Helper()
- if strings.Compare(a, b) != 0 {
- t.Errorf("%s != %s", a, b)
- }
-}
-
-func TestCreateServiceID(t *testing.T) {
- servicemgr.InitServiceMap()
-
- var cmd *exec.Cmd
- var idx uint64
- idx, _, _ = servicemgr.CreateServiceMap(cmd, serviceName, appName)
-
- if idx == 0 {
- t.Fail()
- }
-}
-
-func TestReadAppName(t *testing.T) {
- servicemgr.InitServiceMap()
-
- var cmd *exec.Cmd
- idx, _, _ := servicemgr.CreateServiceMap(cmd, serviceName, appName)
-
- name, _ := servicemgr.GetAppName(idx)
- AssertEqualStr(t, name, appName)
-}
-
-func TestReadServiceName(t *testing.T) {
- servicemgr.InitServiceMap()
-
- var cmd *exec.Cmd
- idx, _, _ := servicemgr.CreateServiceMap(cmd, serviceName1, appName)
- t.Log(idx)
- name, _ := servicemgr.GetServiceName(idx)
- AssertEqualStr(t, serviceName1, serviceName1)
-
- idx, _, _ = servicemgr.CreateServiceMap(cmd, serviceName2, appName)
- t.Log(idx)
- name, _ = servicemgr.GetServiceName(idx)
- AssertEqualStr(t, name, serviceName2)
-}
-
-func TestRemoveServiceID(t *testing.T) {
- servicemgr.InitServiceMap()
-
- var cmd *exec.Cmd
- idx, _, _ := servicemgr.CreateServiceMap(cmd, serviceName, appName)
- servicemgr.DeleteServiceMap(idx)
-
- _, err := servicemgr.GetServiceName(idx)
- if err == nil {
- t.Fail()
- }
-}