Skip to content

Instantly share code, notes, and snippets.

@CristianMG
Created September 4, 2019 06:11
Show Gist options
  • Select an option

  • Save CristianMG/2c6ec62c7b65d6b7d7351d04f99f23ff to your computer and use it in GitHub Desktop.

Select an option

Save CristianMG/2c6ec62c7b65d6b7d7351d04f99f23ff to your computer and use it in GitHub Desktop.
@RunWith(AndroidJUnit4::class)
class TestImageLoader : AutoCloseKoinTest() {
private val imageLoader: ImageLoader by inject()
@Before
fun before() {
loadKoinModules(testModule)
}
@Test
fun `image loader return a error`() {
val imageView = mockk<ImageView>(relaxed = true)
imageLoader.network {
url { FAKE_IMAGE_URL }
error { PLACE_HOLDER_ID }
placeholder { PLACE_HOLDER_ID }
errorCallback { {} }
successCallback { { Assert.fail("The image loader must return an error") } }
}.load(imageView)
verify {
imageView.setTag(
ImageLoader.IMAGE_LOADER_TAG,
ImageLoader.StateLoaded.LoadedFromNetwork(FAKE_IMAGE_URL, PLACE_HOLDER_ID, PLACE_HOLDER_ID, false)
)
}
}
@Test
fun `image loader return a success`() {
val imageView = mockk<ImageView>(relaxed = true)
imageLoader.network {
url { OK_IMAGE_URL }
error { PLACE_HOLDER_ID }
placeholder { PLACE_HOLDER_ID }
errorCallback { { Assert.fail("The image loader must return an success ${it?.message}") } }
successCallback { {} }
}.load(imageView)
verify {
imageView.setTag(
ImageLoader.IMAGE_LOADER_TAG,
ImageLoader.StateLoaded.LoadedFromNetwork(OK_IMAGE_URL, PLACE_HOLDER_ID, PLACE_HOLDER_ID, true)
)
}
}
companion object {
const val FAKE_IMAGE_URL = ""
const val OK_IMAGE_URL = "https://teorico.net/images/test-dgt-1.png"
const val PLACE_HOLDER_ID = R.drawable.ic_image_placeholder
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment