diff options
author | Allan Wang <me@allanwang.ca> | 2019-06-07 13:20:02 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-07 13:20:02 -0400 |
commit | f6dd40662ce3cc84b2c47ceecc0983f93e47384d (patch) | |
tree | 99b563b8c234330d2bbbc0145f086d8691ee9376 /core/src/test | |
parent | 1e3cb74579a3297460cd4085c57942138c5805a2 (diff) | |
parent | 5d86d9089697b152192b2786fbe0c708dd8b5e2b (diff) | |
download | kau-f6dd40662ce3cc84b2c47ceecc0983f93e47384d.tar.gz kau-f6dd40662ce3cc84b2c47ceecc0983f93e47384d.tar.bz2 kau-f6dd40662ce3cc84b2c47ceecc0983f93e47384d.zip |
Merge pull request #163 from AllanWang/feature/progressanimator
Feature/progressanimator
Diffstat (limited to 'core/src/test')
-rw-r--r-- | core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt b/core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt new file mode 100644 index 0000000..60f8680 --- /dev/null +++ b/core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt @@ -0,0 +1,75 @@ +package ca.allanwang.kau.ui + +import org.junit.Test +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertTrue + +class ProgressAnimatorTest { + + private fun ProgressAnimator.test() { + startActions.runAll() + var value = 0f + while (value < 1f) { + apply(value) + value += 0.05f + } + apply(1f) + endActions.runAll() + } + + @Test + fun `basic run`() { + var i = 0f + ProgressAnimator.ofFloat { + withAnimator { + i = it + } + }.test() + assertEquals(1f, i) + } + + @Test + fun `start end hooks`() { + var i = 0 + ProgressAnimator.ofFloat { + withStartAction { i = 1 } + withDisposableAnimator { assertEquals(1, i); true } + withEndAction { + assertEquals(0, animatorCount, "Disposable animator not removed") + i = 2 + } + }.test() + assertEquals(2, i) + } + + @Test + fun `disposable actions`() { + var i = 0f + ProgressAnimator.ofFloat { + withDisposableAnimator { + i = if (it < 0.5f) it else 0.5f + i > 0.5f + } + withAnimator { + assertEquals(Math.min(it, 0.5f), i) + } + }.test() + } + + @Test + fun `point action`() { + var called = false + var i = 0f + ProgressAnimator.ofFloat { + withPointAnimator(0.5f) { + assertFalse(called) + i = it + called = true + } + }.test() + assertTrue(called) + assertTrue(i > 0.5f) + } + +}
\ No newline at end of file |