StringLiteral.ceylon
import ceylon.test {
test,
assertEquals,
assertNotEquals
}
import ceylon.ast.core {
StringLiteral
}
test
shared void stringLiteral() {
value sl1 = StringLiteral("Hello, World!", false);
value sl2 = StringLiteral("Hello, World!", true);
assertEquals(sl1, sl1, "StringLiteral equal to itself");
assertEquals(sl1.text, sl2.text, "StringLiterals have the same text");
assertNotEquals(sl1, sl2, "StringLiterals are not equal because of different isVerbatim values");
}
test
shared void stringLiteralCopy() {
value sl1 = StringLiteral("\{LATIN CAPITAL LETTER C}");
value sl2 = StringLiteral("\\{LATIN CAPITAL LETTER C}");
value s11 = sl1.copy();
value s12 = sl1.copy { text = sl2.text; };
value s21 = sl2.copy();
assertEquals(s11, sl1, "clean copy equals");
assertNotEquals(s12, sl1, "changed copy not equals");
assertEquals(s12, sl2, "changed copy equals to other original");
assertEquals(s12, s21, "changed copy equals to other copy");
}
test
shared void stringLiteralCeylonExpression() {
assert (StringLiteral("c").string in { for (isVerbatim in { "", ", false" }) "StringLiteral(\"\"\"c\"\"\"``isVerbatim``)" });
}