github.com/unirita/cuto@v0.9.8-0.20160830082821-aa6652f877b7/message/jobcheck_test.go (about) 1 package message 2 3 import ( 4 "testing" 5 ) 6 7 func TestJobCheck_ジョブ正常終了確認メッセージをパースできる(t *testing.T) { 8 message := `{ 9 "type":"jobcheck", 10 "version":"1.2.3", 11 "nid":1234, 12 "jid":"job1" 13 }` 14 15 var j JobCheck 16 err := j.ParseJSON(message) 17 if err != nil { 18 t.Fatalf("想定外のエラーが発生しました: %s", err) 19 } 20 if j.Version != "1.2.3" { 21 t.Errorf("取得したversionの値が違います: %s", j.Version) 22 } 23 if j.NID != 1234 { 24 t.Errorf("取得したnidの値が違います: %d", j.NID) 25 } 26 if j.JID != `job1` { 27 t.Errorf("取得したjidの値が違います: %s", j.JID) 28 } 29 } 30 31 func TestJobCheck_JSONとしてパースできない文字列の場合はエラーが発生する(t *testing.T) { 32 message := ` 33 "type":"jobcheck", 34 "version":"1.2.3", 35 "nid":1234, 36 "jid":"job1" 37 }` 38 39 var j JobCheck 40 err := j.ParseJSON(message) 41 if err == nil { 42 t.Error("エラーが発生しなかった。") 43 } 44 } 45 46 func TestJobCheck_typeが間違っている場合はエラーが発生する(t *testing.T) { 47 message := `{ 48 "type":"request", 49 "version":"1.2.3", 50 "nid":1234, 51 "jid":"job1" 52 }` 53 54 var j JobCheck 55 err := j.ParseJSON(message) 56 if err == nil { 57 t.Error("エラーが発生しなかった。") 58 } 59 } 60 61 func TestJobCheck_オブジェクトからJSONメッセージを生成できる(t *testing.T) { 62 MasterVersion = "1.2.3" 63 64 var j JobCheck 65 j.NID = 1234 66 j.JID = `job1` 67 68 msg, err := j.GenerateJSON() 69 if err != nil { 70 t.Fatalf("想定外のエラーが発生しました: %s", err) 71 } 72 73 expect := `{"type":"jobcheck","version":"1.2.3","nid":1234,"jid":"job1"}` 74 if msg != expect { 75 t.Error("生成されたJSONメッセージが想定値と違います") 76 t.Logf("生成値: %s", msg) 77 t.Logf("想定値: %s", expect) 78 } 79 }