|
|
|
@ -16,7 +16,10 @@ |
|
|
|
|
|
|
|
|
|
package whisperv5 |
|
|
|
|
|
|
|
|
|
import "testing" |
|
|
|
|
import ( |
|
|
|
|
"encoding/json" |
|
|
|
|
"testing" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
var topicStringTests = []struct { |
|
|
|
|
topic TopicType |
|
|
|
@ -53,15 +56,6 @@ var bytesToTopicTests = []struct { |
|
|
|
|
{topic: TopicType{0x00, 0x00, 0x00, 0x00}, data: nil}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestBytesToTopic(t *testing.T) { |
|
|
|
|
for i, tst := range bytesToTopicTests { |
|
|
|
|
top := BytesToTopic(tst.data) |
|
|
|
|
if top != tst.topic { |
|
|
|
|
t.Fatalf("failed test %d: have %v, want %v.", i, t, tst.topic) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var unmarshalTestsGood = []struct { |
|
|
|
|
topic TopicType |
|
|
|
|
data []byte |
|
|
|
@ -94,14 +88,23 @@ var unmarshalTestsUgly = []struct { |
|
|
|
|
{topic: TopicType{0x01, 0x00, 0x00, 0x00}, data: []byte(`"0x00000001"`)}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestBytesToTopic(t *testing.T) { |
|
|
|
|
for i, tst := range bytesToTopicTests { |
|
|
|
|
top := BytesToTopic(tst.data) |
|
|
|
|
if top != tst.topic { |
|
|
|
|
t.Fatalf("failed test %d: have %v, want %v.", i, t, tst.topic) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestUnmarshalTestsGood(t *testing.T) { |
|
|
|
|
for i, tst := range unmarshalTestsGood { |
|
|
|
|
var top TopicType |
|
|
|
|
err := top.UnmarshalJSON(tst.data) |
|
|
|
|
err := json.Unmarshal(tst.data, &top) |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("failed test %d. input: %v. err: %v", i, tst.data, err) |
|
|
|
|
t.Errorf("failed test %d. input: %v. err: %v", i, tst.data, err) |
|
|
|
|
} else if top != tst.topic { |
|
|
|
|
t.Fatalf("failed test %d: have %v, want %v.", i, t, tst.topic) |
|
|
|
|
t.Errorf("failed test %d: have %v, want %v.", i, t, tst.topic) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -110,7 +113,7 @@ func TestUnmarshalTestsBad(t *testing.T) { |
|
|
|
|
// in this test UnmarshalJSON() is supposed to fail
|
|
|
|
|
for i, tst := range unmarshalTestsBad { |
|
|
|
|
var top TopicType |
|
|
|
|
err := top.UnmarshalJSON(tst.data) |
|
|
|
|
err := json.Unmarshal(tst.data, &top) |
|
|
|
|
if err == nil { |
|
|
|
|
t.Fatalf("failed test %d. input: %v.", i, tst.data) |
|
|
|
|
} |
|
|
|
@ -121,11 +124,11 @@ func TestUnmarshalTestsUgly(t *testing.T) { |
|
|
|
|
// in this test UnmarshalJSON() is NOT supposed to fail, but result should be wrong
|
|
|
|
|
for i, tst := range unmarshalTestsUgly { |
|
|
|
|
var top TopicType |
|
|
|
|
err := top.UnmarshalJSON(tst.data) |
|
|
|
|
err := json.Unmarshal(tst.data, &top) |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("failed test %d. input: %v.", i, tst.data) |
|
|
|
|
t.Errorf("failed test %d. input: %v.", i, tst.data) |
|
|
|
|
} else if top == tst.topic { |
|
|
|
|
t.Fatalf("failed test %d: have %v, want %v.", i, top, tst.topic) |
|
|
|
|
t.Errorf("failed test %d: have %v, want %v.", i, top, tst.topic) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|