diff --git a/generate/generate_test.go b/generate/generate_test.go index 5b5a49d..e8bdbc6 100644 --- a/generate/generate_test.go +++ b/generate/generate_test.go @@ -71,8 +71,8 @@ func init() { } } -func TestGenerateRun(test *testing.T) { - testGenerateRun(test, &exampleProtocol, ` +func TestGenerateRunEncode(test *testing.T) { + testGenerateRun(test, &exampleProtocol, "encode", ` // imports `, ` // test case @@ -199,3 +199,131 @@ func TestGenerateRun(test *testing.T) { )) `) } + +func TestGenerateRunDecode(test *testing.T) { + testGenerateRun(test, &exampleProtocol, "decode", ` + // imports + `, ` + log.Println("MessageConnect") + messageConnect := MessageConnect { + Name: "rarity", + Password: "gems", + } + testDecode( + &messageConnect, + tu.S(0xE1, 0x02).AddVar( + []byte { 0x00, 0x00, 0x86, 'r', 'a', 'r', 'i', 't', 'y' }, + []byte { 0x00, 0x01, 0x84, 'g', 'e', 'm', 's' }, + )) + log.Println("MessageUserList") + messageUserList := MessageUserList { + Users: []User { + User { + Name: "rarity", + Bio: "asdjads", + Followers: 0x324, + }, + User { + Name: "deez nuts", + Bio: "logy", + Followers: 0x8000, + }, + User { + Name: "creekflow", + Bio: "im creekflow", + Followers: 0x3894, + }, + }, + } + testEncode( + &messageUserList, + tu.S(0xE1, 0x01, 0x00, 0x00, + 0xC1, 0x03, 0xE1, + ).Add(0x03).AddVar( + []byte { 0x00, 0x00, 0x86, 'r', 'a', 'r', 'i', 't', 'y' }, + []byte { 0x00, 0x01, 0x87, 'a', 's', 'd', 'j', 'a', 'd', 's' }, + []byte { 0x00, 0x02, 0x23, 0x00, 0x00, 0x03, 0x24 }, + ).Add(0x03).AddVar( + []byte { 0x00, 0x00, 0x89, 'd', 'e', 'e', 'z', ' ', 'n', 'u', 't', 's' }, + []byte { 0x00, 0x01, 0x84, 'l', 'o', 'g', 'y' }, + []byte { 0x00, 0x02, 0x23, 0x00, 0x00, 0x80, 0x00 }, + ).Add(0x03).AddVar( + []byte { 0x00, 0x00, 0x89, 'c', 'r', 'e', 'e', 'k', 'f', 'l', 'o', 'w' }, + []byte { 0x00, 0x01, 0x8C, 'i', 'm', ' ', 'c', 'r', 'e', 'e', 'k', 'f', + 'l', 'o', 'w' }, + []byte { 0x00, 0x02, 0x23, 0x00, 0x00, 0x38, 0x94 }, + )) + log.Println("MessagePulse") + messagePulse := MessagePulse { + Index: 9, + Offset: -0x3521, + X: 45.389, + Y: 294.1, + Z: 384729384.234892034, + } + testEncode( + &messagePulse, + tu.S(0xE1, 0x05).AddVar( + []byte { 0x00, 0x00, 0x09 }, + []byte { 0x00, 0x01, 0x41, 0xCA, 0xDF }, + []byte { 0x00, 0x02, 0x61, 0x51, 0xAC }, + []byte { 0x00, 0x03, 0x63, 0x43, 0x93, 0x0C, 0xCD }, + []byte { 0x00, 0x04, 0x67, 0x41, 0xB6, 0xEE, 0x81, 0x28, 0x3C, 0x21, 0xE2 }, + )) + log.Println("MessageNestedArray") + uint8s := func(n int) []uint8 { + array := make([]uint8, n) + for index := range array { + array[index] = uint8(index + 1) | 0xF0 + } + return array + } + messageNestedArray := MessageNestedArray { + uint8s(6), + uint8s(35), + } + testEncode( + &messageNestedArray, + tu.S(0xC1, 0x02, 0xC1, + 0x06, 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, + 35, 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, + 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, + 0xFD, 0xFE, 0xFF, 0xF0, 0xF1, 0xF2, + 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, + 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, + 0xFF, 0xF0, 0xF1, 0xF2, 0xF3)) + log.Println("MessageIntegers") + messageIntegers := MessageIntegers { + U5: 0x13, + U8: 0xC9, + U16: 0x34C9, + U32: 0x10E134C9, + U64: 0x639109BC10E134C9, + I8: 0x35, + I16: 0x34C9, + I32: 0x10E134C9, + I64: 0x639109BC10E134C9, + NI8: -0x35, + NI16: -0x34C9, + NI32: -0x10E134C9, + NI64: -0x639109BC10E134C9, + } + testEncode( + &messageIntegers, + tu.S(0xE1, 13).AddVar( + []byte { 0x00, 0x00, 0x13 }, + []byte { 0x00, 0x01, 0x20, 0xC9 }, + []byte { 0x00, 0x02, 0x21, 0x34, 0xC9 }, + []byte { 0x00, 0x03, 0x23, 0x10, 0xE1, 0x34, 0xC9 }, + []byte { 0x00, 0x04, 0x27, 0x63, 0x91, 0x09, 0xBC, 0x10, 0xE1, 0x34, 0xC9 }, + []byte { 0x00, 0x06, 0x40, 0x35 }, + []byte { 0x00, 0x07, 0x41, 0x34, 0xC9 }, + []byte { 0x00, 0x08, 0x43, 0x10, 0xE1, 0x34, 0xC9 }, + []byte { 0x00, 0x09, 0x47, 0x63, 0x91, 0x09, 0xBC, 0x10, 0xE1, 0x34, 0xC9 }, + []byte { 0x00, 0x0B, 0x40, 0xCB }, + []byte { 0x00, 0x0C, 0x41, 0xCB, 0x37 }, + []byte { 0x00, 0x0D, 0x43, 0xEF, 0x1E, 0xCB, 0x37 }, + []byte { 0x00, 0x0E, 0x47, 0x9C, 0x6E, 0xF6, 0x43, 0xEF, 0x1E, 0xCB, 0x37 }, + )) + `) +}