66f5c98505
Document their potential permission problems. Suppress this deprecation in tests.
69 lines
1.8 KiB
Kotlin
69 lines
1.8 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.io
|
|
|
|
import kotlin.test.*
|
|
import java.io.Writer
|
|
import java.io.BufferedReader
|
|
import kotlin.random.Random
|
|
|
|
class IOStreamsTest {
|
|
@Test fun testGetStreamOfFile() {
|
|
val tmpFile = @Suppress("DEPRECATION") createTempFile()
|
|
var writer: Writer? = null
|
|
try {
|
|
writer = tmpFile.outputStream().writer()
|
|
writer.write("Hello, World!")
|
|
} finally {
|
|
writer?.close()
|
|
}
|
|
val act: String?
|
|
var reader: BufferedReader? = null
|
|
try {
|
|
reader = tmpFile.inputStream().reader().buffered()
|
|
act = reader.readLine()
|
|
} finally {
|
|
reader?.close()
|
|
}
|
|
assertEquals("Hello, World!", act)
|
|
}
|
|
|
|
@Test fun testInputStreamIterator() {
|
|
val x = ByteArray(10) { it.toByte() }
|
|
|
|
val result = mutableListOf<Byte>()
|
|
|
|
x.inputStream().buffered().use { stream ->
|
|
for (b in stream) {
|
|
result += b
|
|
}
|
|
}
|
|
|
|
assertEquals(x.asList(), result)
|
|
}
|
|
|
|
@Test fun readWriteBytes() {
|
|
val file = @Suppress("DEPRECATION") createTempFile("temp", Random.nextLong().toString())
|
|
try {
|
|
val bytes = Random.nextBytes(256_000)
|
|
|
|
file.outputStream().use { outStream ->
|
|
outStream.write(bytes)
|
|
}
|
|
|
|
val inBytes = file.inputStream().use { inStream ->
|
|
inStream.readBytes()
|
|
}
|
|
|
|
assertTrue(inBytes contentEquals bytes, "Expected to read the same content back, read bytes of length ${inBytes.size}")
|
|
|
|
} finally {
|
|
file.delete()
|
|
}
|
|
}
|
|
|
|
}
|