JS: Make StringBuilder implement CharSequence and introduce secondary constructors.

This commit is contained in:
Ilya Gorbunov
2015-10-14 07:40:57 +03:00
parent 935024db4e
commit d860f335a3
3 changed files with 57 additions and 3 deletions
@@ -25,4 +25,41 @@ class StringBuilderTest {
append("element", 2, 4)
})
}
@test fun asCharSequence() {
val original = "Some test string"
val sb = StringBuilder(original)
val result = sb.toString()
val cs = sb as CharSequence
assertEquals(result.length(), cs.length())
assertEquals(result.length(), sb.length())
for (index in result.indices) {
assertEquals(result[index], sb[index])
assertEquals(result[index], cs[index])
}
assertEquals(result.substring(2, 6), cs.subSequence(2, 6).toString())
}
@test fun constructors() {
StringBuilder().let { sb ->
assertEquals(0, sb.length())
assertEquals("", sb.toString())
}
StringBuilder(16).let { sb ->
assertEquals(0, sb.length())
assertEquals("", sb.toString())
}
StringBuilder("content").let { sb ->
assertEquals(7, sb.length())
assertEquals("content", sb.toString())
}
StringBuilder(StringBuilder("content")).let { sb ->
assertEquals(7, sb.length())
assertEquals("content", sb.toString())
}
}
}