未验证 提交 cb6e7a7b 编写于 作者: B Ben Weiss

Introduce tests

* Update testing dependencies
* Add testing dependencies to WorkManager sample
* Add CleanupWorkerTest
* Add Test for BaseFilterWorker
* Test periodic execution
上级 05a22599
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -55,4 +55,10 @@ dependencies {
implementation deps.glide.runtime
testImplementation deps.junit
androidTestImplementation deps.atsl.ext_junit_ktx
androidTestImplementation deps.atsl.runner
androidTestImplementation deps.atsl.rules
androidTestImplementation deps.work.testing
}
/*
* Copyright 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.background.workers
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.work.Constraints
import androidx.work.PeriodicWorkRequestBuilder
import androidx.work.WorkInfo
import androidx.work.WorkManager
import androidx.work.testing.TestListenableWorkerBuilder
import androidx.work.testing.WorkManagerTestInitHelper
import kotlinx.coroutines.runBlocking
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import java.io.File
import java.io.FilenameFilter
import java.util.concurrent.TimeUnit.HOURS
/** Tests for [CleanupWorker]. */
@RunWith(AndroidJUnit4::class)
class CleanupWorkerTest {
private var context: Context = ApplicationProvider.getApplicationContext()
private lateinit var worker: CleanupWorker
@Before
fun setUp() {
worker = TestListenableWorkerBuilder<CleanupWorker>(context).build()
}
@After
fun tearDown() {
val existingFiles = listFilesInTargetDir() ?: return
for (file in existingFiles) {
file.delete()
}
}
@Test
fun testPeriodicCleanup() {
WorkManagerTestInitHelper.initializeTestWorkManager(context)
val testDriver = WorkManagerTestInitHelper.getTestDriver(context)!!
val workManager = WorkManager.getInstance(context)
val constraints = Constraints.Builder()
.setRequiresCharging(true)
.setRequiresBatteryNotLow(true)
.setRequiresDeviceIdle(true).build()
val request = PeriodicWorkRequestBuilder<CleanupWorker>(24, HOURS)
.setConstraints(constraints).build()
workManager.enqueue(request).result.get()
with(testDriver) {
setPeriodDelayMet(request.id)
setAllConstraintsMet(request.id)
}
val workInfo = workManager.getWorkInfoById(request.id).get()
assertEquals(workInfo.state, WorkInfo.State.RUNNING)
}
@Test
fun testCleanupWorker_pngAreRemoved() {
// Create an empty test file that should be caught by CleanupWorker and removed
for (i in 0..9) {
createFileUnderTest("test$i.png")
}
// Run test
runBlocking {
worker.doWork()
}
// Assert that file has been removed
val remainingFiles = countPngInTargetDir()
assertTrue(remainingFiles == 0)
}
@Test
fun testCleanupWorker_nonPngRemain() {
// Create an empty test file that should NOT be caught by CleanupWorker and removed
for (i in 0..9) {
createFileUnderTest("test$i")
createFileUnderTest("test$i.png")
}
//Run test
runBlocking {
worker.doWork()
}
val existingPng = countPngInTargetDir()
assertTrue(existingPng == 0)
val existingFiles = countFilesInTargetDir()
assertTrue(existingFiles == 10)
}
/** Create the file for testing the [CleanupWorker]. */
private fun createFileUnderTest(fileName: String): File {
val testFile = File("${worker.targetDirectory.path}/$fileName")
testFile.createNewFile()
assertTrue("Created file doesn't exist", testFile.exists())
return testFile
}
private fun listFilesInTargetDir(filter: FilenameFilter? = null) =
worker.targetDirectory.listFiles(filter)
private fun countFilesInTargetDir(filter: FilenameFilter? = null) =
listFilesInTargetDir(filter)?.size
private fun countPngInTargetDir() =
listFilesInTargetDir { _, name -> name.endsWith(".png") }?.size
}
\ No newline at end of file
/*
* Copyright 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.background.workers.filters
import android.content.Context
import android.graphics.Bitmap
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.work.ListenableWorker.Result.Failure
import androidx.work.ListenableWorker.Result.Success
import androidx.work.WorkerParameters
import androidx.work.testing.TestWorkerBuilder
import androidx.work.workDataOf
import com.example.background.Constants
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
import java.lang.RuntimeException
import java.util.concurrent.Executors.newSingleThreadExecutor
@RunWith(AndroidJUnit4::class)
class BaseFilterWorkerTest {
private lateinit var worker: TestBaseFilterWorker
private val context: Context = ApplicationProvider.getApplicationContext()
@Test
fun testFiltering_withExistingUri() {
val worker = TestWorkerBuilder<TestBaseFilterWorker>(
context,
newSingleThreadExecutor(),
workDataOf(Constants.KEY_IMAGE_URI to "file:///android_asset/watson.jpg")
).build()
val result = worker.doWork()
assertTrue(result is Success)
}
@Test
fun testFiltering_invalidUri() {
worker = TestWorkerBuilder<TestBaseFilterWorker>(
context,
newSingleThreadExecutor(),
inputData = workDataOf(Constants.KEY_IMAGE_URI to "file:///android_asset/invalid")
).build()
val result = worker.doWork()
assertTrue(result is Failure)
}
@Test(expected = IllegalArgumentException::class)
fun testFiltering_missingUri() {
worker = TestWorkerBuilder<TestBaseFilterWorker>(context, newSingleThreadExecutor()).build()
worker.doWork() // throws Exception
}
}
/** Implementation of [BaseFilterWorker] for tests. GNDN */
class TestBaseFilterWorker(
context: Context,
workerParameters: WorkerParameters
) : BaseFilterWorker(context, workerParameters) {
// Don't filter, just return the same bitmap
override fun applyFilter(input: Bitmap) = input
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ package com.example.background.workers
import android.content.Context
import android.util.Log
import androidx.annotation.VisibleForTesting
import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters
import com.example.background.Constants
......@@ -29,6 +30,9 @@ import java.io.File
class CleanupWorker(appContext: Context, workerParams: WorkerParameters) :
CoroutineWorker(appContext, workerParams) {
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
internal val targetDirectory = File(applicationContext.filesDir, Constants.OUTPUT_PATH)
override suspend fun doWork(): Result {
return withContext(Dispatchers.IO) {
try {
......@@ -43,7 +47,7 @@ class CleanupWorker(appContext: Context, workerParams: WorkerParameters) :
/** Removes pngs from the app's files directory */
private fun cleanupDirectory() {
File(applicationContext.filesDir, Constants.OUTPUT_PATH).apply {
targetDirectory.apply {
if (exists()) {
listFiles()?.forEach { file ->
if (file.name.endsWith(".png")) {
......
......@@ -31,9 +31,9 @@ import android.util.Log
import androidx.annotation.StringRes
import androidx.annotation.VisibleForTesting
import androidx.core.app.NotificationCompat.Builder
import androidx.work.CoroutineWorker
import androidx.work.ForegroundInfo
import androidx.work.WorkManager
import androidx.work.Worker
import androidx.work.WorkerParameters
import androidx.work.workDataOf
import com.example.background.Constants
......@@ -46,16 +46,16 @@ import java.io.InputStream
import java.util.UUID
abstract class BaseFilterWorker(context: Context, parameters: WorkerParameters) :
CoroutineWorker(context, parameters) {
Worker(context, parameters) {
private val notificationManager =
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
override suspend fun doWork(): Result {
override fun doWork(): Result {
val resourceUri = inputData.getString(Constants.KEY_IMAGE_URI) ?:
throw IllegalArgumentException("Invalid input uri")
return try {
setForeground(createForegroundInfo())
setForegroundAsync(createForegroundInfo())
val inputStream = inputStreamFor(applicationContext, resourceUri)
val bitmap = BitmapFactory.decodeStream(inputStream)
val output = applyFilter(bitmap)
......@@ -64,7 +64,7 @@ abstract class BaseFilterWorker(context: Context, parameters: WorkerParameters)
Result.success(workDataOf(Constants.KEY_IMAGE_URI to outputUri.toString()))
} catch (fileNotFoundException: FileNotFoundException) {
Log.e(TAG, "Failed to decode input stream", fileNotFoundException)
throw RuntimeException("Failed to decode input stream", fileNotFoundException)
Result.failure()
} catch (throwable: Throwable) {
Log.e(TAG, "Error applying filter", throwable)
Result.failure()
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
......@@ -27,10 +27,10 @@ versions.annotations = "1.0.0"
versions.apache_commons = "2.5"
versions.appcompat = "1.2.0-alpha02"
versions.arch_core = "2.1.0"
versions.atsl_core = "1.2.0"
versions.atsl_junit = "1.1.1"
versions.atsl_rules = "1.2.0"
versions.atsl_runner = "1.2.0"
versions.atsl_core = "1.3.0"
versions.atsl_junit = "1.1.2"
versions.atsl_rules = "1.3.0"
versions.atsl_runner = "1.3.0"
versions.benchmark = "1.1.0-alpha01"
versions.cardview = "1.0.0"
versions.constraint_layout = "2.0.0-alpha2"
......@@ -92,6 +92,7 @@ deps.arch_core = arch_core
def atsl = [:]
atsl.core = "androidx.test:core:$versions.atsl_core"
atsl.ext_junit = "androidx.test.ext:junit:$versions.atsl_junit"
atsl.ext_junit_ktx = "androidx.test.ext:junit-ktx:$versions.atsl_junit"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_rules"
deps.atsl = atsl
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册