2020-01-26 00:39:13 -05:00
|
|
|
package d2common
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestStreamReaderByte(t *testing.T) {
|
|
|
|
data := []byte{0x78, 0x56, 0x34, 0x12}
|
|
|
|
sr := CreateStreamReader(data)
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if sr.GetPosition() != 0 {
|
|
|
|
t.Fatal("StreamReader.GetPosition() did not start at 0")
|
|
|
|
}
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if ss := sr.GetSize(); ss != 4 {
|
|
|
|
t.Fatalf("StreamREader.GetSize() was expected to return %d, but returned %d instead", 4, ss)
|
|
|
|
}
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
for i := 0; i < len(data); i++ {
|
|
|
|
ret := sr.GetByte()
|
|
|
|
if ret != data[i] {
|
|
|
|
t.Fatalf("StreamReader.GetDword() was expected to return %X, but returned %X instead", data[i], ret)
|
|
|
|
}
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if pos := sr.GetPosition(); pos != uint64(i+1) {
|
|
|
|
t.Fatalf("StreamReader.GetPosition() should be at %d, but was at %d instead", i, pos)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestStreamReaderWord(t *testing.T) {
|
|
|
|
data := []byte{0x78, 0x56, 0x34, 0x12}
|
|
|
|
sr := CreateStreamReader(data)
|
|
|
|
ret := sr.GetUInt16()
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if ret != 0x5678 {
|
|
|
|
t.Fatalf("StreamReader.GetDword() was expected to return %X, but returned %X instead", 0x5678, ret)
|
|
|
|
}
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if pos := sr.GetPosition(); pos != 2 {
|
|
|
|
t.Fatalf("StreamReader.GetPosition() should be at %d, but was at %d instead", 2, pos)
|
|
|
|
}
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
ret = sr.GetUInt16()
|
|
|
|
if ret != 0x1234 {
|
|
|
|
t.Fatalf("StreamReader.GetDword() was expected to return %X, but returned %X instead", 0x1234, ret)
|
|
|
|
}
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if pos := sr.GetPosition(); pos != 4 {
|
|
|
|
t.Fatalf("StreamReader.GetPosition() should be at %d, but was at %d instead", 4, pos)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestStreamReaderDword(t *testing.T) {
|
|
|
|
data := []byte{0x78, 0x56, 0x34, 0x12}
|
|
|
|
sr := CreateStreamReader(data)
|
|
|
|
ret := sr.GetUInt32()
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if ret != 0x12345678 {
|
|
|
|
t.Fatalf("StreamReader.GetDword() was expected to return %X, but returned %X instead", 0x12345678, ret)
|
|
|
|
}
|
2020-07-08 09:16:56 -04:00
|
|
|
|
2020-01-26 00:39:13 -05:00
|
|
|
if pos := sr.GetPosition(); pos != 4 {
|
|
|
|
t.Fatalf("StreamReader.GetPosition() should be at %d, but was at %d instead", 4, pos)
|
|
|
|
}
|
|
|
|
}
|