diff options
Diffstat (limited to 'libs/test-utils/src/main/java/org')
| -rw-r--r-- | libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt | 60 |
1 files changed, 42 insertions, 18 deletions
diff --git a/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt b/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt index 302e809..ba65108 100644 --- a/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt +++ b/libs/test-utils/src/main/java/org/the_jk/cleversync/TreeAbstractTest.kt @@ -22,10 +22,13 @@ abstract class TreeAbstractTest { @Test open fun emptyLive() { - val content = tree.liveList().safeValue() - assertThat(content?.directories).isEmpty() - assertThat(content?.files).isEmpty() - assertThat(content?.links).isEmpty() + val liveContent = tree.liveList() + onMain { + val content = liveContent.safeValue() + assertThat(content?.directories).isEmpty() + assertThat(content?.files).isEmpty() + assertThat(content?.links).isEmpty() + } } @Test @@ -45,15 +48,20 @@ abstract class TreeAbstractTest { @Test(timeout = 10000) open fun observeCreateDirectory() { val content = tree.liveList() + // Only accessed on main thread var dir: Directory? = null - content.observeForever { - if (it.directories.size == 1) dir = it.directories[0] + onMain { + content.observeForever { + if (it.directories.size == 1) dir = it.directories[0] + } } tree.createDirectory("foo") - while (dir == null) { - idle() + onMain { + while (dir == null) { + idle() + } + assertThat(dir?.name).isEqualTo("foo") } - assertThat(dir?.name).isEqualTo("foo") } @Test @@ -100,13 +108,18 @@ abstract class TreeAbstractTest { open fun removeDirLive() { tree.createDirectory("foo") val content = tree.liveList() + // Only accessed on main var done = false - content.observeForever { - if (it.directories.isEmpty()) done = true + onMain { + content.observeForever { + if (it.directories.isEmpty()) done = true + } } assertThat(tree.removeDirectory("foo")).isTrue() - while (!done) { - idle() + onMain { + while (!done) { + idle() + } } } @@ -166,16 +179,23 @@ abstract class TreeAbstractTest { Assume.assumeTrue(supportSymlinks()) val content = tree.liveList() + // Only accessed on main var link: Link? = null - content.observeForever { - if (it.links.size == 1) link = it.links[0] + onMain { + content.observeForever { + if (it.links.size == 1) link = it.links[0] + } } val dir = tree.createDirectory("dir") tree.createLink("link", "dir") - while (link == null) { - idle() + onMain { + while (link == null) { + idle() + } + assertThat((link?.resolve() as Link.DirectoryTarget).directory).isEqualTo( + dir + ) } - assertThat((link?.resolve() as Link.DirectoryTarget).directory).isEqualTo(dir) } @Test @@ -336,4 +356,8 @@ abstract class TreeAbstractTest { protected abstract fun supportSymlinks(): Boolean protected abstract fun idle() + + protected open fun onMain(block: () -> Unit) { + block.invoke() + } } |
