aboutsummaryrefslogtreecommitdiff
path: root/core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2018-09-11 13:37:12 -0400
committerAllan Wang <me@allanwang.ca>2018-09-11 13:37:12 -0400
commitd64c47f32931dce1c196f0b7a26ae5d1fd1af72e (patch)
treef11392808e64a2c507e02cf5ad90e255ba473e64 /core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt
parenta83dd51f545dda905194ea84caed6e2906b0f06f (diff)
downloadkau-d64c47f32931dce1c196f0b7a26ae5d1fd1af72e.tar.gz
kau-d64c47f32931dce1c196f0b7a26ae5d1fd1af72e.tar.bz2
kau-d64c47f32931dce1c196f0b7a26ae5d1fd1af72e.zip
Add more tests
Diffstat (limited to 'core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt')
-rw-r--r--core/src/test/kotlin/ca/allanwang/kau/ui/ProgressAnimatorTest.kt75
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