diff --git a/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt b/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt index 877d4631d..7e9d1a84f 100644 --- a/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt +++ b/androidApp/src/main/java/org/mifos/mobile/navigation/MifosNavGraph.kt @@ -50,8 +50,6 @@ import org.mifos.mobile.feature.qr.navigation.navigateToQrDisplayScreen import org.mifos.mobile.feature.qr.navigation.navigateToQrImportScreen import org.mifos.mobile.feature.qr.navigation.navigateToQrReaderScreen import org.mifos.mobile.feature.qr.navigation.qrNavGraph -import org.mifos.mobile.feature.transaction.navigation.navigateToRecentTransaction -import org.mifos.mobile.feature.transaction.navigation.recentTransactionNavGraph import org.mifos.mobile.feature.savings.navigation.navigateToSavingsApplicationScreen import org.mifos.mobile.feature.savings.navigation.navigateToSavingsDetailScreen import org.mifos.mobile.feature.savings.navigation.navigateToSavingsMakeTransfer @@ -60,6 +58,8 @@ import org.mifos.mobile.feature.settings.navigation.navigateToSettings import org.mifos.mobile.feature.settings.navigation.settingsNavGraph import org.mifos.mobile.feature.third.party.transfer.third_party_transfer.navigation.navigateToThirdPartyTransfer import org.mifos.mobile.feature.third.party.transfer.third_party_transfer.navigation.thirdPartyTransferNavGraph +import org.mifos.mobile.feature.transaction.navigation.navigateToRecentTransaction +import org.mifos.mobile.feature.transaction.navigation.recentTransactionNavGraph import org.mifos.mobile.feature.transfer.process.navigation.navigateToTransferProcessScreen import org.mifos.mobile.feature.transfer.process.navigation.transferProcessNavGraph import org.mifos.mobile.feature.update_password.navigation.navigateToUpdatePassword @@ -153,9 +153,7 @@ fun RootNavGraph( navigateToOssLicense = { startActivity(context, OssLicensesMenuActivity::class.java) } ) - transferProcessNavGraph( - navController = navController - ) + transferProcessNavGraph(navigateBack = navController::popBackStack) beneficiaryNavGraph( navController = navController, diff --git a/feature/transfer-process/build.gradle.kts b/feature/transfer-process/build.gradle.kts index 04ca5a00e..609571119 100644 --- a/feature/transfer-process/build.gradle.kts +++ b/feature/transfer-process/build.gradle.kts @@ -1,3 +1,12 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md + */ plugins { alias(libs.plugins.mifos.android.feature) alias(libs.plugins.mifos.android.library.compose) @@ -9,13 +18,5 @@ android { } dependencies { - implementation(projects.core.ui) - implementation(projects.core.common) - implementation(projects.core.model) - implementation(projects.core.data) implementation(libs.squareup.retrofit.converter.gson) - - testImplementation(libs.junit) - androidTestImplementation(libs.androidx.test.ext.junit) - androidTestImplementation(libs.espresso.core) } \ No newline at end of file diff --git a/feature/transfer-process/src/androidTest/java/org/mifos/mobile/feature/transfer/process/ExampleInstrumentedTest.kt b/feature/transfer-process/src/androidTest/java/org/mifos/mobile/feature/transfer/process/ExampleInstrumentedTest.kt deleted file mode 100644 index 27b19e399..000000000 --- a/feature/transfer-process/src/androidTest/java/org/mifos/mobile/feature/transfer/process/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.mifos.mobile.feature.transfer.process - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("org.mifos.mobile.feature.transfer.process.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/feature/transfer-process/src/main/AndroidManifest.xml b/feature/transfer-process/src/main/AndroidManifest.xml index a5918e68a..1f9b243f0 100644 --- a/feature/transfer-process/src/main/AndroidManifest.xml +++ b/feature/transfer-process/src/main/AndroidManifest.xml @@ -1,4 +1,13 @@ + \ No newline at end of file diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt index f079e7874..37f72bc9a 100644 --- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt +++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessScreen.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md + */ package org.mifos.mobile.feature.transfer.process import android.widget.Toast @@ -13,7 +22,6 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults @@ -28,71 +36,72 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import org.mifos.mobile.core.common.Network +import org.mifos.mobile.core.designsystem.components.MifosButton import org.mifos.mobile.core.designsystem.components.MifosScaffold import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme import org.mifos.mobile.core.model.entity.payload.TransferPayload import org.mifos.mobile.core.ui.component.MifosErrorComponent import org.mifos.mobile.core.ui.component.MifosProgressIndicatorOverlay - +import org.mifos.mobile.core.ui.utils.DevicePreviews @Composable -fun TransferProcessScreen( +internal fun TransferProcessScreen( + navigateBack: () -> Unit, + modifier: Modifier = Modifier, viewModel: TransferProcessViewModel = hiltViewModel(), - navigateBack: () -> Unit ) { val uiState by viewModel.transferUiState.collectAsStateWithLifecycle() val payload by viewModel.transferPayload.collectAsStateWithLifecycle() TransferProcessScreen( uiState = uiState, - transfer = { viewModel.makeTransfer() }, + transfer = viewModel::makeTransfer, payload = payload, navigateBack = navigateBack, + modifier = modifier, ) } @Composable -fun TransferProcessScreen( +private fun TransferProcessScreen( uiState: TransferProcessUiState, payload: TransferPayload?, transfer: () -> Unit, navigateBack: () -> Unit, + modifier: Modifier = Modifier, ) { val context = LocalContext.current MifosScaffold( topBarTitleResId = R.string.transfer, navigateBack = navigateBack, + modifier = modifier, content = { paddingValues -> Box( modifier = Modifier .padding(paddingValues) - .fillMaxSize() + .fillMaxSize(), ) { - TransferProcessContent( payload = payload, transfer = transfer, - cancelClicked = navigateBack + cancelClicked = navigateBack, ) when (uiState) { - is TransferProcessUiState.Loading -> { - MifosProgressIndicatorOverlay() - } + is TransferProcessUiState.Loading -> MifosProgressIndicatorOverlay() is TransferProcessUiState.Success -> { Toast.makeText( context, R.string.transferred_successfully, - Toast.LENGTH_SHORT + Toast.LENGTH_SHORT, ).show() navigateBack() } @@ -104,46 +113,47 @@ fun TransferProcessScreen( is TransferProcessUiState.Initial -> Unit } } - } + }, ) } @Composable -fun TransferProcessContent( +private fun TransferProcessContent( payload: TransferPayload?, transfer: () -> Unit, - cancelClicked: () -> Unit + cancelClicked: () -> Unit, + modifier: Modifier = Modifier, ) { val scrollState = rememberScrollState() Column( - modifier = Modifier + modifier = modifier .fillMaxSize() - .verticalScroll(scrollState) + .verticalScroll(scrollState), ) { Card( modifier = Modifier .fillMaxWidth() .padding(16.dp), colors = CardDefaults.cardColors( - containerColor = MaterialTheme.colorScheme.background + containerColor = MaterialTheme.colorScheme.background, ), - border = BorderStroke(1.dp, Color.LightGray) + border = BorderStroke(1.dp, Color.LightGray), ) { Column( modifier = Modifier .fillMaxWidth() - .padding(14.dp) + .padding(14.dp), ) { Column( modifier = Modifier .fillMaxWidth() .padding(bottom = 12.dp), - horizontalAlignment = Alignment.CenterHorizontally + horizontalAlignment = Alignment.CenterHorizontally, ) { Text( text = stringResource(id = R.string.amount), - color = MaterialTheme.colorScheme.primary + color = MaterialTheme.colorScheme.primary, ) Text(text = payload?.transferAmount.toString()) @@ -152,18 +162,18 @@ fun TransferProcessContent( Text( text = stringResource(id = R.string.transfer_from_savings), fontWeight = FontWeight(500), - color = Color.Gray + color = Color.Gray, ) Text( text = stringResource(id = R.string.pay_to), modifier = Modifier.padding(top = 8.dp), - color = MaterialTheme.colorScheme.primary + color = MaterialTheme.colorScheme.primary, ) Text( text = payload?.fromAccountNumber.toString(), - modifier = Modifier.padding(top = 4.dp, bottom = 2.dp) + modifier = Modifier.padding(top = 4.dp, bottom = 2.dp), ) HorizontalDivider() @@ -171,12 +181,12 @@ fun TransferProcessContent( Text( text = stringResource(id = R.string.pay_from), modifier = Modifier.padding(top = 8.dp), - color = MaterialTheme.colorScheme.primary + color = MaterialTheme.colorScheme.primary, ) Text( text = payload?.fromAccountNumber.toString(), - modifier = Modifier.padding(top = 4.dp, bottom = 2.dp) + modifier = Modifier.padding(top = 4.dp, bottom = 2.dp), ) HorizontalDivider() @@ -184,12 +194,12 @@ fun TransferProcessContent( Text( text = stringResource(id = R.string.date), modifier = Modifier.padding(top = 8.dp), - color = MaterialTheme.colorScheme.primary + color = MaterialTheme.colorScheme.primary, ) Text( text = payload?.transferDate.toString(), - modifier = Modifier.padding(top = 4.dp, bottom = 2.dp) + modifier = Modifier.padding(top = 4.dp, bottom = 2.dp), ) HorizontalDivider() @@ -197,12 +207,12 @@ fun TransferProcessContent( Text( text = stringResource(id = R.string.remark), modifier = Modifier.padding(top = 8.dp), - color = MaterialTheme.colorScheme.primary + color = MaterialTheme.colorScheme.primary, ) Text( text = payload?.transferDescription.toString(), - modifier = Modifier.padding(top = 4.dp, bottom = 2.dp) + modifier = Modifier.padding(top = 4.dp, bottom = 2.dp), ) HorizontalDivider() @@ -211,27 +221,23 @@ fun TransferProcessContent( Row( modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.End + horizontalArrangement = Arrangement.End, ) { Row( horizontalArrangement = Arrangement.spacedBy(30.dp), ) { - Button( - onClick = { cancelClicked() }, + MifosButton( + textResId = R.string.cancel, + onClick = cancelClicked, colors = ButtonDefaults.buttonColors( containerColor = Color.Transparent, - contentColor = MaterialTheme.colorScheme.primary - ) - ) { - Text(text = stringResource(id = R.string.cancel)) - } - Button( - onClick = { - transfer() - } - ) { - Text(text = stringResource(id = R.string.transfer)) - } + contentColor = MaterialTheme.colorScheme.primary, + ), + ) + MifosButton( + textResId = R.string.transfer, + onClick = transfer, + ) } } } @@ -239,21 +245,21 @@ fun TransferProcessContent( } } - -class UiStatesParameterProvider : PreviewParameterProvider { +internal class UiStatesParameterProvider : PreviewParameterProvider { override val values: Sequence get() = sequenceOf( TransferProcessUiState.Initial, TransferProcessUiState.Loading, TransferProcessUiState.Error(null), - TransferProcessUiState.Success + TransferProcessUiState.Success, ) } -@Preview(showSystemUi = true) +@DevicePreviews @Composable -fun TransferProcessScreenPreview( - @PreviewParameter(UiStatesParameterProvider::class) transferUiState: TransferProcessUiState +private fun TransferProcessScreenPreview( + @PreviewParameter(UiStatesParameterProvider::class) + transferUiState: TransferProcessUiState, ) { MifosMobileTheme { TransferProcessScreen( @@ -263,11 +269,10 @@ fun TransferProcessScreenPreview( fromAccountNumber = "1234567890", toAccountNumber = "0987654321", transferDate = "2021-09-01", - transferDescription = "Transfer Description" + transferDescription = "Transfer Description", ), transfer = {}, navigateBack = {}, ) } } - diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt index 291ca0f19..436048f43 100644 --- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt +++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/TransferProcessViewModel.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md + */ package org.mifos.mobile.feature.transfer.process import androidx.lifecycle.SavedStateHandle @@ -8,6 +17,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn @@ -17,20 +27,26 @@ import org.mifos.mobile.core.common.Constants.TRANSFER_TYPE import org.mifos.mobile.core.data.repository.TransferRepository import org.mifos.mobile.core.model.entity.payload.TransferPayload import org.mifos.mobile.core.model.enums.TransferType +import org.mifos.mobile.feature.transfer.process.TransferProcessUiState.Initial import javax.inject.Inject @HiltViewModel -class TransferProcessViewModel @Inject constructor( +internal class TransferProcessViewModel @Inject constructor( private val transferRepositoryImp: TransferRepository, - savedStateHandle: SavedStateHandle -) : - ViewModel() { + savedStateHandle: SavedStateHandle, +) : ViewModel() { - private val _transferUiState = MutableStateFlow(TransferProcessUiState.Initial) - val transferUiState: StateFlow get() = _transferUiState + private val _transferUiState = MutableStateFlow(Initial) + val transferUiState = _transferUiState.asStateFlow() - private val transferPayloadString = savedStateHandle.getStateFlow(key = PAYLOAD, initialValue = null) - private val transferType = savedStateHandle.getStateFlow(key = TRANSFER_TYPE, initialValue = null) + private val transferPayloadString = savedStateHandle.getStateFlow( + key = PAYLOAD, + initialValue = null, + ) + private val transferType = savedStateHandle.getStateFlow( + key = TRANSFER_TYPE, + initialValue = null, + ) val transferPayload: StateFlow = transferPayloadString .map { jsonString -> @@ -40,7 +56,7 @@ class TransferProcessViewModel @Inject constructor( }.stateIn( scope = viewModelScope, started = SharingStarted.Eagerly, - initialValue = null + initialValue = null, ) fun makeTransfer() { @@ -63,7 +79,7 @@ class TransferProcessViewModel @Inject constructor( locale = payload.locale, fromAccountNumber = payload.fromAccountNumber, toAccountNumber = payload.toAccountNumber, - transferType = transferType.value + transferType = transferType.value, ).catch { e -> _transferUiState.value = TransferProcessUiState.Error(e.message) }.collect { @@ -74,7 +90,7 @@ class TransferProcessViewModel @Inject constructor( } } -sealed class TransferProcessUiState { +internal sealed class TransferProcessUiState { data object Initial : TransferProcessUiState() data object Loading : TransferProcessUiState() data object Success : TransferProcessUiState() diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt index 3147b1f88..cad5b165c 100644 --- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt +++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavGraph.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md + */ package org.mifos.mobile.feature.transfer.process.navigation import androidx.navigation.NavController @@ -16,37 +25,42 @@ import org.mifos.mobile.core.model.enums.TransferType import org.mifos.mobile.feature.transfer.process.TransferProcessScreen // Navigation Setup -fun NavController.navigateToTransferProcessScreen(transferPayload: ReviewTransferPayload, transferType: TransferType) { +fun NavController.navigateToTransferProcessScreen( + transferPayload: ReviewTransferPayload, + transferType: TransferType, +) { navigate( TransferProcessNavigation.TransferProcessScreen.passArguments( transferType = transferType, - payload = transferPayload.convertToTransferPayloadString() - ) + payload = transferPayload.convertToTransferPayloadString(), + ), ) } fun NavGraphBuilder.transferProcessNavGraph( - navController: NavController + navigateBack: () -> Unit, ) { navigation( startDestination = TransferProcessNavigation.TransferProcessScreen.route, route = TransferProcessNavigation.TransferProcessBase.route, ) { transferProcessScreenRoute( - navigateBack = navController::popBackStack, + navigateBack = navigateBack, ) } } -fun NavGraphBuilder.transferProcessScreenRoute( +private fun NavGraphBuilder.transferProcessScreenRoute( navigateBack: () -> Unit, ) { composable( route = TransferProcessNavigation.TransferProcessScreen.route, arguments = listOf( navArgument(name = Constants.PAYLOAD) { type = NavType.StringType }, - navArgument(name = Constants.TRANSFER_TYPE) { type = NavType.EnumType(TransferType::class.java) } - ) + navArgument(name = Constants.TRANSFER_TYPE) { + type = NavType.EnumType(TransferType::class.java) + }, + ), ) { TransferProcessScreen( navigateBack = navigateBack, @@ -54,8 +68,7 @@ fun NavGraphBuilder.transferProcessScreenRoute( } } - -fun ReviewTransferPayload.convertToTransferPayloadString(): String { +private fun ReviewTransferPayload.convertToTransferPayloadString(): String { val payload = this val transferPayload = TransferPayload().apply { fromAccountId = payload.payFromAccount?.accountId @@ -75,4 +88,4 @@ fun ReviewTransferPayload.convertToTransferPayloadString(): String { val gson = Gson() return gson.toJson(transferPayload) -} \ No newline at end of file +} diff --git a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt index 76a6e0ead..125be71e5 100644 --- a/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt +++ b/feature/transfer-process/src/main/java/org/mifos/mobile/feature/transfer/process/navigation/TransferProcessNavigation.kt @@ -1,9 +1,16 @@ +/* + * Copyright 2024 Mifos Initiative + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + * + * See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md + */ package org.mifos.mobile.feature.transfer.process.navigation -import org.mifos.mobile.core.common.Constants import org.mifos.mobile.core.common.Constants.PAYLOAD import org.mifos.mobile.core.common.Constants.TRANSFER_TYPE -import org.mifos.mobile.core.model.entity.payload.ReviewTransferPayload import org.mifos.mobile.core.model.enums.TransferType // Constants for Routes @@ -11,9 +18,17 @@ const val TRANSFER_PROCESS_NAVIGATION_ROUTE_BASE = "transfer_process_base_route" const val TRANSFER_PROCESS_SCREEN_ROUTE = "transfer_process_screen_route" // Sealed class for Navigation Routes -sealed class TransferProcessNavigation(val route: String) { - data object TransferProcessBase : TransferProcessNavigation(route = TRANSFER_PROCESS_NAVIGATION_ROUTE_BASE) - data object TransferProcessScreen : TransferProcessNavigation(route = "$TRANSFER_PROCESS_SCREEN_ROUTE/{${PAYLOAD}}/{$TRANSFER_TYPE}") { - fun passArguments(payload: String, transferType: TransferType) = "$TRANSFER_PROCESS_SCREEN_ROUTE/${payload}/${transferType}" +internal sealed class TransferProcessNavigation(val route: String) { + data object TransferProcessBase : TransferProcessNavigation( + route = TRANSFER_PROCESS_NAVIGATION_ROUTE_BASE, + ) + + data object TransferProcessScreen : TransferProcessNavigation( + route = "$TRANSFER_PROCESS_SCREEN_ROUTE/{$PAYLOAD}/{$TRANSFER_TYPE}", + ) { + fun passArguments( + payload: String, + transferType: TransferType, + ) = "$TRANSFER_PROCESS_SCREEN_ROUTE/$payload/$transferType" } -} \ No newline at end of file +} diff --git a/feature/transfer-process/src/main/res/values/strings.xml b/feature/transfer-process/src/main/res/values/strings.xml index 2b5ca4856..7584a9ca9 100644 --- a/feature/transfer-process/src/main/res/values/strings.xml +++ b/feature/transfer-process/src/main/res/values/strings.xml @@ -1,4 +1,13 @@ + Transfer Transferred Successfully diff --git a/feature/transfer-process/src/test/java/org/mifos/mobile/feature/transfer/process/ExampleUnitTest.kt b/feature/transfer-process/src/test/java/org/mifos/mobile/feature/transfer/process/ExampleUnitTest.kt deleted file mode 100644 index e0bb4aa78..000000000 --- a/feature/transfer-process/src/test/java/org/mifos/mobile/feature/transfer/process/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.mifos.mobile.feature.transfer.process - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file