}
//InitDiscovery deploy Orchestration service
-func InitDiscovery() {
+func InitDiscovery() error {
registerCh := make(chan error)
//@ToDo []sting Will be retrieved from configuremgr
//setServiceNames(ServiceNames)
ServiceNames := []string{"Distributed Web Engine", "Television", "Soundbox"}
go registerDevice(ServiceNames, registerCh)
- if err := <-registerCh; err != nil {
+ err := <-registerCh
+ if err != nil {
log.Println("[Fail] " + err.Error())
}
+ return err
}
--- /dev/null
+package test
+
+import (
+ "discoverymgr"
+ "net"
+ "os"
+ "testing"
+)
+
+//@Todo os dependency check
+func getIP() string {
+ addrs, err := net.InterfaceAddrs()
+ if err != nil {
+ os.Stderr.WriteString("Oops: " + err.Error() + "\n")
+ os.Exit(1)
+ }
+ var ipv4 string
+ for _, a := range addrs {
+ if ipnet, ok := a.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
+ if ipnet.IP.To4() != nil {
+ if ipnet.IP.String()[:2] == "10" {
+ os.Stdout.WriteString(ipnet.IP.String() + "\n")
+ ipv4 = ipnet.IP.String()
+ break
+ }
+
+ }
+ }
+ }
+ return ipv4
+}
+func TestSetServiceNames(t *testing.T) {
+ err := discoverymgr.InitDiscovery()
+ if err != nil {
+ t.Fail()
+ }
+ ServiceNames := []string{"Test1", "Test2"}
+ err = discoverymgr.SetServiceNames(ServiceNames)
+ if err != nil {
+ t.Fail()
+ }
+
+ ret, err := discoverymgr.DeviceList()
+ if err != nil {
+ t.Fail()
+ }
+
+ ipv4 := getIP()
+ isExist := -1
+ for i, v := range ret {
+ if v.DeviceIP == ipv4 {
+ isExist = i
+ }
+ }
+
+ if isExist == -1 {
+ t.Fail()
+ }
+
+ if ret[isExist].ServiceNames[0] != ServiceNames[0] ||
+ ret[isExist].ServiceNames[1] != ServiceNames[1] {
+ t.Fail()
+ }
+}
+func TestInitDiscovery(t *testing.T) {
+ err := discoverymgr.InitDiscovery()
+ if err != nil {
+ t.Fail()
+ }
+
+ ret, err := discoverymgr.DeviceList()
+ if err != nil {
+ t.Fail()
+ }
+
+ ipv4 := getIP()
+ isExist := -1
+ for i, v := range ret {
+ if v.DeviceIP == ipv4 {
+ isExist = i
+ }
+ }
+
+ if isExist == -1 {
+ t.Error("no device")
+ t.Fail()
+ }
+}