mapserver/server/mapblockparser/parse_test.go
NatureFreshMilk e544e20672 fix tests
2019-02-01 14:14:21 +01:00

123 lines
2.0 KiB
Go

package mapblockparser
import (
"encoding/json"
"fmt"
"io/ioutil"
"mapserver/coords"
"strconv"
"testing"
)
func TestReadU16(t *testing.T) {
v := readU16([]byte{0x00, 0x00}, 0)
if v != 0 {
t.Error(v)
}
v = readU16([]byte{0x00, 0x01}, 0)
if v != 1 {
t.Error(v)
}
v = readU16([]byte{0x01, 0x00}, 0)
if v != 256 {
t.Error(v)
}
}
func TestReadU32(t *testing.T) {
v := readU32([]byte{0x00, 0x00, 0x00, 0x00}, 0)
if v != 0 {
t.Error(v)
}
}
func TestParse(t *testing.T) {
data, err := ioutil.ReadFile("testdata/0.0.0")
if err != nil {
t.Error(err)
}
mapblock, err := Parse(data, 0, coords.NewMapBlockCoords(0, 0, 0))
if err != nil {
t.Error(err)
}
if mapblock.Version != 28 {
t.Error("wrong mapblock version: " + strconv.Itoa(int(mapblock.Version)))
}
if !mapblock.Underground {
t.Error("Underground flag")
}
if len(mapblock.Mapdata.ContentId) != 4096 {
t.Error("Mapdata length wrong")
}
if len(mapblock.Mapdata.Param2) != 4096 {
t.Error("Mapdata length wrong")
}
if len(mapblock.Mapdata.Param1) != 4096 {
t.Error("Mapdata length wrong")
}
pairs := mapblock.Metadata.GetPairsMap(0)
if pairs["owner"] != "pipo" {
t.Error(pairs["owner"])
}
}
func TestParse2(t *testing.T) {
data, err := ioutil.ReadFile("testdata/11.0.2")
if err != nil {
t.Error(err)
}
mapblock, err := Parse(data, 0, coords.NewMapBlockCoords(0, 0, 0))
if err != nil {
t.Error(err)
}
for k, v := range mapblock.BlockMapping {
fmt.Println("Key", k, "Value", v)
}
}
func TestParse3(t *testing.T) {
data, err := ioutil.ReadFile("testdata/0.1.0")
if err != nil {
t.Error(err)
}
_, err = Parse(data, 0, coords.NewMapBlockCoords(0, 0, 0))
if err != nil {
t.Error(err)
}
}
func TestParseMetadata(t *testing.T) {
data, err := ioutil.ReadFile("testdata/mb-with-metadata.bin")
if err != nil {
t.Error(err)
}
mb, err := Parse(data, 0, coords.NewMapBlockCoords(0, 0, 0))
if err != nil {
t.Error(err)
}
str, err := json.MarshalIndent(mb, "", " ")
fmt.Println(string(str))
}