Files
strom/proto/smart_convert_test.go
T
2026-03-29 17:34:41 +02:00

32 lines
1023 B
Go

package proto_test
import (
"reflect"
"testing"
"github.com/admin-else/strom/proto"
"github.com/admin-else/strom/proto_generated/v1_21_8"
"github.com/admin-else/strom/proto_generated/v1_21_9"
)
func TestCanSmartConvert(t *testing.T) {
packet := &v1_21_9.PlayToClientPacketPosition{Flags: v1_21_9.PlayToClientPositionUpdateRelatives{Val: 2}, X: 5}
can := proto.SmartConvertibleTo(reflect.TypeOf(packet), reflect.TypeFor[*v1_21_8.PlayToClientPacketPosition]())
if !can {
t.Fatal("can't smart convert")
}
ret := proto.SmartConvert(reflect.ValueOf(packet), reflect.TypeFor[*v1_21_8.PlayToClientPacketPosition]())
t.Logf("%#v", ret)
}
func TestCanSmartConvertTags(t *testing.T) {
packet := &v1_21_9.ConfigurationToClientPacketTags{}
targetType := reflect.TypeFor[*v1_21_8.ConfigurationToClientPacketTags]()
can := proto.SmartConvertibleTo(reflect.TypeOf(packet), targetType)
if !can {
t.Fatal("can't smart convert")
}
ret := proto.SmartConvert(reflect.ValueOf(packet), targetType)
t.Logf("%#v", ret)
}