From 9e3b2051be2d923c9bad85fcf287bd80d960b437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adriel=20Caf=C3=A9?= Date: Sun, 20 Oct 2019 20:42:59 -0300 Subject: [PATCH] chore: ktlint (#27) * chore: setup ktlint * refactor: move test to correct package --- android-module.gradle | 5 +++ build.gradle | 8 ++-- buildSrc/src/main/java/dependencies.kt | 5 ++- .../java/com/jcaique/data/di/injection.kt | 1 - .../data/networking/HttpErrorHandler.kt | 8 ++-- .../data/networking/OkHttpClientProvider.kt | 1 - .../jcaique/data/responses/DialectResponse.kt | 8 ++-- .../jcaique/data/responses/RegionResponse.kt | 4 +- .../jcaique/data/service/DialetusGateway.kt | 6 +-- .../dialects/DialectsInfrastructure.kt | 3 +- .../service/regions/RegionsInfrastructure.kt | 3 +- .../data/regions/RegionsInfrastructureTest.kt | 7 ++-- .../domain/dialects/DialectsService.kt | 8 ++-- .../java/com/jcaique/domain/models/Dialect.kt | 9 ++--- .../jcaique/domain/regions/RegionsService.kt | 2 +- kotlin-module.gradle | 3 +- .../presentation/ExampleInstrumentedTest.kt | 6 +-- .../com/jcaique/presentation/di/injection.kt | 2 +- .../presentation/regions/RegionAdapter.kt | 2 +- .../presentation/regions/RegionsActivity.kt | 4 +- .../presentation/regions/RegionsViewModel.kt | 4 +- .../utils/DividerItemDecoration.kt | 39 ++++++++++--------- .../utils/dataflow/CommandsProcessor.kt | 2 +- .../utils/dataflow/StateMachine.kt | 4 +- .../utils/dataflow/StateTransition.kt | 10 ++--- .../utils/dataflow/TaskExecutor.kt | 4 +- .../presentation/common/flowTesting.kt | 6 +-- .../presentation/common/suspendableUtils.kt | 2 +- .../dataflow/CommandsProcessorTests.kt | 4 +- .../StateMachineTests.kt | 12 +++--- 30 files changed, 94 insertions(+), 88 deletions(-) rename presentation/src/test/java/com/jcaique/presentation/{regions => dataflow}/StateMachineTests.kt (96%) diff --git a/android-module.gradle b/android-module.gradle index 89003ab..66c0317 100644 --- a/android-module.gradle +++ b/android-module.gradle @@ -1,5 +1,6 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: "org.jlleitschuh.gradle.ktlint" repositories { mavenCentral() @@ -84,6 +85,10 @@ androidExtensions { experimental = true } +ktlint { + android = true +} + configurations.all { resolutionStrategy { forcedModules = AndroidModule.main.toArray() diff --git a/build.gradle b/build.gradle index 0fbdcce..29eab8e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,13 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - buildscript { repositories { mavenLocal() google() - maven { url "https://kotlin.bintray.com/kotlinx" } + maven { url 'https://kotlin.bintray.com/kotlinx' } maven { url 'https://jitpack.io' } maven { url 'https://maven.fabric.io/public' } maven { url 'https://dl.bintray.com/android/android-tools' } + maven { url 'https://plugins.gradle.org/m2/' } jcenter() } @@ -16,6 +15,7 @@ buildscript { classpath BuildPlugins.androidGradlePlugin classpath BuildPlugins.kotlinGradlePlugin classpath BuildPlugins.kotlinxSerializiationPlugin + classpath BuildPlugins.ktlint } } @@ -39,4 +39,4 @@ allprojects { task clean(type: Delete) { delete rootProject.buildDir -} \ No newline at end of file +} diff --git a/buildSrc/src/main/java/dependencies.kt b/buildSrc/src/main/java/dependencies.kt index 1d2f57a..c56bd13 100644 --- a/buildSrc/src/main/java/dependencies.kt +++ b/buildSrc/src/main/java/dependencies.kt @@ -3,6 +3,7 @@ object Versions { const val kotlin = "1.3.50" const val androidGradleSupport = "3.5.1" const val gmsSupport = "4.3.2" + const val ktlint = "9.0.0" const val okhttp4 = "4.2.1" const val retrofit2 = "2.6.2" @@ -92,8 +93,8 @@ object BuildPlugins { val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.androidGradleSupport}" val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}" - val kotlinxSerializiationPlugin = - "org.jetbrains.kotlin:kotlin-serialization:${Versions.kotlin}" + val kotlinxSerializiationPlugin = "org.jetbrains.kotlin:kotlin-serialization:${Versions.kotlin}" + val ktlint = "org.jlleitschuh.gradle:ktlint-gradle:${Versions.ktlint}" val gmsPlugin = "com.google.gms:google-services:${Versions.gmsSupport}" val firebaseCrashlytics = "io.fabric.tools:gradle:${Versions.fabric}" diff --git a/data/src/main/java/com/jcaique/data/di/injection.kt b/data/src/main/java/com/jcaique/data/di/injection.kt index b82aef7..8f5b9cc 100644 --- a/data/src/main/java/com/jcaique/data/di/injection.kt +++ b/data/src/main/java/com/jcaique/data/di/injection.kt @@ -14,7 +14,6 @@ import org.kodein.di.generic.bind import org.kodein.di.generic.instance import org.kodein.di.generic.singleton - private val interceptors = listOf(HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY }) diff --git a/data/src/main/java/com/jcaique/data/networking/HttpErrorHandler.kt b/data/src/main/java/com/jcaique/data/networking/HttpErrorHandler.kt index 02dd3c1..5075595 100644 --- a/data/src/main/java/com/jcaique/data/networking/HttpErrorHandler.kt +++ b/data/src/main/java/com/jcaique/data/networking/HttpErrorHandler.kt @@ -5,14 +5,14 @@ import com.jcaique.domain.errors.GatewayIntegrationIssues import retrofit2.HttpException internal object HttpErrorHandler : ErrorTransformer { - override suspend fun transform(incoming: Throwable): Throwable = when(incoming){ + override suspend fun transform(incoming: Throwable): Throwable = when (incoming) { is HttpException -> handleHttpError(incoming.code()) else -> incoming } - private fun handleHttpError(code: Int): Throwable = when(code){ + private fun handleHttpError(code: Int): Throwable = when (code) { 404 -> GatewayIntegrationIssues.NotFound - in 400..499 -> GatewayIntegrationIssues.ClientIssue - else -> GatewayIntegrationIssues.ServerIssue + in 400..499 -> GatewayIntegrationIssues.ClientIssue + else -> GatewayIntegrationIssues.ServerIssue } } diff --git a/data/src/main/java/com/jcaique/data/networking/OkHttpClientProvider.kt b/data/src/main/java/com/jcaique/data/networking/OkHttpClientProvider.kt index 3a0e6d7..a786cc5 100644 --- a/data/src/main/java/com/jcaique/data/networking/OkHttpClientProvider.kt +++ b/data/src/main/java/com/jcaique/data/networking/OkHttpClientProvider.kt @@ -11,5 +11,4 @@ internal object OkHttpClientProvider { } } .build() - } diff --git a/data/src/main/java/com/jcaique/data/responses/DialectResponse.kt b/data/src/main/java/com/jcaique/data/responses/DialectResponse.kt index 16de1fa..facedd3 100644 --- a/data/src/main/java/com/jcaique/data/responses/DialectResponse.kt +++ b/data/src/main/java/com/jcaique/data/responses/DialectResponse.kt @@ -4,8 +4,8 @@ import kotlinx.serialization.Serializable @Serializable internal data class DialectResponse( - val slug: String, - val dialect: String, - val meanings: List, - val examples: List + val slug: String, + val dialect: String, + val meanings: List, + val examples: List ) diff --git a/data/src/main/java/com/jcaique/data/responses/RegionResponse.kt b/data/src/main/java/com/jcaique/data/responses/RegionResponse.kt index fffef62..2696049 100644 --- a/data/src/main/java/com/jcaique/data/responses/RegionResponse.kt +++ b/data/src/main/java/com/jcaique/data/responses/RegionResponse.kt @@ -4,6 +4,6 @@ import kotlinx.serialization.Serializable @Serializable internal data class RegionResponse( - val name: String, - val total: Int + val name: String, + val total: Int ) diff --git a/data/src/main/java/com/jcaique/data/service/DialetusGateway.kt b/data/src/main/java/com/jcaique/data/service/DialetusGateway.kt index 6cdf80f..7460032 100644 --- a/data/src/main/java/com/jcaique/data/service/DialetusGateway.kt +++ b/data/src/main/java/com/jcaique/data/service/DialetusGateway.kt @@ -9,11 +9,11 @@ import retrofit2.http.Query internal interface DialetusGateway { @GET("regions") - suspend fun fetchRegions() : List + suspend fun fetchRegions(): List @GET("regions/{region}/dialects") - suspend fun getDialectsBy(@Path("region") region: String) : List + suspend fun getDialectsBy(@Path("region") region: String): List @GET("search") - suspend fun searchDialects(@Query("q") query: String) : Map> + suspend fun searchDialects(@Query("q") query: String): Map> } diff --git a/data/src/main/java/com/jcaique/data/service/dialects/DialectsInfrastructure.kt b/data/src/main/java/com/jcaique/data/service/dialects/DialectsInfrastructure.kt index 422672e..1bcd7a6 100644 --- a/data/src/main/java/com/jcaique/data/service/dialects/DialectsInfrastructure.kt +++ b/data/src/main/java/com/jcaique/data/service/dialects/DialectsInfrastructure.kt @@ -8,8 +8,7 @@ import com.jcaique.domain.models.Dialect import com.jcaique.domain.models.DialectSlug internal class DialectsInfrastructure(private val api: DialetusGateway) : DialectsService { - - + override suspend fun getDialectsBy(region: String): List = executionHandler { api.getDialectsBy(region) .map(DialectsMapper::toDomain) diff --git a/data/src/main/java/com/jcaique/data/service/regions/RegionsInfrastructure.kt b/data/src/main/java/com/jcaique/data/service/regions/RegionsInfrastructure.kt index 6ce115e..5726158 100644 --- a/data/src/main/java/com/jcaique/data/service/regions/RegionsInfrastructure.kt +++ b/data/src/main/java/com/jcaique/data/service/regions/RegionsInfrastructure.kt @@ -9,7 +9,6 @@ import com.jcaique.domain.regions.RegionsService internal class RegionsInfrastructure(private val api: DialetusGateway) : RegionsService { override suspend fun fetchRegions(): List = executionHandler { - api.fetchRegions() .map { RegionsMapper.toDomain(it) } + api.fetchRegions().map { RegionsMapper.toDomain(it) } } - } diff --git a/data/src/test/java/com/jcaique/data/regions/RegionsInfrastructureTest.kt b/data/src/test/java/com/jcaique/data/regions/RegionsInfrastructureTest.kt index 4cca314..022dc00 100644 --- a/data/src/test/java/com/jcaique/data/regions/RegionsInfrastructureTest.kt +++ b/data/src/test/java/com/jcaique/data/regions/RegionsInfrastructureTest.kt @@ -19,12 +19,12 @@ class RegionsInfrastructureTest { private lateinit var service: RegionsService @Before - fun setup(){ + fun setup() { service = RegionsInfrastructure(scenario.api) } @Test - fun `should fetch regions`(){ + fun `should fetch regions`() { scenario.defineScenario( status = 200, @@ -48,7 +48,7 @@ class RegionsInfrastructureTest { name = "paulistes", total = 16 ), - Region ( + Region( name = "pernambuques", total = 17 ), @@ -59,6 +59,5 @@ class RegionsInfrastructureTest { ) assertThat(execution).isEqualTo(expected) - } } diff --git a/domain/src/main/java/com/jcaique/domain/dialects/DialectsService.kt b/domain/src/main/java/com/jcaique/domain/dialects/DialectsService.kt index 329df69..66d46f8 100644 --- a/domain/src/main/java/com/jcaique/domain/dialects/DialectsService.kt +++ b/domain/src/main/java/com/jcaique/domain/dialects/DialectsService.kt @@ -4,8 +4,8 @@ import com.jcaique.domain.models.Dialect import com.jcaique.domain.models.DialectSlug interface DialectsService { - - suspend fun getDialectsBy(region: String) : List - - suspend fun searchDialects(query: String) : Map> + + suspend fun getDialectsBy(region: String): List + + suspend fun searchDialects(query: String): Map> } diff --git a/domain/src/main/java/com/jcaique/domain/models/Dialect.kt b/domain/src/main/java/com/jcaique/domain/models/Dialect.kt index 5ef0856..7cbce5c 100644 --- a/domain/src/main/java/com/jcaique/domain/models/Dialect.kt +++ b/domain/src/main/java/com/jcaique/domain/models/Dialect.kt @@ -1,9 +1,8 @@ package com.jcaique.domain.models data class Dialect( - val slug: String, - val dialect: String, - val meanings: List, - val examples: List + val slug: String, + val dialect: String, + val meanings: List, + val examples: List ) - diff --git a/domain/src/main/java/com/jcaique/domain/regions/RegionsService.kt b/domain/src/main/java/com/jcaique/domain/regions/RegionsService.kt index ae8a501..f5e474c 100644 --- a/domain/src/main/java/com/jcaique/domain/regions/RegionsService.kt +++ b/domain/src/main/java/com/jcaique/domain/regions/RegionsService.kt @@ -4,5 +4,5 @@ import com.jcaique.domain.models.Region interface RegionsService { - suspend fun fetchRegions() : List + suspend fun fetchRegions(): List } diff --git a/kotlin-module.gradle b/kotlin-module.gradle index ffd91ca..bd9c36e 100644 --- a/kotlin-module.gradle +++ b/kotlin-module.gradle @@ -1,4 +1,5 @@ apply plugin: 'kotlin' +apply plugin: "org.jlleitschuh.gradle.ktlint" repositories { mavenCentral() @@ -10,4 +11,4 @@ compileKotlin { } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" -} \ No newline at end of file +} diff --git a/presentation/src/androidTest/java/com/jcaique/presentation/ExampleInstrumentedTest.kt b/presentation/src/androidTest/java/com/jcaique/presentation/ExampleInstrumentedTest.kt index dcc2433..125e63f 100644 --- a/presentation/src/androidTest/java/com/jcaique/presentation/ExampleInstrumentedTest.kt +++ b/presentation/src/androidTest/java/com/jcaique/presentation/ExampleInstrumentedTest.kt @@ -1,13 +1,11 @@ package com.jcaique.presentation -import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 - +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith -import org.junit.Assert.* - /** * Instrumented test, which will execute on an Android device. * diff --git a/presentation/src/main/java/com/jcaique/presentation/di/injection.kt b/presentation/src/main/java/com/jcaique/presentation/di/injection.kt index a4408ba..02627c8 100644 --- a/presentation/src/main/java/com/jcaique/presentation/di/injection.kt +++ b/presentation/src/main/java/com/jcaique/presentation/di/injection.kt @@ -24,7 +24,7 @@ val presentationModule = Kodein.Module(name = "presentation") { dispatcher = instance() ) ) - + RegionsViewModel( service = instance(), machine = stateMachine diff --git a/presentation/src/main/java/com/jcaique/presentation/regions/RegionAdapter.kt b/presentation/src/main/java/com/jcaique/presentation/regions/RegionAdapter.kt index 65ef92c..5b49df5 100644 --- a/presentation/src/main/java/com/jcaique/presentation/regions/RegionAdapter.kt +++ b/presentation/src/main/java/com/jcaique/presentation/regions/RegionAdapter.kt @@ -9,7 +9,7 @@ import com.jcaique.presentation.R import kotlinx.android.synthetic.main.item_region.view.* internal class RegionAdapter( - private val presentation: RegionsPresentation + private val presentation: RegionsPresentation ) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RegionHolder { diff --git a/presentation/src/main/java/com/jcaique/presentation/regions/RegionsActivity.kt b/presentation/src/main/java/com/jcaique/presentation/regions/RegionsActivity.kt index 9b4cb06..fc68856 100644 --- a/presentation/src/main/java/com/jcaique/presentation/regions/RegionsActivity.kt +++ b/presentation/src/main/java/com/jcaique/presentation/regions/RegionsActivity.kt @@ -10,7 +10,9 @@ import com.jcaique.presentation.utils.DividerItemDecoration import com.jcaique.presentation.utils.dataflow.UserInteraction.OpenedScreen import com.jcaique.presentation.utils.dataflow.UserInteraction.RequestedFreshContent import com.jcaique.presentation.utils.dataflow.ViewState -import com.jcaique.presentation.utils.dataflow.ViewState.* +import com.jcaique.presentation.utils.dataflow.ViewState.Failed +import com.jcaique.presentation.utils.dataflow.ViewState.Loading +import com.jcaique.presentation.utils.dataflow.ViewState.Success import com.jcaique.presentation.utils.selfInject import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.error_state_layout.* diff --git a/presentation/src/main/java/com/jcaique/presentation/regions/RegionsViewModel.kt b/presentation/src/main/java/com/jcaique/presentation/regions/RegionsViewModel.kt index ecf5557..bad28bb 100644 --- a/presentation/src/main/java/com/jcaique/presentation/regions/RegionsViewModel.kt +++ b/presentation/src/main/java/com/jcaique/presentation/regions/RegionsViewModel.kt @@ -8,8 +8,8 @@ import com.jcaique.presentation.utils.dataflow.UnsupportedUserInteraction import com.jcaique.presentation.utils.dataflow.UserInteraction internal class RegionsViewModel( - private val service: RegionsService, - private val machine: StateMachine + private val service: RegionsService, + private val machine: StateMachine ) : ViewModel() { fun bind() = machine.states() diff --git a/presentation/src/main/java/com/jcaique/presentation/utils/DividerItemDecoration.kt b/presentation/src/main/java/com/jcaique/presentation/utils/DividerItemDecoration.kt index 8dbdd12..7597c19 100644 --- a/presentation/src/main/java/com/jcaique/presentation/utils/DividerItemDecoration.kt +++ b/presentation/src/main/java/com/jcaique/presentation/utils/DividerItemDecoration.kt @@ -36,7 +36,8 @@ internal class DividerItemDecoration(context: Context, orientation: Int = Linear if (mDivider == null) { Log.w( TAG, - "@android:attr/listDivider was not set in the theme used for this " + "DividerItemDecoration. " + + "@android:attr/listDivider was not set in the theme used for this " + + "DividerItemDecoration. " + "Please set that attribute all call setDrawable()" ) } @@ -51,7 +52,9 @@ internal class DividerItemDecoration(context: Context, orientation: Int = Linear * @param orientation [.HORIZONTAL] or [.VERTICAL] */ private fun setOrientation(orientation: Int) { - require(!(orientation != HORIZONTAL && orientation != VERTICAL)) { "Invalid orientation. It should be either HORIZONTAL or VERTICAL" } + require(!(orientation != HORIZONTAL && orientation != VERTICAL)) { + "Invalid orientation. It should be either HORIZONTAL or VERTICAL" + } mOrientation = orientation } @@ -65,18 +68,18 @@ internal class DividerItemDecoration(context: Context, orientation: Int = Linear } override fun getItemOffsets( - outRect: Rect, - view: View, - parent: RecyclerView, - state: RecyclerView.State + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State ) { if (mDivider == null) { outRect.set(0, 0, 0, 0) return } - when(mOrientation == VERTICAL) { + when (mOrientation == VERTICAL) { true -> outRect.set(0, 0, 0, mDivider!!.intrinsicHeight) - false-> outRect.set(0, 0, mDivider!!.intrinsicWidth, 0) + false -> outRect.set(0, 0, mDivider!!.intrinsicWidth, 0) } } @@ -117,11 +120,11 @@ internal class DividerItemDecoration(context: Context, orientation: Int = Linear } private fun drawVerticalChild( - canvas: Canvas, - view: View, - parent: RecyclerView, - left: Int, - right: Int + canvas: Canvas, + view: View, + parent: RecyclerView, + left: Int, + right: Int ) { parent.getDecoratedBoundsWithMargins(view, mBounds) @@ -158,11 +161,11 @@ internal class DividerItemDecoration(context: Context, orientation: Int = Linear } private fun drawHorizontalChild( - canvas: Canvas, - view: View, - parent: RecyclerView, - top: Int, - bottom: Int + canvas: Canvas, + view: View, + parent: RecyclerView, + top: Int, + bottom: Int ) { parent.layoutManager?.getDecoratedBoundsWithMargins(view, mBounds) diff --git a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/CommandsProcessor.kt b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/CommandsProcessor.kt index d97445d..255ef13 100644 --- a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/CommandsProcessor.kt +++ b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/CommandsProcessor.kt @@ -4,7 +4,7 @@ import kotlinx.coroutines.channels.ConflatedBroadcastChannel import kotlinx.coroutines.flow.asFlow internal class CommandsProcessor( - private val executor: TaskExecutor + private val executor: TaskExecutor ) { private val broadcaster = ConflatedBroadcastChannel() diff --git a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateMachine.kt b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateMachine.kt index 42120e7..912479f 100644 --- a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateMachine.kt +++ b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateMachine.kt @@ -1,8 +1,8 @@ package com.jcaique.presentation.utils.dataflow internal class StateMachine( - private val container: StateContainer, - private val executor: TaskExecutor + private val container: StateContainer, + private val executor: TaskExecutor ) { fun states() = container.observableStates() diff --git a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateTransition.kt b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateTransition.kt index 3bb7916..9b339c4 100644 --- a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateTransition.kt +++ b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/StateTransition.kt @@ -5,12 +5,12 @@ internal sealed class StateTransition { interface Parameters class Unparametrized internal constructor( - val task: suspend () -> T + val task: suspend () -> T ) : StateTransition() class Parametrized internal constructor( - val task: suspend (Parameters) -> T, - val parameters: Parameters + val task: suspend (Parameters) -> T, + val parameters: Parameters ) : StateTransition() companion object { @@ -18,8 +18,8 @@ internal sealed class StateTransition { operator fun invoke(task: suspend () -> T) = Unparametrized(task) operator fun invoke( - task: suspend (Parameters) -> T, - data: Parameters + task: suspend (Parameters) -> T, + data: Parameters ) = Parametrized(task, data) } } diff --git a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/TaskExecutor.kt b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/TaskExecutor.kt index 1327179..959f4d4 100644 --- a/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/TaskExecutor.kt +++ b/presentation/src/main/java/com/jcaique/presentation/utils/dataflow/TaskExecutor.kt @@ -11,8 +11,8 @@ internal interface TaskExecutor { fun execute(block: suspend TaskExecutor.() -> Unit): Job class Concurrent( - private val scope: CoroutineScope, - private val dispatcher: CoroutineDispatcher + private val scope: CoroutineScope, + private val dispatcher: CoroutineDispatcher ) : TaskExecutor { override fun execute(block: suspend TaskExecutor.() -> Unit) = scope.launch(dispatcher) { diff --git a/presentation/src/test/java/com/jcaique/presentation/common/flowTesting.kt b/presentation/src/test/java/com/jcaique/presentation/common/flowTesting.kt index 7b6ced0..30013b9 100644 --- a/presentation/src/test/java/com/jcaique/presentation/common/flowTesting.kt +++ b/presentation/src/test/java/com/jcaique/presentation/common/flowTesting.kt @@ -28,9 +28,9 @@ class FlowTest(private val parentJob: Job, private val emissions: List) { companion object { fun flowTest( - target: Flow, - scope: CoroutineScope = GlobalScope, - block: FlowTest.() -> Unit + target: Flow, + scope: CoroutineScope = GlobalScope, + block: FlowTest.() -> Unit ) { target.test(scope, block) } diff --git a/presentation/src/test/java/com/jcaique/presentation/common/suspendableUtils.kt b/presentation/src/test/java/com/jcaique/presentation/common/suspendableUtils.kt index 092fc01..138968f 100644 --- a/presentation/src/test/java/com/jcaique/presentation/common/suspendableUtils.kt +++ b/presentation/src/test/java/com/jcaique/presentation/common/suspendableUtils.kt @@ -1,7 +1,7 @@ package com.jcaique.presentation.common -import kotlinx.coroutines.runBlocking import kotlin.properties.Delegates +import kotlinx.coroutines.runBlocking fun unwrapError(result: Result<*>) = result.exceptionOrNull() diff --git a/presentation/src/test/java/com/jcaique/presentation/dataflow/CommandsProcessorTests.kt b/presentation/src/test/java/com/jcaique/presentation/dataflow/CommandsProcessorTests.kt index 665137a..4ac6d14 100644 --- a/presentation/src/test/java/com/jcaique/presentation/dataflow/CommandsProcessorTests.kt +++ b/presentation/src/test/java/com/jcaique/presentation/dataflow/CommandsProcessorTests.kt @@ -6,12 +6,12 @@ import com.jcaique.presentation.utils.dataflow.CommandTrigger import com.jcaique.presentation.utils.dataflow.CommandsProcessor import com.jcaique.presentation.utils.dataflow.TaskExecutor import com.jcaique.presentation.utils.dataflow.ViewCommand +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine import org.assertj.core.api.Assertions.assertThat import org.junit.Before import org.junit.Rule import org.junit.Test -import kotlin.coroutines.resume -import kotlin.coroutines.suspendCoroutine internal class CommandsProcessorTests { diff --git a/presentation/src/test/java/com/jcaique/presentation/regions/StateMachineTests.kt b/presentation/src/test/java/com/jcaique/presentation/dataflow/StateMachineTests.kt similarity index 96% rename from presentation/src/test/java/com/jcaique/presentation/regions/StateMachineTests.kt rename to presentation/src/test/java/com/jcaique/presentation/dataflow/StateMachineTests.kt index 8c3378f..3e2e89f 100644 --- a/presentation/src/test/java/com/jcaique/presentation/regions/StateMachineTests.kt +++ b/presentation/src/test/java/com/jcaique/presentation/dataflow/StateMachineTests.kt @@ -1,4 +1,4 @@ -package com.jcaique.presentation.regions +package com.jcaique.presentation.dataflow import com.jcaique.presentation.common.CoroutinesTestHelper import com.jcaique.presentation.common.FlowTest.Companion.flowTest @@ -7,13 +7,13 @@ import com.jcaique.presentation.utils.dataflow.StateMachine import com.jcaique.presentation.utils.dataflow.StateTransition import com.jcaique.presentation.utils.dataflow.TaskExecutor import com.jcaique.presentation.utils.dataflow.ViewState +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException +import kotlin.coroutines.suspendCoroutine import org.assertj.core.api.Assertions.assertThat import org.junit.Before import org.junit.Rule import org.junit.Test -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException -import kotlin.coroutines.suspendCoroutine internal class StateMachineTests { @@ -100,7 +100,9 @@ internal class StateMachineTests { // And triggerEmissions { machine.consume( - StateTransition(::successfulExecution, Interaction) + StateTransition(::successfulExecution, + Interaction + ) ) }