move types out of decoders package

This commit is contained in:
2025-10-17 15:27:33 -05:00
parent 7dd6d45a08
commit 7b1dc4bfd6
54 changed files with 558 additions and 490 deletions
+6 -6
View File
@@ -5,14 +5,14 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
chunk decoders.Chunk
chunk chunks.Chunk
}{
{
description: "info packet",
@@ -21,8 +21,8 @@ func TestChunkEncoding(t *testing.T) {
0x01, 0x01, 0x00, 0x0b, 0x00, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x02, 0x00, 0x11,
0x80, 0x01, 0x00, 0x0d, 0x80, 0x00, 0x00, 0x09, 0x00, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x20, 0x31,
},
chunk: decoders.Chunk{
Header: decoders.ChunkHeader{
chunk: chunks.Chunk{
Header: chunks.ChunkHeader{
Id: uint16(26454),
DataLen: uint16(52),
HasSubchunks: true,
@@ -41,8 +41,8 @@ func TestChunkEncoding(t *testing.T) {
0x01, 0x01, 0x00, 0x14, 0x80, 0x01, 0x00, 0x10, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00,
0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f,
},
chunk: decoders.Chunk{
Header: decoders.ChunkHeader{
chunk: chunks.Chunk{
Header: chunks.ChunkHeader{
Id: uint16(26453),
DataLen: uint16(40),
HasSubchunks: true,
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestDataTrackerAccelChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.DataTrackerXYZChunkData
data chunks.DataTrackerXYZChunkData
}{
{
description: "basic acceleration",
expected: []byte{
4, 0, 12, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64,
},
data: decoders.DataTrackerXYZChunkData{
data: chunks.DataTrackerXYZChunkData{
X: 1,
Y: 2,
Z: 3,
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestDataTrackerOriChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.DataTrackerXYZChunkData
data chunks.DataTrackerXYZChunkData
}{
{
description: "basic orientation",
expected: []byte{
2, 0, 12, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64,
},
data: decoders.DataTrackerXYZChunkData{
data: chunks.DataTrackerXYZChunkData{
X: 1,
Y: 2,
Z: 3,
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestDataTrackerPosChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.DataTrackerXYZChunkData
data chunks.DataTrackerXYZChunkData
}{
{
description: "basic position",
expected: []byte{
0, 0, 12, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64,
},
data: decoders.DataTrackerXYZChunkData{
data: chunks.DataTrackerXYZChunkData{
X: 1,
Y: 2,
Z: 3,
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestDataTrackerSpeedChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.DataTrackerXYZChunkData
data chunks.DataTrackerXYZChunkData
}{
{
description: "basic speed",
expected: []byte{
1, 0, 12, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64,
},
data: decoders.DataTrackerXYZChunkData{
data: chunks.DataTrackerXYZChunkData{
X: 1,
Y: 2,
Z: 3,
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestDataTrackerStatusChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.DataTrackerStatusChunkData
data chunks.DataTrackerStatusChunkData
}{
{
description: "basic status",
expected: []byte{
3, 0, 4, 0, 0, 0, 128, 63,
},
data: decoders.DataTrackerStatusChunkData{
data: chunks.DataTrackerStatusChunkData{
Validity: 1,
},
},
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestDataTrackerTimestampChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.DataTrackerTimestampChunkData
data chunks.DataTrackerTimestampChunkData
}{
{
description: "basic timestamp",
expected: []byte{
6, 0, 8, 0, 210, 2, 150, 73, 0, 0, 0, 0,
},
data: decoders.DataTrackerTimestampChunkData{
data: chunks.DataTrackerTimestampChunkData{
Timestamp: 1234567890,
},
},
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestDataTrackerTrgtPosChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.DataTrackerXYZChunkData
data chunks.DataTrackerXYZChunkData
}{
{
description: "basic target position",
expected: []byte{
5, 0, 12, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64,
},
data: decoders.DataTrackerXYZChunkData{
data: chunks.DataTrackerXYZChunkData{
X: 1,
Y: 2,
Z: 3,
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestInfoSystemNameChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.InfoSystemNameChunkData
data chunks.InfoSystemNameChunkData
}{
{
description: "InfoSystemNameChunk",
expected: []byte{
1, 0, 10, 0, 80, 83, 78, 32, 83, 101, 114, 118, 101, 114,
},
data: decoders.InfoSystemNameChunkData{
data: chunks.InfoSystemNameChunkData{
SystemName: "PSN Server",
},
},
+10 -10
View File
@@ -5,32 +5,32 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestInfoTrackerChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
chunk decoders.InfoTrackerChunk
chunk chunks.InfoTrackerChunk
}{
{
description: "InfoTrackerChunk",
expected: []byte{
1, 0, 13, 128, 0, 0, 9, 0, 84, 114, 97, 99, 107, 101, 114, 32, 49,
},
chunk: decoders.InfoTrackerChunk{
Chunk: decoders.Chunk{
chunk: chunks.InfoTrackerChunk{
Chunk: chunks.Chunk{
ChunkData: []byte{0, 0, 9, 0, 84, 114, 97, 99, 107, 101, 114, 32, 49},
Header: decoders.ChunkHeader{DataLen: 13, Id: 1, HasSubchunks: true},
Header: chunks.ChunkHeader{DataLen: 13, Id: 1, HasSubchunks: true},
},
Data: decoders.InfoTrackerChunkData{
TrackerName: &decoders.InfoTrackerNameChunk{
Chunk: decoders.Chunk{
Data: chunks.InfoTrackerChunkData{
TrackerName: &chunks.InfoTrackerNameChunk{
Chunk: chunks.Chunk{
ChunkData: []byte{84, 114, 97, 99, 107, 101, 114, 32, 49},
Header: decoders.ChunkHeader{DataLen: 9, Id: 0, HasSubchunks: false},
Header: chunks.ChunkHeader{DataLen: 9, Id: 0, HasSubchunks: false},
},
Data: decoders.InfoTrackerNameChunkData{
Data: chunks.InfoTrackerNameChunkData{
TrackerName: "Tracker 1",
},
},
@@ -5,39 +5,39 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestInfoTrackerListChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
chunk decoders.InfoTrackerListChunk
chunk chunks.InfoTrackerListChunk
}{
{
description: "InfoTrackerListChunk",
expected: []byte{
2, 0, 17, 128, 1, 0, 13, 128, 0, 0, 9, 0, 84, 114, 97, 99, 107, 101, 114, 32, 49,
},
chunk: decoders.InfoTrackerListChunk{
Chunk: decoders.Chunk{
chunk: chunks.InfoTrackerListChunk{
Chunk: chunks.Chunk{
ChunkData: []byte{1, 0, 13, 128, 0, 0, 9, 0, 84, 114, 97, 99, 107, 101, 114, 32, 49},
Header: decoders.ChunkHeader{DataLen: 17, Id: 2, HasSubchunks: true},
Header: chunks.ChunkHeader{DataLen: 17, Id: 2, HasSubchunks: true},
},
Data: decoders.InfoTrackerListChunkData{
Trackers: []decoders.InfoTrackerChunk{
Data: chunks.InfoTrackerListChunkData{
Trackers: []chunks.InfoTrackerChunk{
{
Chunk: decoders.Chunk{
Chunk: chunks.Chunk{
ChunkData: []byte{0, 0, 9, 0, 84, 114, 97, 99, 107, 101, 114, 32, 49},
Header: decoders.ChunkHeader{DataLen: 13, Id: 1, HasSubchunks: true},
Header: chunks.ChunkHeader{DataLen: 13, Id: 1, HasSubchunks: true},
},
Data: decoders.InfoTrackerChunkData{
TrackerName: &decoders.InfoTrackerNameChunk{
Chunk: decoders.Chunk{
Data: chunks.InfoTrackerChunkData{
TrackerName: &chunks.InfoTrackerNameChunk{
Chunk: chunks.Chunk{
ChunkData: []byte{84, 114, 97, 99, 107, 101, 114, 32, 49},
Header: decoders.ChunkHeader{DataLen: 9, Id: 0, HasSubchunks: false},
Header: chunks.ChunkHeader{DataLen: 9, Id: 0, HasSubchunks: false},
},
Data: decoders.InfoTrackerNameChunkData{
Data: chunks.InfoTrackerNameChunkData{
TrackerName: "Tracker 1",
},
},
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestInfoTrackerNameChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.InfoTrackerNameChunkData
data chunks.InfoTrackerNameChunkData
}{
{
description: "InfoTrackerNameChunk",
expected: []byte{
0, 0, 9, 0, 84, 114, 97, 99, 107, 101, 114, 32, 49,
},
data: decoders.InfoTrackerNameChunkData{
data: chunks.InfoTrackerNameChunkData{
TrackerName: "Tracker 1",
},
},
@@ -5,21 +5,21 @@ import (
"reflect"
"testing"
"github.com/jwetzell/psn-go/internal/decoders"
"github.com/jwetzell/psn-go/internal/chunks"
)
func TestPacketHeaderChunkEncoding(t *testing.T) {
testCases := []struct {
description string
expected []byte
data decoders.PacketHeaderChunkData
data chunks.PacketHeaderChunkData
}{
{
description: "PacketHeaderChunk",
expected: []byte{
0, 0, 12, 0, 210, 2, 150, 73, 0, 0, 0, 0, 2, 3, 1, 123,
},
data: decoders.PacketHeaderChunkData{
data: chunks.PacketHeaderChunkData{
PacketTimestamp: 1234567890,
VersionHigh: 2,
VersionLow: 3,