1 /*
2  * This file has been automatically generated by Soupply and released under the MIT license.
3  * Generated from data/test0.xml
4  */
5 module soupply.test0.protocol.test;
6 
7 static import std.conv;
8 import std.typetuple : TypeTuple;
9 import xpacket;
10 
11 import soupply.util;
12 import soupply.test0.metadata : Metadata;
13 import soupply.test0.packet : Test0Packet;
14 
15 static import soupply.test0.types;
16 
17 alias Packets = TypeTuple!(TestInt, TestFloat, TestArray);
18 
19 class TestInt : Test0Packet
20 {
21 
22     enum ubyte ID = 0;
23 
24     enum bool CLIENTBOUND = false;
25     enum bool SERVERBOUND = false;
26 
27     enum string[] __fields = ["a", "b", "c", "d", "e"];
28 
29     byte a;
30     ushort b;
31     @LittleEndian long c;
32     @Var short d;
33     @Var uint e;
34 
35     this() pure nothrow @safe @nogc {}
36 
37     this(byte a, ushort b=ushort.init, long c=long.init, short d=short.init, uint e=uint.init) pure nothrow @safe @nogc
38     {
39         this.a = a;
40         this.b = b;
41         this.c = c;
42         this.d = d;
43         this.e = e;
44     }
45 
46     mixin Make;
47 
48     public static typeof(this) fromBuffer(ubyte[] buffer)
49     {
50         TestInt ret = new TestInt();
51         ret.decode(buffer);
52         return ret;
53     }
54 
55     override string toString()
56     {
57         return "TestInt(a: " ~ std.conv.to!string(this.a) ~ ", b: " ~ std.conv.to!string(this.b) ~ ", c: " ~ std.conv.to!string(this.c) ~ ", d: " ~ std.conv.to!string(this.d) ~ ", e: " ~ std.conv.to!string(this.e) ~ ")";
58     }
59 
60     unittest
61     {
62 
63         import std.conv : to;
64 
65         TestInt packet = new TestInt();
66 
67         packet.c = 1;
68         packet.a = -10;
69         packet.e = 500;
70         packet.b = 300;
71         packet.d = 10;
72         auto result = packet.encode();
73         assert(result == [0, 246, 1, 44, 1, 0, 0, 0, 0, 0, 0, 0, 20, 244, 3], `test0.test.test-int expected [0, 246, 1, 44, 1, 0, 0, 0, 0, 0, 0, 0, 20, 244, 3] but got ` ~ result.to!string);
74 
75         packet.decode([0, 246, 1, 44, 1, 0, 0, 0, 0, 0, 0, 0, 20, 244, 3]);
76         assert(packet.c == 1, `test0.test.test-int.c expected 1 but got ` ~ packet.c.to!string);
77         assert(packet.a == -10, `test0.test.test-int.a expected -10 but got ` ~ packet.a.to!string);
78         assert(packet.e == 500, `test0.test.test-int.e expected 500 but got ` ~ packet.e.to!string);
79         assert(packet.b == 300, `test0.test.test-int.b expected 300 but got ` ~ packet.b.to!string);
80         assert(packet.d == 10, `test0.test.test-int.d expected 10 but got ` ~ packet.d.to!string);
81 
82     }
83 
84 }
85 
86 class TestFloat : Test0Packet
87 {
88 
89     enum ubyte ID = 1;
90 
91     enum bool CLIENTBOUND = false;
92     enum bool SERVERBOUND = false;
93 
94     enum string[] __fields = ["a", "b", "c"];
95 
96     float a;
97     double b;
98     @LittleEndian float c;
99 
100     this() pure nothrow @safe @nogc {}
101 
102     this(float a, double b=double.init, float c=float.init) pure nothrow @safe @nogc
103     {
104         this.a = a;
105         this.b = b;
106         this.c = c;
107     }
108 
109     mixin Make;
110 
111     public static typeof(this) fromBuffer(ubyte[] buffer)
112     {
113         TestFloat ret = new TestFloat();
114         ret.decode(buffer);
115         return ret;
116     }
117 
118     override string toString()
119     {
120         return "TestFloat(a: " ~ std.conv.to!string(this.a) ~ ", b: " ~ std.conv.to!string(this.b) ~ ", c: " ~ std.conv.to!string(this.c) ~ ")";
121     }
122 
123     unittest
124     {
125 
126         import std.conv : to;
127 
128         TestFloat packet = new TestFloat();
129 
130         packet.c = -44;
131         packet.a = 1;
132         packet.b = 312;
133         auto result = packet.encode();
134         assert(result == [1, 63, 128, 0, 0, 64, 115, 128, 0, 0, 0, 0, 0, 0, 0, 48, 194], `test0.test.test-float expected [1, 63, 128, 0, 0, 64, 115, 128, 0, 0, 0, 0, 0, 0, 0, 48, 194] but got ` ~ result.to!string);
135 
136         packet.decode([1, 63, 128, 0, 0, 64, 115, 128, 0, 0, 0, 0, 0, 0, 0, 48, 194]);
137         assert(packet.c == -44, `test0.test.test-float.c expected -44 but got ` ~ packet.c.to!string);
138         assert(packet.a == 1, `test0.test.test-float.a expected 1 but got ` ~ packet.a.to!string);
139         assert(packet.b == 312, `test0.test.test-float.b expected 312 but got ` ~ packet.b.to!string);
140 
141     }
142 
143 }
144 
145 class TestArray : Test0Packet
146 {
147 
148     enum ubyte ID = 2;
149 
150     enum bool CLIENTBOUND = false;
151     enum bool SERVERBOUND = false;
152 
153     enum string[] __fields = ["a", "b", "c", "d"];
154 
155     ubyte[] a;
156     string b;
157     @Length!int short[] c;
158     @Var uint[] d;
159 
160     this() pure nothrow @safe @nogc {}
161 
162     this(ubyte[] a, string b=string.init, short[] c=(short[]).init, uint[] d=(uint[]).init) pure nothrow @safe @nogc
163     {
164         this.a = a;
165         this.b = b;
166         this.c = c;
167         this.d = d;
168     }
169 
170     mixin Make;
171 
172     public static typeof(this) fromBuffer(ubyte[] buffer)
173     {
174         TestArray ret = new TestArray();
175         ret.decode(buffer);
176         return ret;
177     }
178 
179     override string toString()
180     {
181         return "TestArray(a: " ~ std.conv.to!string(this.a) ~ ", b: " ~ std.conv.to!string(this.b) ~ ", c: " ~ std.conv.to!string(this.c) ~ ", d: " ~ std.conv.to!string(this.d) ~ ")";
182     }
183 
184     unittest
185     {
186 
187         import std.conv : to;
188 
189         TestArray packet = new TestArray();
190 
191         packet.c = [-1, 0, 1];
192         packet.a = [3, 2];
193         packet.b = "test";
194         packet.d = [0, 400];
195         auto result = packet.encode();
196         assert(result == [2, 2, 3, 2, 4, 116, 101, 115, 116, 0, 3, 255, 255, 0, 0, 0, 1, 2, 0, 144, 3], `test0.test.test-array expected [2, 2, 3, 2, 4, 116, 101, 115, 116, 0, 3, 255, 255, 0, 0, 0, 1, 2, 0, 144, 3] but got ` ~ result.to!string);
197 
198         packet.decode([2, 2, 3, 2, 4, 116, 101, 115, 116, 0, 3, 255, 255, 0, 0, 0, 1, 2, 0, 144, 3]);
199         assert(packet.c == [-1, 0, 1], `test0.test.test-array.c expected [-1,0,1] but got ` ~ packet.c.to!string);
200         assert(packet.a == [3, 2], `test0.test.test-array.a expected [3,2] but got ` ~ packet.a.to!string);
201         assert(packet.b == "test", `test0.test.test-array.b expected "test" but got ` ~ packet.b.to!string);
202         assert(packet.d == [0, 400], `test0.test.test-array.d expected [0,400] but got ` ~ packet.d.to!string);
203 
204     }
205 
206 }