Files
kotlin/libraries/stdlib/test/text/StringBuilderTest.kt
nikita.movshin 65244b4bea Update copyright.
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update only 2 lines copyright.
2019-04-23 20:09:22 +03:00

91 lines
2.5 KiB
Kotlin

/*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package test.text
import kotlin.test.*
class StringBuilderTest {
@Test fun stringBuild() {
val s = buildString {
append("a")
append(true)
}
assertEquals("atrue", s)
}
@Test fun appendMany() {
assertEquals("a1", StringBuilder().append("a", "1").toString())
assertEquals("a1", StringBuilder().append("a", 1).toString())
assertEquals("a1", StringBuilder().append("a", StringBuilder().append("1")).toString())
}
@Test fun append() {
// this test is needed for JS implementation
assertEquals("em", buildString {
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())
}
}
@Test fun clear() {
val sb = StringBuilder()
sb.append("test")
val s = sb.toString()
sb.clear()
assertTrue(sb.isEmpty())
assertEquals("test", s)
}
@Test fun get() {
val sb = StringBuilder()
sb.append("test")
assertEquals('t', sb[0])
assertEquals('e', sb[1])
assertEquals('s', sb[2])
assertEquals('t', sb[3])
assertFailsWith<IndexOutOfBoundsException> { assertEquals('t', sb[-1]) }
assertFailsWith<IndexOutOfBoundsException> { assertEquals('t', sb[4]) }
}
}