Skip to content

Commit e7f5823

Browse files
jeffreydelooffDanny Lamarti
authored andcommitted
Instrumentation tests
1 parent 6b5a487 commit e7f5823

File tree

11 files changed

+256
-54
lines changed

11 files changed

+256
-54
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ buildscript {
88

99
}
1010
dependencies {
11-
classpath 'com.android.tools.build:gradle:3.4.1'
11+
classpath 'com.android.tools.build:gradle:3.4.0'
1212
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1313
}
1414
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Tue Jun 04 11:28:29 CEST 2019
1+
#Thu Jun 06 14:52:37 CEST 2019
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

library/build.gradle

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,15 @@ dependencies {
2424

2525
dependencies {
2626
testImplementation 'junit:junit:4.12'
27-
androidTestImplementation 'androidx.test:runner:1.2.0'
27+
testImplementation "androidx.test:core:1.2.0"
28+
testImplementation "org.jetbrains.kotlin:kotlin-test:1.3.31"
29+
testImplementation "androidx.test.ext:junit-ktx:1.1.1"
30+
31+
androidTestImplementation "org.jetbrains.kotlin:kotlin-test:1.3.31"
32+
33+
androidTestImplementation "androidx.test:core:1.2.0"
34+
androidTestImplementation "androidx.test:runner:1.2.0"
35+
androidTestImplementation "androidx.test:rules:1.2.0"
36+
androidTestImplementation "androidx.test.ext:junit-ktx:1.1.1"
2837
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
2938
}

library/src/androidTest/java/nl/elements/objectstore/ExampleInstrumentedTest.kt

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
package nl.elements.objectstore
2+
3+
import android.content.Context
4+
import androidx.test.platform.app.InstrumentationRegistry
5+
import nl.elements.objectstore.stores.PreferencesStore
6+
import org.junit.After
7+
import org.junit.Before
8+
import org.junit.Test
9+
import kotlin.test.assertEquals
10+
import kotlin.test.assertTrue
11+
12+
class PreferencesStoreTest {
13+
14+
private lateinit var store: PreferencesStore
15+
16+
@Before
17+
fun setupTests() {
18+
store = createStore()
19+
}
20+
21+
@After
22+
fun clear() {
23+
createStore().toPreferences().edit().clear().commit()
24+
}
25+
26+
@Test
27+
fun keyContainsInStore() {
28+
val key = "contains"
29+
val name = "Danny"
30+
31+
store.set(key, name)
32+
33+
assertTrue(store.contains(key))
34+
}
35+
36+
@Test
37+
fun writeReadString() {
38+
val value = "Danny"
39+
40+
val result = store.setAndGet("string", value)
41+
42+
assertEquals(value, result)
43+
}
44+
45+
@Test
46+
fun writeReadBoolean() {
47+
val value = true
48+
49+
val result = store.setAndGet("boolean", value)
50+
51+
assertEquals(value, result)
52+
}
53+
54+
@Test
55+
fun testWriteReadInt() {
56+
val value = 1
57+
58+
val result = store.setAndGet("integer", value)
59+
60+
assertEquals(value, result)
61+
}
62+
63+
@Test
64+
fun testWriteReadLong() {
65+
val value = 1L
66+
67+
val result = store.setAndGet("long", value)
68+
69+
assertEquals(value, result)
70+
}
71+
72+
@Test
73+
fun testWriteReadFloat() {
74+
val value = 1f
75+
76+
val result = store.setAndGet("float", value)
77+
78+
assertEquals(value, result)
79+
}
80+
81+
@Test
82+
fun testWriteReadStringSet() {
83+
val value = setOf("1", "2", "3")
84+
85+
val result = store.setAndGet("stringSet", value)
86+
87+
assertEquals(value, result)
88+
}
89+
90+
@Test
91+
fun getAllAsMap() {
92+
val key = "name"
93+
val value = "Danny"
94+
95+
store.set(key, value)
96+
97+
val actual = store.keys
98+
99+
assertTrue(actual.isNotEmpty())
100+
assertEquals(1, actual.size)
101+
assertTrue(actual.contains(key))
102+
}
103+
}
104+
105+
private fun <T : Any> ObjectStore.setAndGet(key: String, value: T): T {
106+
set(key, value)
107+
return this[key]
108+
}
109+
110+
private fun createStore(): PreferencesStore {
111+
val context = InstrumentationRegistry.getInstrumentation().context
112+
val preferences = context.getSharedPreferences("test", Context.MODE_PRIVATE)
113+
114+
return PreferencesStore(preferences)
115+
}

library/src/main/java/nl/elements/objectstore/Converter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ interface Converter {
3838

3939
}
4040

41-
}
41+
}

library/src/main/java/nl/elements/objectstore/stores/MemoryStore.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ package nl.elements.objectstore.stores
22

33
import nl.elements.objectstore.Converter
44
import nl.elements.objectstore.ObjectStore
5-
import nl.elements.objectstore.ObjectStore.Event.*
5+
import nl.elements.objectstore.ObjectStore.Event.Removed
6+
import nl.elements.objectstore.ObjectStore.Event.Updated
67
import nl.elements.objectstore.Transformer
78
import nl.elements.objectstore.writeToBytes
8-
import java.io.ByteArrayInputStream
99

1010
class MemoryStore(
1111
override val converter: Converter = Converter.DEFAULT,

library/src/main/java/nl/elements/objectstore/stores/PreferencesStore.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package nl.elements.objectstore.stores
22

3-
43
import android.content.SharedPreferences
54
import android.util.Base64
65
import io.reactivex.Observable
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package nl.elements.objectstore
2+
3+
import nl.elements.objectstore.Converter.Companion.DEFAULT
4+
import org.junit.Test
5+
import java.io.ByteArrayOutputStream
6+
import kotlin.test.assertEquals
7+
8+
class ConverterTest {
9+
@Test
10+
fun testConverter() {
11+
val outputStream = ByteArrayOutputStream()
12+
val key = "testKey"
13+
val input = "test"
14+
15+
DEFAULT.serialize(key, input, outputStream)
16+
17+
val result = DEFAULT.deserialize<String>(key, outputStream.toByteArray().inputStream())
18+
19+
assertEquals(input, result)
20+
}
21+
}

library/src/test/java/nl/elements/objectstore/ExampleUnitTest.kt

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

0 commit comments

Comments
 (0)