83 lines
2.0 KiB
Kotlin
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)
|
|
}
|
|
} |