80 lines
1.6 KiB
Go
80 lines
1.6 KiB
Go
|
package object7_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/teeworlds-go/go-teeworlds-protocol/internal/testutils/require"
|
||
|
"github.com/teeworlds-go/go-teeworlds-protocol/network7"
|
||
|
"github.com/teeworlds-go/go-teeworlds-protocol/object7"
|
||
|
"github.com/teeworlds-go/go-teeworlds-protocol/packer"
|
||
|
)
|
||
|
|
||
|
func TestLaserStandalone(t *testing.T) {
|
||
|
// simple pack
|
||
|
laser := &object7.Laser{
|
||
|
ItemId: 1,
|
||
|
X: 200,
|
||
|
Y: 301,
|
||
|
FromX: 20,
|
||
|
FromY: 40,
|
||
|
StartTick: 7812,
|
||
|
}
|
||
|
|
||
|
{
|
||
|
// this is not verified against anything
|
||
|
want := []byte{3, 1, 136, 3, 173, 4, 20, 40, 132, 122}
|
||
|
got := laser.Pack()
|
||
|
|
||
|
require.Equal(t, want, got)
|
||
|
}
|
||
|
|
||
|
// repack
|
||
|
u := &packer.Unpacker{}
|
||
|
u.Reset(laser.Pack())
|
||
|
typeId := u.GetInt()
|
||
|
require.Equal(t, network7.ObjLaser, typeId)
|
||
|
itemId := u.GetInt()
|
||
|
require.Equal(t, 1, itemId)
|
||
|
laser.Unpack(u)
|
||
|
|
||
|
require.Equal(t, 200, laser.X)
|
||
|
require.Equal(t, 301, laser.Y)
|
||
|
require.Equal(t, 20, laser.FromX)
|
||
|
require.Equal(t, 40, laser.FromY)
|
||
|
require.Equal(t, 7812, laser.StartTick)
|
||
|
}
|
||
|
|
||
|
func TestLaserStandaloneAllZeros(t *testing.T) {
|
||
|
// simple pack
|
||
|
laser := &object7.Laser{
|
||
|
ItemId: 0,
|
||
|
X: 0,
|
||
|
Y: 0,
|
||
|
FromX: 0,
|
||
|
FromY: 0,
|
||
|
StartTick: 0,
|
||
|
}
|
||
|
|
||
|
{
|
||
|
want := []byte{0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
|
||
|
got := laser.Pack()
|
||
|
|
||
|
require.Equal(t, want, got)
|
||
|
}
|
||
|
|
||
|
// repack
|
||
|
u := &packer.Unpacker{}
|
||
|
u.Reset(laser.Pack())
|
||
|
typeId := u.GetInt()
|
||
|
require.Equal(t, network7.ObjLaser, typeId)
|
||
|
itemId := u.GetInt()
|
||
|
require.Equal(t, 0, itemId)
|
||
|
laser.Unpack(u)
|
||
|
|
||
|
{
|
||
|
want := 0
|
||
|
got := laser.X
|
||
|
require.Equal(t, want, got)
|
||
|
}
|
||
|
}
|