func TestRealMain_RuntimeErrorY(t *testing.T) { arg := &arguments{ jobnet: "", from: "20150414", to: "20150416", status: "", format: "", config: fmt.Sprintf("%v%c%v", confPath, os.PathSeparator, "show_testY.ini"), } ce := testutil.NewStderrCapturer() ce.Start() co := testutil.NewStdoutCapturer() co.Start() ret := realMain(arg) if ret != rc_ERROR { t.Errorf("戻り値[%v]が返るべきところ、[%v]が返りました。", rc_ERROR, ret) } cout := co.Stop() cerr := ce.Stop() if len(cout) > 0 { t.Errorf("不正な標準出力です。 - %v", cout) } if !strings.Contains(cerr, "AN INTERNAL ERROR OCCURRED.") { t.Errorf("不正な標準エラー出力です。 - %v", cerr) } }
func TestRealMain_バージョン情報を表示(t *testing.T) { arg := &arguments{ v: true, jobnet: "", from: "20150416", to: "20150416", status: "", format: "", config: confFile, } ce := testutil.NewStderrCapturer() ce.Start() co := testutil.NewStdoutCapturer() co.Start() ret := realMain(arg) if ret != rc_OK { t.Errorf("戻り値[%v]が返るべきところ、[%v]が返りました。", rc_OK, ret) } cout := co.Stop() cerr := ce.Stop() if len(cout) > 0 { t.Errorf("不正な標準出力が出力されています。 - %v", cout) } if !strings.Contains(cerr, Version) { t.Errorf("stderrへの出力値[%s]が想定と違います。", cerr) } }
func TestRealMain_不正なFormat(t *testing.T) { arg := &arguments{ jobnet: "", from: "20150416", to: "20150416", status: "", format: "abc", config: confFile, } ce := testutil.NewStderrCapturer() ce.Start() co := testutil.NewStdoutCapturer() co.Start() ret := realMain(arg) if ret != rc_PARMERR { t.Errorf("戻り値[%v]が返るべきところ、[%v]が返りました。", rc_PARMERR, ret) } cout := co.Stop() cerr := ce.Stop() if len(cout) > 0 { t.Errorf("不正な標準出力です。 - %v", cout) } if !strings.Contains(cerr, console.USAGE_SHOW) { t.Errorf("不正な標準エラー出力です。 - %v", cerr) } }
func TestRealMain_ヘルプを表示(t *testing.T) { arg := &arguments{ help: true, jobnet: "", from: "20150416", to: "20150416", status: "", format: "", config: confFile, } ce := testutil.NewStderrCapturer() ce.Start() co := testutil.NewStdoutCapturer() co.Start() ret := realMain(arg) if ret != rc_OK { t.Errorf("戻り値[%v]が返るべきところ、[%v]が返りました。", rc_OK, ret) } cout := co.Stop() cerr := ce.Stop() if len(cout) > 0 { t.Errorf("不正な標準出力が出力されています。 - %v", cout) } if cerr != console.USAGE_SHOW { t.Errorf("stderrへの出力値[%s]が想定と違います。", cerr) } }
func TestRealMain_0件のジョブネットを表示(t *testing.T) { arg := &arguments{ jobnet: "JNET", from: "", to: "", status: "normal", format: "csv", config: confFile, } ce := testutil.NewStderrCapturer() ce.Start() co := testutil.NewStdoutCapturer() co.Start() ret := realMain(arg) if ret != rc_NOTHING { t.Errorf("戻り値[%v]が返るはずが、[%v]が返りました。", rc_NOTHING, ret) } cout := co.Stop() cerr := ce.Stop() if len(cerr) > 0 { t.Errorf("エラーが出力されています。 - %v", cerr) } if len(cout) > 0 { t.Errorf("出力されないはずが、何か出力されました。 - %v", cout) } }
func TestRealMain_バージョン確認ができる(t *testing.T) { c := testutil.NewStdoutCapturer() args := new(arguments) args.v = true c.Start() realMain(args) out := c.Stop() if !strings.Contains(out, Version) { t.Error("バージョンが出力されていない。") } }
func TestInfo_infoレベルのメッセージを出力できる(t *testing.T) { c := testutil.NewStdoutCapturer() initForTest() defer Term() c.Start() Info("testmessage") output := c.Stop() if output != "2015-04-01 12:34:56.789 [INF] testmessage\n" { t.Errorf("出力されたメッセージ[%s]が想定と異なる。", output) } }
func TestRealMain_ログディレクトリが存在しない場合(t *testing.T) { c := testutil.NewStdoutCapturer() args := new(arguments) args.networkName = "test" args.configPath = "logerror.ini" c.Start() rc := realMain(args) out := c.Stop() if rc != rc_ERROR { t.Errorf("想定外のrc[%d]が返された。", rc) } if !strings.Contains(out, "COULD NOT INITIALIZE LOGGER.") { t.Error("出力内容が想定と違っている。") t.Logf("出力: %s", out) } }
func TestRealMain_1日分のジョブネットを表示(t *testing.T) { vefiry_file := "showtest_verify1.txt" arg := &arguments{ jobnet: "", from: "20150415", to: "20150415", status: "", format: "", config: confFile, isUTC: true, } ce := testutil.NewStderrCapturer() ce.Start() co := testutil.NewStdoutCapturer() co.Start() ret := realMain(arg) if ret != rc_OK { t.Errorf("戻り値[%v]が返るはずが、[%v]が返りました。", rc_OK, ret) } cout := co.Stop() cerr := ce.Stop() if len(cerr) > 0 { t.Errorf("エラーが出力されています。 - %v", cerr) } if _, exist := os.Stat(output_file); exist != nil { os.Remove(output_file) } file, _ := os.OpenFile(output_file, os.O_CREATE|os.O_WRONLY, 0666) file.WriteString(cout) file.Close() err := vefiry_stdout(output_file, vefiry_file) if err != nil { t.Errorf("不正な出力結果です。 - %v", err) } }