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  }