SquadCompanion/src/test/kotlin/WatchTest.kt

83 lines
2.0 KiB
Kotlin

import org.junit.jupiter.api.Test
import yenon.squadcompanion.logreader.LogReaderTail
import java.nio.file.Files
import java.nio.file.Paths
import kotlin.test.assertEquals
class WatchTest {
@Test
fun testWatch() {
val target = Paths.get("testWatch")
val writer = Files.newBufferedWriter(target)
val reader = Files.newBufferedReader(target)
writer.write("This is some text.\n")
writer.flush()
assertEquals("This is some text.", reader.readLine())
assertEquals(null, reader.readLine())
writer.write("Test\n")
writer.flush()
assertEquals("Test", reader.readLine())
assertEquals(null, reader.readLine())
writer.close()
reader.close()
Files.delete(target)
}
@Test
fun testReplaceRead() {
val target = Paths.get("testReplace")
val targetBackup = Paths.get("testReplace.bak")
var index = 0
val reader = LogReaderTail(target) {
println(it)
when (index) {
0 -> {
if (it == "Testing") {
index++
}
}
1 -> {
if (it == "123") {
index++
}
}
2 -> {
if (it == "456") {
index++
}
}
}
}
Thread.sleep(100)
var writer = Files.newBufferedWriter(target)
writer.write("Testing\n")
writer.flush()
writer.close()
Thread.sleep(100)
Files.move(target, targetBackup)
writer = Files.newBufferedWriter(target)
writer.write("123\n")
writer.flush()
writer.write("456\n")
writer.flush()
writer.close()
Thread.sleep(100)
reader.close()
Files.delete(target)
Files.delete(targetBackup)
assertEquals(index, 3)
}
}