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) } }
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) } }
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) } }