mirror of
https://github.com/postmannen/ctrl.git
synced 2024-12-14 12:37:31 +00:00
testing file content
This commit is contained in:
parent
dbe87bcca5
commit
3d005b7a09
1 changed files with 46 additions and 15 deletions
|
@ -3,6 +3,7 @@ package steward
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
@ -57,8 +58,9 @@ func newNatsServerForTesting(t *testing.T, port int) *natsserver.Server {
|
||||||
|
|
||||||
func TestRequest(t *testing.T) {
|
func TestRequest(t *testing.T) {
|
||||||
type containsOrEquals int
|
type containsOrEquals int
|
||||||
const contains containsOrEquals = 1
|
const REQTestContains containsOrEquals = 1
|
||||||
const equals containsOrEquals = 2
|
const REQTestEquals containsOrEquals = 2
|
||||||
|
const fileContains containsOrEquals = 3
|
||||||
|
|
||||||
type test struct {
|
type test struct {
|
||||||
info string
|
info string
|
||||||
|
@ -73,7 +75,7 @@ func TestRequest(t *testing.T) {
|
||||||
}
|
}
|
||||||
defer ns.Shutdown()
|
defer ns.Shutdown()
|
||||||
|
|
||||||
srv, _ := newServerForTesting(t, "127.0.0.1:42222")
|
srv, conf := newServerForTesting(t, "127.0.0.1:42222")
|
||||||
srv.Start()
|
srv.Start()
|
||||||
defer srv.Stop()
|
defer srv.Stop()
|
||||||
|
|
||||||
|
@ -100,7 +102,7 @@ func TestRequest(t *testing.T) {
|
||||||
MethodTimeout: 5,
|
MethodTimeout: 5,
|
||||||
ReplyMethod: REQTest,
|
ReplyMethod: REQTest,
|
||||||
}, want: []byte("gris"),
|
}, want: []byte("gris"),
|
||||||
containsOrEquals: equals,
|
containsOrEquals: REQTestEquals,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
info: "REQCliCommand test sau",
|
info: "REQCliCommand test sau",
|
||||||
|
@ -112,7 +114,21 @@ func TestRequest(t *testing.T) {
|
||||||
MethodTimeout: 5,
|
MethodTimeout: 5,
|
||||||
ReplyMethod: REQTest,
|
ReplyMethod: REQTest,
|
||||||
}, want: []byte("sau"),
|
}, want: []byte("sau"),
|
||||||
containsOrEquals: equals,
|
containsOrEquals: REQTestEquals,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
info: "REQCliCommand test result in file",
|
||||||
|
message: Message{
|
||||||
|
ToNode: "central",
|
||||||
|
FromNode: "central",
|
||||||
|
Method: REQCliCommand,
|
||||||
|
MethodArgs: []string{"bash", "-c", "echo sau"},
|
||||||
|
MethodTimeout: 5,
|
||||||
|
ReplyMethod: REQToFile,
|
||||||
|
Directory: "test",
|
||||||
|
FileName: "clicommand.result",
|
||||||
|
}, want: []byte("sau"),
|
||||||
|
containsOrEquals: fileContains,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
info: "REQHttpGet test edgeos.raalabs.tech",
|
info: "REQHttpGet test edgeos.raalabs.tech",
|
||||||
|
@ -124,7 +140,7 @@ func TestRequest(t *testing.T) {
|
||||||
MethodTimeout: 5,
|
MethodTimeout: 5,
|
||||||
ReplyMethod: REQTest,
|
ReplyMethod: REQTest,
|
||||||
}, want: []byte("web page content"),
|
}, want: []byte("web page content"),
|
||||||
containsOrEquals: contains,
|
containsOrEquals: REQTestContains,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
info: "REQOpProcessList test",
|
info: "REQOpProcessList test",
|
||||||
|
@ -136,7 +152,7 @@ func TestRequest(t *testing.T) {
|
||||||
MethodTimeout: 5,
|
MethodTimeout: 5,
|
||||||
ReplyMethod: REQTest,
|
ReplyMethod: REQTest,
|
||||||
}, want: []byte("central.REQHttpGet.EventACK"),
|
}, want: []byte("central.REQHttpGet.EventACK"),
|
||||||
containsOrEquals: contains,
|
containsOrEquals: REQTestContains,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,25 +164,40 @@ func TestRequest(t *testing.T) {
|
||||||
|
|
||||||
srv.toRingBufferCh <- []subjectAndMessage{sam}
|
srv.toRingBufferCh <- []subjectAndMessage{sam}
|
||||||
|
|
||||||
result := <-srv.errorKernel.testCh
|
switch tt.containsOrEquals {
|
||||||
|
|
||||||
|
case REQTestEquals:
|
||||||
|
result := <-srv.errorKernel.testCh
|
||||||
resStr := string(result)
|
resStr := string(result)
|
||||||
resStr = strings.TrimSuffix(resStr, "\n")
|
resStr = strings.TrimSuffix(resStr, "\n")
|
||||||
result = []byte(resStr)
|
result = []byte(resStr)
|
||||||
|
|
||||||
switch tt.containsOrEquals {
|
|
||||||
|
|
||||||
case equals:
|
|
||||||
if !bytes.Equal(result, tt.want) {
|
if !bytes.Equal(result, tt.want) {
|
||||||
t.Fatalf(" \U0001F631 [FAILED] :%v : want: %v, got: %v\n", tt.info, string(tt.want), string(result))
|
t.Fatalf(" \U0001F631 [FAILED] :%v : want: %v, got: %v\n", tt.info, string(tt.want), string(result))
|
||||||
}
|
}
|
||||||
t.Logf(" \U0001f600 [SUCCESS] : %v\n", tt.info)
|
t.Logf(" \U0001f600 [SUCCESS] : %v\n", tt.info)
|
||||||
|
|
||||||
case contains:
|
case REQTestContains:
|
||||||
|
result := <-srv.errorKernel.testCh
|
||||||
|
resStr := string(result)
|
||||||
|
resStr = strings.TrimSuffix(resStr, "\n")
|
||||||
|
result = []byte(resStr)
|
||||||
|
|
||||||
if !strings.Contains(string(result), string(tt.want)) {
|
if !strings.Contains(string(result), string(tt.want)) {
|
||||||
t.Fatalf(" \U0001F631 [FAILED] :%v : want: %v, got: %v\n", tt.info, string(tt.want), string(result))
|
t.Fatalf(" \U0001F631 [FAILED] :%v : want: %v, got: %v\n", tt.info, string(tt.want), string(result))
|
||||||
}
|
}
|
||||||
t.Logf(" \U0001f600 [SUCCESS] : %v\n", tt.info)
|
t.Logf(" \U0001f600 [SUCCESS] : %v\n", tt.info)
|
||||||
|
|
||||||
|
case fileContains:
|
||||||
|
resultFile := filepath.Join(conf.SubscribersDataFolder, tt.message.Directory, string(tt.message.FromNode), tt.message.FileName)
|
||||||
|
|
||||||
|
_, err := findStringInFileTest(string(tt.want), resultFile, conf, t)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf(" \U0001F631 [FAILED] : %v: %v\n", tt.info, err)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Logf(" \U0001f600 [SUCCESS] : %v\n", tt.info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue