Skip to content

Commit d227ed8

Browse files
committed
Fixing tests
1 parent 869e152 commit d227ed8

12 files changed

Lines changed: 297 additions & 167 deletions

File tree

lib/src/main/java/uk/co/glass_software/android/shared_preferences/persistence/preferences/SharedPreferenceStore.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,13 @@ internal class SharedPreferenceStore(prefs: Prefs,
132132
try {
133133
(if (it.contains(key)) {
134134
when {
135-
isBooleanClass(objectClass) -> it.getBoolean(key, (defaultValue as Boolean?) ?: false)
136-
isFloatClass(objectClass) -> it.getFloat(key, (defaultValue as Float?) ?: 0f)
137-
isLongClass(objectClass) -> it.getLong(key, (defaultValue as Long?) ?: 0L)
138-
isIntClass(objectClass) -> it.getInt(key, (defaultValue as Int?) ?: 0)
139-
isStringClass(objectClass) -> it.getString(key, (defaultValue as String?))
140-
else -> deserialise(it.getString(key, null), objectClass) ?: defaultValue
141-
} as O?
135+
isBooleanClass(objectClass) -> it.getBoolean(key, false)
136+
isFloatClass(objectClass) -> it.getFloat(key, 0f)
137+
isLongClass(objectClass) -> it.getLong(key, 0L)
138+
isIntClass(objectClass) -> it.getInt(key, 0)
139+
isStringClass(objectClass) -> it.getString(key, null)
140+
else -> deserialise(it.getString(key, null), objectClass)
141+
} as O? ?: defaultValue
142142
} else defaultValue)
143143
} catch (e: Exception) {
144144
logger.e(this, e)

lib/src/main/java/uk/co/glass_software/android/shared_preferences/persistence/serialisation/Base64Serialiser.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ import java.io.*
2828
class Base64Serialiser(private val logger: Logger,
2929
private val base64: CustomBase64) : Serialiser {
3030

31-
override fun canHandleType(targetClass: Class<*>) = Serializable::class.java.isAssignableFrom(targetClass)
31+
override fun canHandleType(targetClass: Class<*>) =
32+
targetClass.isPrimitive || Serializable::class.java.isAssignableFrom(targetClass)
3233

3334
override fun canHandleSerialisedFormat(serialised: String) =
3435
serialised.startsWith(PREFIX) && serialised.contains(DELIMITER)
@@ -37,8 +38,8 @@ class Base64Serialiser(private val logger: Logger,
3738
override fun <O : Any> serialise(deserialised: O): String {
3839
val targetClass = deserialised::class.java
3940

40-
if (!canHandleType(targetClass)) {
41-
throw IllegalArgumentException("Cannot serialise objects of type:$targetClass")
41+
require(canHandleType(targetClass)) {
42+
"Cannot serialise objects of type:$targetClass"
4243
}
4344

4445
try {
@@ -106,7 +107,7 @@ class Base64Serialiser(private val logger: Logger,
106107
}
107108

108109
private companion object {
109-
private val PREFIX = "BASE_64_"
110-
private val DELIMITER = "_START_DATA_"
110+
private const val PREFIX = "BASE_64_"
111+
private const val DELIMITER = "_START_DATA_"
111112
}
112113
}

lib/src/test/java/uk/co/glass_software/android/shared_preferences/StoreKey.kt

Lines changed: 0 additions & 34 deletions
This file was deleted.

lib/src/test/java/uk/co/glass_software/android/shared_preferences/persistence/base/StoreEntryUnitTest.kt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,15 @@
2121

2222
package uk.co.glass_software.android.shared_preferences.persistence.base
2323

24+
import com.nhaarman.mockitokotlin2.eq
25+
import com.nhaarman.mockitokotlin2.isNull
26+
import com.nhaarman.mockitokotlin2.mock
27+
import com.nhaarman.mockitokotlin2.whenever
2428
import junit.framework.Assert.*
2529
import org.junit.Before
2630
import org.junit.Test
27-
import org.mockito.Matchers.eq
28-
import org.mockito.Mockito.*
2931
import uk.co.glass_software.android.shared_preferences.persistence.preferences.StoreEntry
32+
import uk.co.glass_software.android.shared_preferences.test.verifyWithContext
3033

3134
class StoreEntryUnitTest {
3235

@@ -43,17 +46,17 @@ class StoreEntryUnitTest {
4346
@Before
4447
@Throws(Exception::class)
4548
fun setUp() {
46-
mockStore = mock(KeyValueStore::class.java)
49+
mockStore = mock()
4750
target = TestEntry(mockStore)
4851
}
4952

5053
@Test
5154
fun testSaveNull() {
5255
target.save(null)
5356

54-
verify(mockStore).saveValue<Any>(
57+
verifyWithContext(mockStore).saveValue<Any>(
5558
eq(KEY),
56-
eq(null)
59+
isNull()
5760
)
5861
}
5962

@@ -63,7 +66,7 @@ class StoreEntryUnitTest {
6366

6467
target.save(value)
6568

66-
verify<KeyValueStore>(mockStore).saveValue<Any>(
69+
verifyWithContext(mockStore).saveValue(
6770
eq(KEY),
6871
eq(value)
6972
)
@@ -73,14 +76,14 @@ class StoreEntryUnitTest {
7376
fun testGet() {
7477
val test = "test"
7578

76-
`when`<String>(mockStore.getValue(
79+
whenever(mockStore.getValue(
7780
eq(KEY),
7881
eq(String::class.java)
7982
)).thenReturn(test)
8083

8184
val result = target.get()
8285

83-
verify<KeyValueStore>(mockStore).getValue(
86+
verifyWithContext(mockStore).getValue(
8487
eq(KEY),
8588
eq(String::class.java)
8689
)
@@ -93,15 +96,15 @@ class StoreEntryUnitTest {
9396
val string = "abc"
9497
val defaultValue = "default"
9598

96-
`when`(mockStore.getValue(
99+
whenever(mockStore.getValue(
97100
eq(KEY),
98101
eq(String::class.java),
99102
eq(defaultValue)
100103
)).thenReturn(string)
101104

102105
val result = target.get(defaultValue)
103106

104-
verify<KeyValueStore>(mockStore).getValue(
107+
verifyWithContext(mockStore).getValue(
105108
eq(KEY),
106109
eq(String::class.java),
107110
eq(defaultValue)
@@ -114,7 +117,7 @@ class StoreEntryUnitTest {
114117
fun testDrop() {
115118
target.drop()
116119

117-
verify<KeyValueStore>(mockStore)
120+
verifyWithContext(mockStore)
118121
.deleteValue(eq(KEY))
119122
}
120123

@@ -128,22 +131,19 @@ class StoreEntryUnitTest {
128131
@Test
129132
@Throws(Exception::class)
130133
fun testExists() {
131-
`when`(
134+
whenever(
132135
mockStore.hasValue(eq(KEY))
133136
).thenReturn(true)
134137

135138
assertTrue("Entry should exists", target.exists())
136139

137-
`when`(
140+
whenever(
138141
mockStore.hasValue(eq(KEY))
139142
).thenReturn(false)
140143

141144
assertFalse("Entry should exists", target.exists())
142145

143-
verify<KeyValueStore>(
144-
mockStore,
145-
times(2)
146-
).hasValue(eq(KEY))
146+
verifyWithContext(mockStore).hasValue(eq(KEY))
147147
}
148148

149149
companion object {

lib/src/test/java/uk/co/glass_software/android/shared_preferences/persistence/preferences/SharedPreferenceStoreUnitTest.kt

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,17 @@ package uk.co.glass_software.android.shared_preferences.persistence.preferences
2323

2424
import android.content.SharedPreferences
2525
import android.content.SharedPreferences.Editor
26+
import com.nhaarman.mockitokotlin2.*
2627
import io.reactivex.subjects.BehaviorSubject
2728
import junit.framework.Assert.*
2829
import org.junit.Before
2930
import org.junit.Test
30-
import org.mockito.Mockito.*
31+
import org.mockito.ArgumentMatchers.anyString
3132
import uk.co.glass_software.android.boilerplate.core.utils.delegates.Prefs
3233
import uk.co.glass_software.android.boilerplate.core.utils.log.Logger
3334
import uk.co.glass_software.android.shared_preferences.persistence.serialisation.Serialiser
35+
import uk.co.glass_software.android.shared_preferences.test.verifyNeverWithContext
36+
import uk.co.glass_software.android.shared_preferences.test.verifyWithContext
3437
import java.io.Serializable
3538

3639
class SharedPreferenceStoreUnitTest {
@@ -51,19 +54,19 @@ class SharedPreferenceStoreUnitTest {
5154
@Before
5255
@Throws(Exception::class)
5356
fun setUp() {
54-
mockSharedPrefs = mock(Prefs::class.java)
55-
mockSharedPreferences = mock(SharedPreferences::class.java)
56-
mockBase64Serialiser = mock(Serialiser::class.java)
57-
mockCustomSerialiser = mock(Serialiser::class.java)
57+
mockSharedPrefs = mock()
58+
mockSharedPreferences = mock()
59+
mockBase64Serialiser = mock()
60+
mockCustomSerialiser = mock()
5861
behaviorSubject = BehaviorSubject.create<String>()
5962

60-
mockLogger = mock(Logger::class.java)
61-
mockEditor = mock(Editor::class.java)
63+
mockLogger = mock()
64+
mockEditor = mock()
6265

63-
`when`(mockSharedPreferences.edit())
66+
whenever(mockSharedPreferences.edit())
6467
.thenReturn(mockEditor)
6568

66-
`when`(mockSharedPrefs.file)
69+
whenever(mockSharedPrefs.file)
6770
.thenReturn(mockSharedPreferences)
6871

6972
target = SharedPreferenceStore(
@@ -79,18 +82,18 @@ class SharedPreferenceStoreUnitTest {
7982
private fun addValue() {
8083
val map = mapOf(key to value)
8184

82-
`when`(mockSharedPreferences.all)
85+
whenever(mockSharedPreferences.all)
8386
.thenReturn(map)
8487

85-
`when`(mockSharedPreferences.contains(eq(key)))
88+
whenever(mockSharedPreferences.contains(eq(key)))
8689
.thenReturn(true)
8790

88-
`when`<String>(mockSharedPreferences.getString(
91+
whenever(mockSharedPreferences.getString(
8992
eq(key),
9093
isNull()
9194
)).thenReturn(value)
9295

93-
`when`(mockSharedPrefs.file)
96+
whenever(mockSharedPrefs.file)
9497
.thenReturn(mockSharedPreferences)
9598

9699
//Reset the cache
@@ -107,15 +110,15 @@ class SharedPreferenceStoreUnitTest {
107110
@Test
108111
@Throws(Serialiser.SerialisationException::class)
109112
fun testBase64Read() {
110-
`when`(
113+
whenever(
111114
mockBase64Serialiser.canHandleType(eq(Serializable::class.java))
112115
).thenReturn(true)
113116

114117
addValue()
115118

116119
target.getValue(key, Serializable::class.java)
117120

118-
verify(mockBase64Serialiser)
121+
verifyWithContext(mockBase64Serialiser)
119122
.deserialise(
120123
eq(value),
121124
eq(Serializable::class.java)
@@ -125,26 +128,26 @@ class SharedPreferenceStoreUnitTest {
125128
@Test
126129
@Throws(Serialiser.SerialisationException::class)
127130
fun testNotBase64Read() {
128-
`when`(
131+
whenever(
129132
mockBase64Serialiser.canHandleType(eq(Serializable::class.java))
130133
).thenReturn(false)
131134

132135
addValue()
133136

134137
target.getValue(key, Serializable::class.java)
135138

136-
verify(mockBase64Serialiser, never())
139+
verifyNeverWithContext(mockBase64Serialiser)
137140
.deserialise<Any>(anyString(), any())
138141
}
139142

140143
@Test
141144
fun testDeleteValue() {
142145
addValue()
143146

144-
`when`(mockSharedPreferences.contains(eq(key)))
147+
whenever(mockSharedPreferences.contains(eq(key)))
145148
.thenReturn(true)
146149

147-
`when`(mockEditor.remove(eq(key)))
150+
whenever(mockEditor.remove(eq(key)))
148151
.thenReturn(mockEditor)
149152

150153
target.deleteValue(key)
@@ -163,10 +166,10 @@ class SharedPreferenceStoreUnitTest {
163166
val cachedValues = target.cachedValues
164167
assertFalse("Cached values should not contain the key", cachedValues.containsKey(key))
165168

166-
`when`(mockSharedPreferences.contains(eq(key)))
169+
whenever(mockSharedPreferences.contains(eq(key)))
167170
.thenReturn(false)
168171

169-
`when`<Editor>(mockEditor.putString(
172+
whenever(mockEditor.putString(
170173
eq(key),
171174
eq(value)
172175
)).thenReturn(mockEditor)

0 commit comments

Comments
 (0)