// 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.numeric.BigInt
@Test
public class UnicodeStringTest {
@TestCase
public func shouldEqualsSameObject(): Unit {
let unicodeString = UnicodeString("string")
@Assert(unicodeString.equals(unicodeString))
}
@TestCase
public func shouldEqualsBothNull(): Unit {
let unicodeString1 = UnicodeString(None)
let unicodeString2 = UnicodeString(None)
@Assert(unicodeString1.equals(unicodeString2))
@Assert(unicodeString2.equals(unicodeString1))
}
@TestCase
public func shouldEqualsSameValue(): Unit {
let unicodeString1 = UnicodeString("string")
let unicodeString2 = UnicodeString("string")
@Assert(unicodeString1.equals(unicodeString2))
@Assert(unicodeString2.equals(unicodeString1))
}
@TestCase
public func shouldHashNull(): Unit {
@Assert(0, UnicodeString(None).hashCode())
}
@TestCase
public func shouldNotEquals(): Unit {
let unicodeString1 = UnicodeString(None)
let unicodeString2 = UnicodeString("")
@Assert(false, unicodeString1.equals(unicodeString2))
}
}