package msg_net import ( "testing" ) type tester struct { t *testing.T msg *MsgFindRequest } func TestMsgNet(t *testing.T) { sf := &tester{ t: t, } sf.create() } // Создание сообщения поиска func (sf *tester) create() { sf.t.Log("create") sf.createBad1() sf.createGood1() } func (sf *tester) createGood1() { sf.t.Log("createGood1") msg, err := NewFindRequest("key") if err != nil { sf.t.Fatalf("createGood1(): err=\n\t%v", err) } if msg == nil { sf.t.Fatalf("createGood1(): msg==nil") } sf.msg = msg.(*MsgFindRequest) if val := sf.msg.Values(); len(val) != 0 { sf.t.Fatalf("createGood1(): len(val)=%d", len(val)) } if key := sf.msg.Key(); key != "key" { sf.t.Fatalf("createGood1(): key=%q", key) } binData := sf.msg.Marshal() msg, err = UnmarshalFindRequest("key", binData) if err != nil { sf.t.Fatalf("createGood1(): err=\n\t%v", err) } if msg == nil { sf.t.Fatalf("createGood1(): msg==nil") } if key := msg.Key(); key != "key" { sf.t.Fatalf("createGood1(): key=%q", key) } _msg, err := UnmarshalFindRequest("key", []byte{}) if err == nil { sf.t.Fatalf("createGood1(): err==nil") } if _msg != nil { sf.t.Fatalf("createGood1(): _msg!=nil") } _msg1, err := UnmarshalFindRequest("key", []byte(`{"key":"key_bad"}`)) if err == nil { sf.t.Fatalf("createGood1(): err==nil") } if _msg1 != nil { sf.t.Fatalf("createGood1(): _msg1!=nil") } } // Нет ключа хранилища func (sf *tester) createBad1() { sf.t.Log("createBad1") msg, err := NewFindRequest("") if err == nil { sf.t.Fatalf("createBad1(): err==nil") } if msg != nil { sf.t.Fatalf("createBad1(): msg!=nil") } }