// EXEC: cjc %import-path %L %l %f --test
// EXEC: ./main
import std.unittest.*
import std.unittest.testmacro.*
import std.io.*
import cbor4cj.*
@Test
public class UnicodeStringDecoderTest {
@TestCase
public func shouldDecodeChunkedUnicodeString(): Unit {
let baos = ByteBuffer()
let encoder = CborEncoder(baos)
encoder.encode(CborBuilder().startString().add("foo").add("bar").end().getOrThrow().build())
let encodedBytes: Array<UInt8> = baos.bytes()
let bais = ByteBuffer()
bais.write(encodedBytes)
let decoder = CborDecoder(bais)
let dataItems = decoder.decode()
@Assert(1, dataItems.size)
}
@TestCase
public func shouldThrowOnIncompleteString(): Unit {
let bytes: Array<UInt8> = [98, 97]
try {
CborDecoder.decodeStatic(bytes)
} catch (e: CborException) {
return
}
@Assert(false)
}
@TestCase
public func shouldThrowOnMissingBreak(): Unit {
let bytes: Array<UInt8> = [127, 97, 97]
try {
CborDecoder.decodeStatic(bytes)
} catch (e: CborException) {
return
}
@Assert(false)
}
}