Beispiel #1
0
func TestDo_コネクションオブジェクトへのWriteに失敗したらエラー(t *testing.T) {
	reqMsg := `{
	"type":"request",
	"varsion":"1.2.3",
	"nid":1234,
	"jid":"001",
	"path":"C:\\work\\test.bat",
	"param":"test",
	"env":"testenv=val",
	"workspace": "C:\\work",
	"warnrc":4,
	"warnstr":"warn",
	"errrc":12,
	"errstr":"error"
}`

	conf := readTestConfig()

	conn := testutil.NewConnStub()
	conn.WriteErr = errors.New("testerror")
	session := Session{Conn: conn, Body: reqMsg, doJobRequest: doTestRequest}
	session.startHeartbeat()
	err := session.Do(conf)
	if err == nil {
		t.Error("エラーが発生していない。")
	}

	if conn.WriteStr != "" {
		t.Errorf("想定外のメッセージが書き込まれた: %s", conn.WriteStr)
	}
}
Beispiel #2
0
func TestReceiveMessage_セッションキューにセッションを追加できる(t *testing.T) {
	reqMsg := `{"type":"request","id":1234,"path":"C:\\work\\test.bat","param":"test","workspace": "C:\\work"}`
	conn := testutil.NewConnStub()
	conn.ReadStr = reqMsg + "\n"
	sq := make(chan *Session, 1)
	err := receiveMessage(conn, sq)
	close(sq)

	if err != nil {
		t.Fatalf("想定外のエラーが発生した: %s", err)
	}

	session := <-sq
	if session == nil {
		t.Error("セッションがキューに挿入されていない。")
	}

	if session.Conn == nil {
		t.Error("セッションにコネクションオブジェクトがセットされていない。")
	}

	if session.Body != reqMsg {
		t.Error("セッションにセットされたメッセージが間違っている。")
		t.Logf("想定値: %s", reqMsg)
		t.Logf("実績値: %s", session.Body)
	}
}
Beispiel #3
0
func TestDo_パースできないリクエストメッセージが来たらエラー(t *testing.T) {
	reqMsg := `notjson`

	conf := readTestConfig()

	conn := testutil.NewConnStub()
	session := Session{Conn: conn, Body: reqMsg, doJobRequest: doTestRequest}
	session.startHeartbeat()
	err := session.Do(conf)
	if err == nil {
		t.Error("エラーが発生していない。")
	}

	if conn.WriteStr != "" {
		t.Errorf("想定外のメッセージが書き込まれた: %s", conn.WriteStr)
	}
}