Skip to content

Commit 717441d

Browse files
authored
Simplify asset reader (#408)
1 parent 4830349 commit 717441d

File tree

3 files changed

+9
-22
lines changed

3 files changed

+9
-22
lines changed

app/src/androidTest/java/com/mitteloupe/whoami/localstore/AppKeyValueStore.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.mitteloupe.whoami.localstore
22

33
import com.mitteloupe.whoami.datasource.local.LocalStoreKey.KEY_HISTORY_RECORDS
4-
import com.mitteloupe.whoami.test.asset.assetReader
4+
import com.mitteloupe.whoami.test.asset.getAssetAsString
55
import com.mitteloupe.whoami.test.localstore.KeyValueStore
66

77
const val KEY_VALUE_SAVED_HISTORY = "Saved history"
@@ -15,5 +15,5 @@ class AppKeyValueStore : KeyValueStore() {
1515
(KEY_HISTORY_RECORDS to assetAsString("localstore/history_no_records.json"))
1616
)
1717

18-
private fun assetAsString(assetName: String) = assetReader.getAssetAsString(assetName)
18+
private fun assetAsString(assetName: String) = getAssetAsString(assetName)
1919
}

architecture/instrumentation-test/src/main/java/com/mitteloupe/whoami/test/asset/AssetReader.kt

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,12 @@ package com.mitteloupe.whoami.test.asset
22

33
import androidx.test.platform.app.InstrumentationRegistry
44
import java.io.InputStream
5-
import java.io.InputStreamReader
65

7-
val assetReader = AssetReader()
8-
9-
class AssetReader {
10-
fun getAssetAsString(name: String): String =
11-
javaClass.classLoader!!.getResourceAsStream("assets/$name").use { stream ->
12-
InputStreamReader(stream).use { reader ->
13-
reader.readText()
14-
}
15-
}
16-
}
6+
fun getAssetAsString(name: String): String =
7+
processAssetStream(name) { stream -> stream.bufferedReader().readText() }
178

189
fun <OUTPUT> processAssetStream(
1910
filename: String,
20-
performOnStream: (inputString: InputStream) -> OUTPUT
21-
): OUTPUT {
22-
val stream = InstrumentationRegistry.getInstrumentation().context.assets.open(filename)
23-
val result = performOnStream(stream)
24-
stream.close()
25-
return result
26-
}
11+
performOnStream: (inputStream: InputStream) -> OUTPUT
12+
): OUTPUT = InstrumentationRegistry.getInstrumentation().context.assets.open(filename)
13+
.use { stream -> performOnStream(stream) }

architecture/instrumentation-test/src/main/java/com/mitteloupe/whoami/test/server/response/SimpleResponseFactory.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.mitteloupe.whoami.test.server.response
22

3-
import com.mitteloupe.whoami.test.asset.assetReader
3+
import com.mitteloupe.whoami.test.asset.getAssetAsString
44
import com.mitteloupe.whoami.test.server.MockResponse
55

66
data class SimpleResponseFactory(
@@ -12,7 +12,7 @@ data class SimpleResponseFactory(
1212
if (bodyFileName == null) {
1313
""
1414
} else {
15-
assetReader.getAssetAsString(bodyFileName)
15+
getAssetAsString(bodyFileName)
1616
}
1717
}
1818

0 commit comments

Comments
 (0)