"bytes"
"strings"
"testing"
+
+ "github.com/stretchr/testify/assert"
)
func TestBinaryReadSliceOfPointers(t *testing.T) {
}
func TestConstants(t *testing.T) {
- // check that iota works as expected in the const block
- if NotInterested != 3 {
- t.FailNow()
- }
+ assert.EqualValues(t, 3, NotInterested)
+ assert.EqualValues(t, 14, HaveAll)
}
func TestBitfieldEncode(t *testing.T) {
}
msg := new(Message)
err := dec.Decode(msg)
- if !strings.Contains(err.Error(), "1 bytes unused in message type 0") {
+ if !strings.Contains(err.Error(), "1 unused bytes in message type Choke") {
t.Fatal(err)
}
}
t.Fatalf("marshalled keepalive is %q, expected %q", bs, expected)
}
}
+
+func TestMarshalPortMsg(t *testing.T) {
+ b, err := (Message{
+ Type: Port,
+ Port: 0xaabb,
+ }).MarshalBinary()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if string(b) != "\x00\x00\x00\x03\x09\xaa\xbb" {
+ t.FailNow()
+ }
+}
+
+func TestUnmarshalPortMsg(t *testing.T) {
+ var m Message
+ d := Decoder{
+ R: bufio.NewReader(bytes.NewBufferString("\x00\x00\x00\x03\x09\xaa\xbb")),
+ MaxLength: 8,
+ }
+ err := d.Decode(&m)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if m.Type != Port {
+ t.FailNow()
+ }
+ if m.Port != 0xaabb {
+ t.FailNow()
+ }
+}