// EXEC: cjc %import-path %L %l %f --test
// EXEC: ./main
import std.unittest.*
import std.unittest.testmacro.*
import std.io.*
import cbor4cj.*
import std.math.*
import std.math.numeric.BigInt
import std.convert.*
@Test
public class Example06Test {
private var VALUE:Collection<DataItem>
private var ENCODED_VALUE: Array<Byte> = [0xc0, 0x74, 0x32, 0x30, 0x31, 0x33, 0x2d, 0x30, 0x33, 0x2d, 0x32, 0x31, 0x54, 0x32,
0x30, 0x3a, 0x30, 0x34, 0x3a, 0x30, 0x30, 0x5a]
public init() {
var di = UnicodeString("2013-03-21T20:04:00Z");
di.setTag(0);
VALUE = CborBuilder().add(di).build();
}
@TestCase
public func shouldEncode() {
var byteOutputStream = ByteBuffer();
var encoder = CborEncoder(byteOutputStream);
encoder.encode(VALUE);
@Assert(ENCODED_VALUE, byteOutputStream.bytes())
}
@TestCase
public func shouldDecode() {
var inputStream = ByteBuffer();
inputStream.write(ENCODED_VALUE)
var decoder = CborDecoder(inputStream);
var dataItems = decoder.decode();
@Assert(VALUE.toArray(), dataItems.toArray())
}
}