Skip to content

Commit

Permalink
Rework DataHolder unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
1ud0v1c committed Aug 15, 2023
1 parent 80a6e88 commit 8294084
Showing 1 changed file with 36 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.ludovic.vimont.nasaapod.preferences

import org.junit.After
import org.junit.Assert
import org.junit.Test
import org.junit.runner.RunWith
import org.koin.core.context.GlobalContext
import org.koin.test.KoinTest
import org.koin.test.inject
import org.robolectric.RobolectricTestRunner
import java.util.UUID
import kotlin.test.assertEquals

@RunWith(RobolectricTestRunner::class)
class DataHolderTest : KoinTest {
private val KEY_RANDOM_STRING = "nasa.apod.unit.test"
private val keyOfRandomString = "nasa.apod.unit.test"
private val dataHolder: DataHolder by inject()

@After
Expand All @@ -21,11 +21,40 @@ class DataHolderTest : KoinTest {
}

@Test
fun testInsert() {
fun `get should return stored data`() {
// Given
val randomString = "lorem ipsum"
dataHolder[keyOfRandomString] = randomString

// When
val result = dataHolder.get<String>(keyOfRandomString)

// Then
assertEquals(
expected = randomString,
actual = result,
)
}

@Test
fun `set should put data in SharedPreferences`() {
// Given
val defaultString = "default"
val randomString: String = UUID.randomUUID().toString()
Assert.assertEquals(defaultString, dataHolder[KEY_RANDOM_STRING, defaultString])
dataHolder[KEY_RANDOM_STRING] = randomString
Assert.assertEquals(randomString, dataHolder[KEY_RANDOM_STRING, defaultString])
val randomString = UUID.randomUUID().toString()
val firstString = dataHolder[keyOfRandomString, defaultString]

// When
dataHolder[keyOfRandomString] = randomString

// Then
assertEquals(
expected = defaultString,
actual = firstString,
)
assertEquals(
expected = randomString,
actual = dataHolder[keyOfRandomString, defaultString],
)
}

}

0 comments on commit 8294084

Please sign in to comment.