github.com/unirita/cuto@v0.9.8-0.20160830082821-aa6652f877b7/servant/main_test.go (about) 1 package main 2 3 import ( 4 "os" 5 "path/filepath" 6 "runtime" 7 "strings" 8 "testing" 9 10 "github.com/unirita/cuto/servant/config" 11 "github.com/unirita/cuto/testutil" 12 ) 13 14 func getTestDataDir() string { 15 return filepath.Join(testutil.GetBaseDir(), "servant", "_testdata") 16 } 17 18 func TestRealMain_バージョン確認ができる(t *testing.T) { 19 c := testutil.NewStdoutCapturer() 20 args := new(arguments) 21 args.v = true 22 23 c.Start() 24 realMain(args) 25 out := c.Stop() 26 27 if !strings.Contains(out, Version) { 28 t.Error("バージョンが出力されていない。") 29 } 30 } 31 32 func TestRealMain_設定ファイルから設定がロードされた上で内容にエラーがあればリターンコードrc_errorを返す(t *testing.T) { 33 var configFile string 34 if runtime.GOOS == "windows" { 35 configFile = "error.ini" 36 } else { 37 configFile = "error_l.ini" 38 } 39 config.FilePath = filepath.Join(getTestDataDir(), configFile) 40 41 args := new(arguments) 42 rc := realMain(args) 43 44 if config.Servant.Sys.BindPort != 65536 { 45 t.Error("取得した設定値が想定と違っている。") 46 } 47 if rc != rc_error { 48 t.Errorf("リターンコード[%d]が想定値と違っている。", rc) 49 } 50 } 51 52 func TestRealMain_ロガー初期化でのエラー発生時にリターンコードrc_errorを返す(t *testing.T) { 53 var configFile string 54 if runtime.GOOS == "windows" { 55 configFile = "logerror.ini" 56 } else { 57 configFile = "logerror_l.ini" 58 } 59 config.FilePath = filepath.Join(getTestDataDir(), configFile) 60 61 args := new(arguments) 62 rc := realMain(args) 63 64 if rc != rc_error { 65 t.Errorf("リターンコード[%d]が想定値と違っている。", rc) 66 } 67 } 68 69 func TestRealMain_Run関数でのエラー発生時にリターンコードrc_errorを返す(t *testing.T) { 70 var configFile string 71 if runtime.GOOS == "windows" { 72 configFile = "binderror.ini" 73 } else { 74 configFile = "binderror_l.ini" 75 } 76 config.FilePath = filepath.Join(getTestDataDir(), configFile) 77 78 args := new(arguments) 79 rc := realMain(args) 80 81 if rc != rc_error { 82 t.Errorf("リターンコード[%d]が想定値と違っている。", rc) 83 } 84 } 85 86 func TestFetchArgs_実行時引数を取得できる(t *testing.T) { 87 os.Args = append(os.Args, "-v") 88 args := fetchArgs() 89 if !args.v { 90 t.Error("バージョン出力オプションが取得できていない。") 91 } 92 }