|
15 | 15 | */
|
16 | 16 | package uk.co.real_logic.sbe.json;
|
17 | 17 |
|
| 18 | +import baseline.CarEncoder; |
18 | 19 | import baseline.CredentialsEncoder;
|
19 | 20 | import baseline.MessageHeaderEncoder;
|
20 | 21 | import org.agrona.concurrent.UnsafeBuffer;
|
@@ -155,6 +156,37 @@ public void exampleVarData() throws Exception
|
155 | 156 | result);
|
156 | 157 | }
|
157 | 158 |
|
| 159 | + @Test |
| 160 | + public void removeTrailingGarbage() throws Exception |
| 161 | + { |
| 162 | + final ByteBuffer encodedSchemaBuffer = ByteBuffer.allocate(SCHEMA_BUFFER_CAPACITY); |
| 163 | + encodeSchema(encodedSchemaBuffer); |
| 164 | + |
| 165 | + final ByteBuffer encodedMsgBuffer = ByteBuffer.allocate(MSG_BUFFER_CAPACITY); |
| 166 | + final UnsafeBuffer buffer = new UnsafeBuffer(encodedMsgBuffer); |
| 167 | + final CarEncoder encoder = new CarEncoder(); |
| 168 | + encoder.wrapAndApplyHeader(buffer, 0, new MessageHeaderEncoder()); |
| 169 | + encoder.vehicleCode("vc\0ノ�"); |
| 170 | + encodedMsgBuffer.position(encoder.encodedLength()); |
| 171 | + encodedSchemaBuffer.flip(); |
| 172 | + final Ir ir = decodeIr(encodedSchemaBuffer); |
| 173 | + |
| 174 | + final JsonPrinter printer = new JsonPrinter(ir); |
| 175 | + final String result = printer.print(encodedMsgBuffer); |
| 176 | + assertEquals("{\n" + " \"serialNumber\": 0,\n" + |
| 177 | + " \"modelYear\": 0,\n" + |
| 178 | + " \"available\": \"F\",\n" + " \"code\": \"null\",\n" + " \"someNumbers\": [0, 0, 0, 0, 0],\n" + |
| 179 | + " \"vehicleCode\": \"vc\",\n" + //trailing garbage removed |
| 180 | + " \"extras\": { \"sunRoof\": false, \"sportsPack\": false, \"cruiseControl\": false },\n" + |
| 181 | + " \"engine\": \n" + " {\n" + " \"capacity\": 0,\n" + " \"numCylinders\": 0,\n" + |
| 182 | + " \"maxRpm\": 9000,\n" + " \"manufacturerCode\": \"\",\n" + |
| 183 | + " \"fuel\": \"Petrol\"\n" + " },\n" + " \"uuid\": [0, 0],\n" + " \"cupHolderCount\": 0,\n" + |
| 184 | + " \"fuelFigures\": [],\n" + " \"performanceFigures\": [],\n" + " \"manufacturer\": \"\",\n" + |
| 185 | + " \"model\": \"\",\n" + " \"activationCode\": \"\"\n" + "}", |
| 186 | + result); |
| 187 | + } |
| 188 | + |
| 189 | + |
158 | 190 | private static void encodeSchema(final ByteBuffer buffer) throws Exception
|
159 | 191 | {
|
160 | 192 | final Path path = Paths.get("src/test/resources/json-printer-test-schema.xml");
|
|
0 commit comments