2021-06-22 01:17:30 +02:00
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"github.com/kardianos/service"
|
|
|
|
"io/ioutil"
|
2021-07-19 15:02:11 +02:00
|
|
|
"os"
|
2021-06-22 01:17:30 +02:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Test_ServiceInstallCMD(t *testing.T) {
|
|
|
|
b := bytes.NewBufferString("")
|
|
|
|
rootCmd.SetOut(b)
|
|
|
|
rootCmd.SetErr(b)
|
2021-06-25 11:08:16 +02:00
|
|
|
rootCmd.SetArgs([]string{
|
|
|
|
"service",
|
|
|
|
"install",
|
|
|
|
"--config",
|
|
|
|
"/tmp/config.json",
|
|
|
|
})
|
2021-06-22 01:17:30 +02:00
|
|
|
err := rootCmd.Execute()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
out, err := ioutil.ReadAll(b)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
expectedMSG := "Wiretrustee service has been installed"
|
|
|
|
if string(out) != expectedMSG {
|
|
|
|
t.Fatalf("expected \"%s\" got \"%s\"", expectedMSG, string(out))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_ServiceStartCMD(t *testing.T) {
|
|
|
|
b := bytes.NewBufferString("")
|
|
|
|
rootCmd.SetOut(b)
|
|
|
|
rootCmd.SetErr(b)
|
|
|
|
rootCmd.SetArgs([]string{"service", "start"})
|
|
|
|
err := rootCmd.Execute()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
out, err := ioutil.ReadAll(b)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
expectedMSG := "Wiretrustee service has been started"
|
|
|
|
if string(out) != expectedMSG {
|
|
|
|
t.Fatalf("expected \"%s\" got \"%s\"", expectedMSG, string(out))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_ServiceRunCMD(t *testing.T) {
|
2021-07-19 15:02:11 +02:00
|
|
|
configFilePath := "/tmp/config.json"
|
|
|
|
if _, err := os.Stat(configFilePath); err == nil {
|
|
|
|
e := os.Remove(configFilePath)
|
|
|
|
if e != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
2021-06-22 01:17:30 +02:00
|
|
|
rootCmd.SetArgs([]string{
|
2021-06-25 10:59:10 +02:00
|
|
|
"init",
|
2021-06-22 01:17:30 +02:00
|
|
|
"--stunURLs",
|
|
|
|
"stun:stun.wiretrustee.com:3468",
|
|
|
|
"--signalAddr",
|
|
|
|
"signal.wiretrustee.com:10000",
|
2021-06-25 10:59:10 +02:00
|
|
|
"--turnURLs",
|
|
|
|
"foo:bar@turn:stun.wiretrustee.com:3468",
|
2021-06-22 01:17:30 +02:00
|
|
|
"--wgInterface",
|
2021-06-25 10:59:10 +02:00
|
|
|
"utun99",
|
2021-06-22 01:17:30 +02:00
|
|
|
"--wgLocalAddr",
|
|
|
|
"10.100.100.1/24",
|
2021-06-25 11:08:16 +02:00
|
|
|
"--config",
|
2021-07-19 15:02:11 +02:00
|
|
|
configFilePath,
|
2021-06-22 01:17:30 +02:00
|
|
|
})
|
|
|
|
err := rootCmd.Execute()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
rootCmd.ResetFlags()
|
|
|
|
rootCmd.SetArgs([]string{"service", "start"})
|
|
|
|
err = rootCmd.Execute()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
s, err := newSVC(&program{}, newSVCConfig())
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
status, err := s.Status()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if status != service.StatusRunning {
|
|
|
|
t.Fatalf("expected running status of \"%d\" got \"%d\"", service.StatusRunning, status)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_ServiceStopCMD(t *testing.T) {
|
|
|
|
b := bytes.NewBufferString("")
|
|
|
|
rootCmd.SetOut(b)
|
|
|
|
rootCmd.SetErr(b)
|
|
|
|
rootCmd.SetArgs([]string{"service", "stop"})
|
|
|
|
err := rootCmd.Execute()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
out, err := ioutil.ReadAll(b)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
expectedMSG := "Wiretrustee service has been stopped"
|
|
|
|
if string(out) != expectedMSG {
|
|
|
|
t.Fatalf("expected \"%s\" got \"%s\"", expectedMSG, string(out))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_ServiceUninstallCMD(t *testing.T) {
|
|
|
|
b := bytes.NewBufferString("")
|
|
|
|
rootCmd.SetOut(b)
|
|
|
|
rootCmd.SetErr(b)
|
|
|
|
rootCmd.SetArgs([]string{"service", "uninstall"})
|
|
|
|
err := rootCmd.Execute()
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
out, err := ioutil.ReadAll(b)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
expectedMSG := "Wiretrustee has been uninstalled"
|
|
|
|
if string(out) != expectedMSG {
|
|
|
|
t.Fatalf("expected \"%s\" got \"%s\"", expectedMSG, string(out))
|
|
|
|
}
|
|
|
|
}
|