1 package com.airbnb.lottie.compose 2 3 import com.airbnb.lottie.LottieComposition 4 import com.airbnb.lottie.LottieCompositionFactory 5 import org.junit.Assert.* 6 import org.junit.Before 7 import org.junit.Test 8 import org.junit.runner.RunWith 9 import org.robolectric.RobolectricTestRunner 10 11 @RunWith(RobolectricTestRunner::class) 12 class LottieCompositionResultImplTest { 13 14 private lateinit var composition: LottieComposition 15 16 @Before setupnull17 fun setup() { 18 composition = LottieCompositionFactory.fromJsonStringSync(CompositionFixtures.Rect, null).value!! 19 } 20 21 @Test testLoadingnull22 fun testLoading() { 23 val result = LottieCompositionResultImpl() 24 assertTrue(result.isLoading) 25 } 26 27 @Test testFailnull28 fun testFail() { 29 val result = LottieCompositionResultImpl() 30 val e = IllegalStateException("Fail") 31 result.completeExceptionally(e) 32 assertFalse(result.isSuccess) 33 assertTrue(result.isFailure) 34 assertNull(result.value) 35 assertEquals(e, result.error) 36 } 37 38 @Test testCompletednull39 fun testCompleted() { 40 val result = LottieCompositionResultImpl() 41 result.complete(composition) 42 assertFalse(result.isFailure) 43 assertTrue(result.isSuccess) 44 assertEquals(composition, result.value) 45 } 46 47 @Test testCompletedThenFailnull48 fun testCompletedThenFail() { 49 val result = LottieCompositionResultImpl() 50 result.complete(composition) 51 result.completeExceptionally(IllegalStateException("Fail")) 52 assertFalse(result.isFailure) 53 assertTrue(result.isSuccess) 54 assertEquals(composition, result.value) 55 } 56 57 @Test testErrorThenCompletednull58 fun testErrorThenCompleted() { 59 val result = LottieCompositionResultImpl() 60 val e = IllegalStateException("Fail") 61 result.completeExceptionally(e) 62 result.complete(composition) 63 assertFalse(result.isSuccess) 64 assertTrue(result.isFailure) 65 assertNull(result.value) 66 assertEquals(e, result.error) 67 } 68 }