Spotless Base (#7589)
This commit is contained in:
@@ -12,9 +12,7 @@ import com.navi.base.cache.model.NaviCacheAltSourceEntity
|
||||
import com.navi.base.cache.model.NaviCacheEntity
|
||||
import javax.inject.Inject
|
||||
|
||||
class NaviCacheRepository @Inject constructor(
|
||||
private val naviCacheDao: NaviCacheDao
|
||||
) {
|
||||
class NaviCacheRepository @Inject constructor(private val naviCacheDao: NaviCacheDao) {
|
||||
|
||||
suspend fun save(naviCacheEntity: NaviCacheEntity) {
|
||||
naviCacheDao.insert(naviCacheEntity = naviCacheEntity)
|
||||
@@ -40,7 +38,8 @@ class NaviCacheRepository @Inject constructor(
|
||||
|
||||
val currentValueInDB = get(key = key)
|
||||
|
||||
if (checkIfDBValueIsValidElseRemoveEntry(
|
||||
if (
|
||||
checkIfDBValueIsValidElseRemoveEntry(
|
||||
naviCacheEntity = currentValueInDB,
|
||||
version = version,
|
||||
key = key
|
||||
@@ -52,19 +51,23 @@ class NaviCacheRepository @Inject constructor(
|
||||
// DB value is invalid
|
||||
val naviCacheValueEntityFromAltSource = getDataFromAltSource.invoke()
|
||||
|
||||
if (!naviCacheValueEntityFromAltSource.isSuccess || naviCacheValueEntityFromAltSource.value == null) { // alternate source data invalid
|
||||
if (
|
||||
!naviCacheValueEntityFromAltSource.isSuccess ||
|
||||
naviCacheValueEntityFromAltSource.value == null
|
||||
) { // alternate source data invalid
|
||||
return null
|
||||
}
|
||||
|
||||
// Got data from alt source
|
||||
val naviCacheEntity = NaviCacheEntity(
|
||||
key = key,
|
||||
value = naviCacheValueEntityFromAltSource.value,
|
||||
version = naviCacheValueEntityFromAltSource.version ?: 1,
|
||||
ttl = naviCacheValueEntityFromAltSource.ttl,
|
||||
clearOnLogout = naviCacheValueEntityFromAltSource.clearOnLogout,
|
||||
metaData = naviCacheValueEntityFromAltSource.metaData
|
||||
)
|
||||
val naviCacheEntity =
|
||||
NaviCacheEntity(
|
||||
key = key,
|
||||
value = naviCacheValueEntityFromAltSource.value,
|
||||
version = naviCacheValueEntityFromAltSource.version ?: 1,
|
||||
ttl = naviCacheValueEntityFromAltSource.ttl,
|
||||
clearOnLogout = naviCacheValueEntityFromAltSource.clearOnLogout,
|
||||
metaData = naviCacheValueEntityFromAltSource.metaData
|
||||
)
|
||||
|
||||
save(naviCacheEntity = naviCacheEntity)
|
||||
|
||||
@@ -76,16 +79,18 @@ class NaviCacheRepository @Inject constructor(
|
||||
version: Long?,
|
||||
key: String
|
||||
): Boolean {
|
||||
if (naviCacheEntity == null) // value not present
|
||||
return false
|
||||
if (naviCacheEntity == null) // value not present
|
||||
return false
|
||||
|
||||
if (version != null && naviCacheEntity.version < version) { // outdated version
|
||||
if (version != null && naviCacheEntity.version < version) { // outdated version
|
||||
clear(key = key)
|
||||
return false
|
||||
}
|
||||
|
||||
if (naviCacheEntity.ttl != -1L &&
|
||||
((System.currentTimeMillis() - naviCacheEntity.updatedAt) > naviCacheEntity.ttl) // ttl expired
|
||||
if (
|
||||
naviCacheEntity.ttl != -1L &&
|
||||
((System.currentTimeMillis() - naviCacheEntity.updatedAt) >
|
||||
naviCacheEntity.ttl) // ttl expired
|
||||
) {
|
||||
clear(key = key)
|
||||
return false
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2021-2022 by Navi Technologies Limited
|
||||
* * Copyright © 2021-2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
@@ -11,6 +11,7 @@ import com.navi.base.deeplink.listener.DeepLinkListener
|
||||
|
||||
object DeepLinkManager {
|
||||
private var deepLinkListener: DeepLinkListener? = null
|
||||
|
||||
fun init(deepLinkListenerTemp: DeepLinkListener) {
|
||||
deepLinkListener = deepLinkListenerTemp
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ interface DeepLinkListener {
|
||||
requestCode: Int? = null,
|
||||
clearTask: Boolean? = false
|
||||
)
|
||||
|
||||
fun fetchBranchSDKData(
|
||||
activity: Activity,
|
||||
deeplink: String,
|
||||
|
||||
@@ -7,6 +7,4 @@
|
||||
|
||||
package com.navi.base.model
|
||||
|
||||
data class AppLaunchData(
|
||||
var properties: MutableMap<String, String>? = null
|
||||
)
|
||||
data class AppLaunchData(var properties: MutableMap<String, String>? = null)
|
||||
|
||||
@@ -14,15 +14,11 @@ import kotlinx.parcelize.RawValue
|
||||
|
||||
@Parcelize
|
||||
open class ClickableText(
|
||||
@SerializedName("text")
|
||||
val text: String? = null,
|
||||
@SerializedName("type")
|
||||
val type: String? = null,
|
||||
@SerializedName("subtype")
|
||||
val subtype: String? = null,
|
||||
@SerializedName("data")
|
||||
val data:@RawValue Any? = null
|
||||
): Parcelable
|
||||
@SerializedName("text") val text: String? = null,
|
||||
@SerializedName("type") val type: String? = null,
|
||||
@SerializedName("subtype") val subtype: String? = null,
|
||||
@SerializedName("data") val data: @RawValue Any? = null
|
||||
) : Parcelable
|
||||
|
||||
data class EmailSubjectBodyResponse(
|
||||
@SerializedName("recipientEmailIds") val recipientEmailIds: List<String>? = null,
|
||||
@@ -30,12 +26,9 @@ data class EmailSubjectBodyResponse(
|
||||
@SerializedName("body") val body: String? = null
|
||||
)
|
||||
|
||||
data class PhoneNumberResponse(
|
||||
@SerializedName("number")
|
||||
val number: String? = null
|
||||
)
|
||||
data class PhoneNumberResponse(@SerializedName("number") val number: String? = null)
|
||||
|
||||
enum class ClickableTextType{
|
||||
enum class ClickableTextType {
|
||||
EMAIL,
|
||||
PHONE,
|
||||
DEEPLINK,
|
||||
|
||||
@@ -30,4 +30,4 @@ data class CtaData(
|
||||
var bundle: Bundle? = null,
|
||||
@SerializedName("buttonState") val buttonState: String? = null,
|
||||
@SerializedName("needsResult") val needsResult: Boolean? = null
|
||||
) : NaviClickAction(), Parcelable
|
||||
) : NaviClickAction(), Parcelable
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2022-2023 by Navi Technologies Limited
|
||||
* * Copyright © 2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -9,13 +9,15 @@ package com.navi.base.model
|
||||
|
||||
import android.os.Parcelable
|
||||
import com.google.gson.annotations.SerializedName
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import java.io.Serializable
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Parcelize
|
||||
data class GenericAnalytics(
|
||||
@SerializedName("viewed", alternate = ["viewedData"]) val viewedData: GenericAnalyticsData? = null,
|
||||
@SerializedName("clicked", alternate = ["clickedData"]) val clickedData: GenericAnalyticsData? = null
|
||||
@SerializedName("viewed", alternate = ["viewedData"])
|
||||
val viewedData: GenericAnalyticsData? = null,
|
||||
@SerializedName("clicked", alternate = ["clickedData"])
|
||||
val clickedData: GenericAnalyticsData? = null
|
||||
) : Serializable, Parcelable
|
||||
|
||||
@Parcelize
|
||||
|
||||
@@ -10,8 +10,8 @@ package com.navi.base.model
|
||||
import android.os.Bundle
|
||||
import android.os.Parcelable
|
||||
import com.google.gson.annotations.SerializedName
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import java.io.Serializable
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
open class NaviClickAction
|
||||
|
||||
@@ -50,8 +50,11 @@ data class ActionData(
|
||||
|
||||
data class NaviWidgetInfoClick(val widgetId: String? = null) : NaviClickAction()
|
||||
|
||||
data class NaviBenefitsItemClick(val ctaData: CtaData? = null, val position: Int, val itemDescription: String?) :
|
||||
NaviClickAction()
|
||||
data class NaviBenefitsItemClick(
|
||||
val ctaData: CtaData? = null,
|
||||
val position: Int,
|
||||
val itemDescription: String?
|
||||
) : NaviClickAction()
|
||||
|
||||
data class NaviWidgetClickWithActionData(
|
||||
val widgetId: String? = null,
|
||||
@@ -60,10 +63,8 @@ data class NaviWidgetClickWithActionData(
|
||||
val isFinish: Boolean = false
|
||||
) : NaviClickAction()
|
||||
|
||||
data class RefereeBottomSheet(
|
||||
val bundle: Bundle,
|
||||
val actionData: ActionData? = null
|
||||
) : NaviClickAction()
|
||||
data class RefereeBottomSheet(val bundle: Bundle, val actionData: ActionData? = null) :
|
||||
NaviClickAction()
|
||||
|
||||
data class NaviWidgetClickWithCtaData(
|
||||
val widgetId: String? = null,
|
||||
@@ -71,7 +72,10 @@ data class NaviWidgetClickWithCtaData(
|
||||
val ctaData: CtaData? = null
|
||||
) : NaviClickAction()
|
||||
|
||||
data class FundDocumentDownloadWidgetClickAction(val downloadUrl: String ,val metaData: GenericAnalytics?) : NaviClickAction()
|
||||
data class FundDocumentDownloadWidgetClickAction(
|
||||
val downloadUrl: String,
|
||||
val metaData: GenericAnalytics?
|
||||
) : NaviClickAction()
|
||||
|
||||
data class ValueWidgetClickAction(val value: String? = null, val identifierKey: String? = null) :
|
||||
NaviClickAction()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2022 by Navi Technologies Limited
|
||||
* * Copyright © 2022-2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
@@ -17,4 +17,4 @@ data class Padding(
|
||||
@SerializedName("endDp") var endDp: Float = 0.0f,
|
||||
@SerializedName("topDp") var topDp: Float = 0.0f,
|
||||
@SerializedName("bottomDp") var bottomDp: Float = 0.0f
|
||||
): Parcelable
|
||||
) : Parcelable
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
/*
|
||||
*
|
||||
* *
|
||||
* * * Copyright © 2022 by Navi Technologies Private Limited
|
||||
* * * All rights reserved. Strictly confidential
|
||||
* *
|
||||
* * Copyright © 2022-2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -13,4 +11,4 @@ enum class AlgorithmKeyEnum {
|
||||
SHA1,
|
||||
SHA256,
|
||||
MD5
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
/*
|
||||
*
|
||||
* *
|
||||
* * * Copyright © 2022 by Navi Technologies Private Limited
|
||||
* * * All rights reserved. Strictly confidential
|
||||
* *
|
||||
* * Copyright © 2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -21,9 +19,7 @@ import java.security.NoSuchAlgorithmException
|
||||
|
||||
object AppKeyHelper {
|
||||
|
||||
/**
|
||||
* @param key string like: SHA1, SHA256, MD5.
|
||||
*/
|
||||
/** @param key string like: SHA1, SHA256, MD5. */
|
||||
@SuppressLint("PackageManagerGetSignatures")
|
||||
fun getKey(context: Context, key: String, applicationId: String): String? =
|
||||
try {
|
||||
@@ -57,21 +53,18 @@ object AppKeyHelper {
|
||||
): ArrayList<String> {
|
||||
val generatedKeyList: ArrayList<String> = ArrayList()
|
||||
try {
|
||||
val signatures = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
context.packageManager.getPackageInfo(
|
||||
applicationId,
|
||||
PackageManager.GET_SIGNING_CERTIFICATES
|
||||
)
|
||||
.signingInfo
|
||||
.apkContentsSigners
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
context.packageManager
|
||||
.getPackageInfo(
|
||||
applicationId,
|
||||
PackageManager.GET_SIGNATURES
|
||||
).signatures
|
||||
}
|
||||
val signatures =
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
context.packageManager
|
||||
.getPackageInfo(applicationId, PackageManager.GET_SIGNING_CERTIFICATES)
|
||||
.signingInfo
|
||||
.apkContentsSigners
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
context.packageManager
|
||||
.getPackageInfo(applicationId, PackageManager.GET_SIGNATURES)
|
||||
.signatures
|
||||
}
|
||||
|
||||
for (signature in signatures) {
|
||||
val md: MessageDigest = MessageDigest.getInstance(key)
|
||||
@@ -87,8 +80,7 @@ object AppKeyHelper {
|
||||
}
|
||||
generatedKeyList.add(toRet.toString())
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
}
|
||||
} catch (_: Exception) {}
|
||||
return generatedKeyList
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
/*
|
||||
*
|
||||
* *
|
||||
* * * Copyright © 2023 by Navi Technologies Private Limited
|
||||
* * * All rights reserved. Strictly confidential
|
||||
* *
|
||||
* * Copyright © 2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -32,25 +30,28 @@ class EncryptionHashInterceptor(private val context: Context) : Interceptor {
|
||||
val buffer = Buffer()
|
||||
body.writeTo(buffer)
|
||||
val epochTime = System.currentTimeMillis().toString()
|
||||
val key = getKey(
|
||||
deviceId = BaseUtils.getDeviceId(context),
|
||||
sha256 = AppKeyHelper.getKey(
|
||||
context,
|
||||
AlgorithmKeyEnum.SHA256.name,
|
||||
context.packageName
|
||||
).orEmpty(),
|
||||
timeStamp = epochTime,
|
||||
packageName = context.packageName
|
||||
)
|
||||
val headerBuilder = request.headers.newBuilder().apply {
|
||||
add(HEADER_SIGNATURE, key)
|
||||
add(HEADER_EPOCH, epochTime)
|
||||
}
|
||||
val key =
|
||||
getKey(
|
||||
deviceId = BaseUtils.getDeviceId(context),
|
||||
sha256 =
|
||||
AppKeyHelper.getKey(
|
||||
context,
|
||||
AlgorithmKeyEnum.SHA256.name,
|
||||
context.packageName
|
||||
)
|
||||
.orEmpty(),
|
||||
timeStamp = epochTime,
|
||||
packageName = context.packageName
|
||||
)
|
||||
val headerBuilder =
|
||||
request.headers.newBuilder().apply {
|
||||
add(HEADER_SIGNATURE, key)
|
||||
add(HEADER_EPOCH, epochTime)
|
||||
}
|
||||
request = request.newBuilder().headers(headerBuilder.build()).build()
|
||||
chain.proceed(request)
|
||||
} ?: run {
|
||||
chain.proceed(request)
|
||||
}
|
||||
?: run { chain.proceed(request) }
|
||||
}
|
||||
|
||||
private external fun getKey(
|
||||
@@ -59,5 +60,4 @@ class EncryptionHashInterceptor(private val context: Context) : Interceptor {
|
||||
timeStamp: String,
|
||||
packageName: String
|
||||
): String
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2019-2022 by Navi Technologies Limited
|
||||
* * Copyright © 2019-2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
@@ -65,7 +65,6 @@ object PreferenceManager {
|
||||
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
|
||||
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
|
||||
)
|
||||
|
||||
} catch (e: Exception) {
|
||||
// NaviTrackEvent.trackEventOnClickStream(
|
||||
// "secure_shared_pref_crash",
|
||||
@@ -99,6 +98,7 @@ object PreferenceManager {
|
||||
editor.putInt(key, value)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getIntPreferenceApp(key: String): Int {
|
||||
return sharedPreferencesForApp.getInt(key, 0)
|
||||
}
|
||||
@@ -108,6 +108,7 @@ object PreferenceManager {
|
||||
editor.putInt(key, value)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
fun getBooleanPreference(key: String, defValue: Boolean = false): Boolean {
|
||||
return sharedPreferencesForSession.getBoolean(key, defValue)
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ package com.navi.base.utils
|
||||
import com.navi.base.model.AppLaunchData
|
||||
import com.navi.base.sharedpref.PreferenceManager
|
||||
|
||||
|
||||
object AppLaunchUtils {
|
||||
private const val APP_RELAUNCHED = "APP_RELAUNCHED"
|
||||
const val HOME_ITEMS_LAUNCH = "HOME_ITEMS_LAUNCH"
|
||||
@@ -25,10 +24,7 @@ object AppLaunchUtils {
|
||||
|
||||
fun setAppOpenStatus(key: String) {
|
||||
val appLaunchData =
|
||||
PreferenceManager.getObjectPrefrences(
|
||||
APP_RELAUNCHED,
|
||||
AppLaunchData::class.java
|
||||
)
|
||||
PreferenceManager.getObjectPrefrences(APP_RELAUNCHED, AppLaunchData::class.java)
|
||||
if (appLaunchData?.properties == null) {
|
||||
appLaunchData?.properties = mutableMapOf()
|
||||
}
|
||||
@@ -38,10 +34,7 @@ object AppLaunchUtils {
|
||||
|
||||
fun isLandingFirstTimeAfterAppOpen(key: String): Boolean {
|
||||
val appLaunchData =
|
||||
PreferenceManager.getObjectPrefrences(
|
||||
APP_RELAUNCHED,
|
||||
AppLaunchData::class.java
|
||||
)
|
||||
PreferenceManager.getObjectPrefrences(APP_RELAUNCHED, AppLaunchData::class.java)
|
||||
return if (appLaunchData == null) {
|
||||
true
|
||||
} else {
|
||||
|
||||
@@ -168,7 +168,8 @@ object BaseUtils {
|
||||
"MOBILE_CHANGE" -> "When User changed mobile number for Account discovery"
|
||||
"MOBILE_VERIFIED" -> "When User's new mobile number is verified using OTP"
|
||||
"CONSENT_GRANTED" -> "When User grants consent successfully"
|
||||
"CONSENT_REJECTED" -> "When User rejects consent i.e. does not proceed with FIP selection"
|
||||
"CONSENT_REJECTED" ->
|
||||
"When User rejects consent i.e. does not proceed with FIP selection"
|
||||
"ALTERNATIVE_CHOSEN" -> "When User selects alternative mechanism instead of AA"
|
||||
"DATA_REQUESTED" -> "When data is requested from AA"
|
||||
"DATA_RECEIVED" -> "When data is received from AA"
|
||||
@@ -190,7 +191,6 @@ object BaseUtils {
|
||||
return count > 1
|
||||
}
|
||||
|
||||
|
||||
fun cleanDecimalString(decimalString: String): String {
|
||||
if (decimalString.contains('.')) {
|
||||
var decimalValue = decimalString
|
||||
@@ -201,7 +201,7 @@ object BaseUtils {
|
||||
return decimalString
|
||||
}
|
||||
|
||||
fun stripTrailingCharacters(str:String, char:Char):String{
|
||||
fun stripTrailingCharacters(str: String, char: Char): String {
|
||||
val sb: StringBuilder = StringBuilder(str)
|
||||
while (sb.length > 0 && sb[sb.length - 1] == char) {
|
||||
sb.setLength(sb.length - 1)
|
||||
@@ -234,7 +234,8 @@ object BaseUtils {
|
||||
if (decimalValue.length == 1) {
|
||||
decimalValue += "0"
|
||||
}
|
||||
return numberToWords(result).plus(" and ")
|
||||
return numberToWords(result)
|
||||
.plus(" and ")
|
||||
.plus(numberToWords(decimalValue, "paise", "paise").lowercase())
|
||||
} else {
|
||||
return numberToWords(splitValues[0])
|
||||
@@ -378,15 +379,17 @@ object BaseUtils {
|
||||
updatedPulseBaseUrl: String?,
|
||||
context: Context?
|
||||
) {
|
||||
val updateBaseUrl = checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_BASE_URL,
|
||||
updatedValue = updatedBaseUrl
|
||||
)
|
||||
val updateBaseUrl =
|
||||
checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_BASE_URL,
|
||||
updatedValue = updatedBaseUrl
|
||||
)
|
||||
|
||||
val updatePulseBaseUrl = checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_PULSE_BASE_URL,
|
||||
updatedValue = updatedPulseBaseUrl
|
||||
)
|
||||
val updatePulseBaseUrl =
|
||||
checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_PULSE_BASE_URL,
|
||||
updatedValue = updatedPulseBaseUrl
|
||||
)
|
||||
|
||||
if (updateBaseUrl || updatePulseBaseUrl) {
|
||||
triggerAppRestart(context = context)
|
||||
@@ -419,13 +422,12 @@ object BaseUtils {
|
||||
context?.startActivity(mainIntent)
|
||||
try {
|
||||
Runtime.getRuntime().exit(0)
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
} catch (e: Exception) {}
|
||||
}
|
||||
|
||||
/**
|
||||
* This function formats the entered digits in a group of 5
|
||||
* For ex: any phone number will be formatted as: 12345 67890
|
||||
* This function formats the entered digits in a group of 5 For ex: any phone number will be
|
||||
* formatted as: 12345 67890
|
||||
*/
|
||||
fun phoneFormat(value: String): String {
|
||||
var tempValue = value
|
||||
@@ -444,15 +446,14 @@ object BaseUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* This function formats the entered amount with commas
|
||||
* For ex: 1000000 will be formatted as 10,00,000
|
||||
* This function formats the entered amount with commas For ex: 1000000 will be formatted as
|
||||
* 10,00,000
|
||||
*/
|
||||
fun moneyFormat(value: String): String {
|
||||
var tempValue = value.toDoubleWithSafe().toLong().toString()
|
||||
var result = EMPTY
|
||||
tempValue = tempValue.replace(COMMA, EMPTY)
|
||||
if (tempValue.isEmpty())
|
||||
return result
|
||||
if (tempValue.isEmpty()) return result
|
||||
val lastDigit = tempValue[tempValue.length - 1]
|
||||
val len = tempValue.length - 1
|
||||
var nDigits = 0
|
||||
@@ -466,27 +467,23 @@ object BaseUtils {
|
||||
return result + lastDigit
|
||||
}
|
||||
|
||||
fun saveUpdatedBaseUrlAndRestart(
|
||||
updatedBaseUrl: String?,
|
||||
context: Context?
|
||||
) {
|
||||
val updateBaseUrl = checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_BASE_URL,
|
||||
updatedValue = updatedBaseUrl
|
||||
)
|
||||
fun saveUpdatedBaseUrlAndRestart(updatedBaseUrl: String?, context: Context?) {
|
||||
val updateBaseUrl =
|
||||
checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_BASE_URL,
|
||||
updatedValue = updatedBaseUrl
|
||||
)
|
||||
if (updateBaseUrl) {
|
||||
triggerAppRestart(context = context)
|
||||
}
|
||||
}
|
||||
|
||||
fun saveUpdatedVersionCodeAndRestart(
|
||||
updatedVersionCode: String?,
|
||||
context: Context?
|
||||
) {
|
||||
val updatedVersionCode = checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_VERSION_CODE,
|
||||
updatedValue = updatedVersionCode
|
||||
)
|
||||
fun saveUpdatedVersionCodeAndRestart(updatedVersionCode: String?, context: Context?) {
|
||||
val updatedVersionCode =
|
||||
checkDiffAndSaveDataInSharedPreference(
|
||||
sharedPrefKey = UPDATED_VERSION_CODE,
|
||||
updatedValue = updatedVersionCode
|
||||
)
|
||||
if (updatedVersionCode) {
|
||||
triggerAppRestart(context = context)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2022 by Navi Technologies Limited
|
||||
* * Copyright © 2022-2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -16,6 +16,7 @@ object CurrencyUtils {
|
||||
private const val LAKHS = "Lakhs"
|
||||
private const val LAKH = "Lakh"
|
||||
private const val RUPEE_SYMBOL = "\u20B9"
|
||||
|
||||
fun getNormalizedAmount(amount: BigDecimal): String {
|
||||
return getNormalizedAmount(amount, true)
|
||||
}
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2023 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.base.utils
|
||||
|
||||
import org.joda.time.DateTime
|
||||
@@ -5,18 +12,12 @@ import org.joda.time.format.DateTimeFormat
|
||||
|
||||
object DateUtils {
|
||||
|
||||
fun getFormattedDateTimeAsStringFromDateTimeObject(
|
||||
dateTime: DateTime,
|
||||
format: String
|
||||
): String {
|
||||
fun getFormattedDateTimeAsStringFromDateTimeObject(dateTime: DateTime, format: String): String {
|
||||
val dateTimeFormatter = DateTimeFormat.forPattern(format)
|
||||
return dateTimeFormatter.print(dateTime)
|
||||
}
|
||||
|
||||
fun getDateTimeObjectFromDateTimeString(
|
||||
dateTime: String,
|
||||
format: String
|
||||
): DateTime {
|
||||
fun getDateTimeObjectFromDateTimeString(dateTime: String, format: String): DateTime {
|
||||
val dateTimeFormatter = DateTimeFormat.forPattern(format)
|
||||
return dateTimeFormatter.parseDateTime(dateTime)
|
||||
}
|
||||
@@ -26,14 +27,12 @@ object DateUtils {
|
||||
sourceFormat: String,
|
||||
destinationFormat: String
|
||||
): String {
|
||||
val dateTimeObject = getDateTimeObjectFromDateTimeString(
|
||||
dateTime = dateTime,
|
||||
format = sourceFormat
|
||||
)
|
||||
val dateTimeObject =
|
||||
getDateTimeObjectFromDateTimeString(dateTime = dateTime, format = sourceFormat)
|
||||
|
||||
return getFormattedDateTimeAsStringFromDateTimeObject(
|
||||
dateTime = dateTimeObject,
|
||||
format = destinationFormat
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,61 +98,62 @@ fun Float.getLesserMultiple(x: Int): Float {
|
||||
}
|
||||
|
||||
val showLoaderWhenGetSet = mutableSetOf("/pre-quotes/")
|
||||
val doNotShowLoaderWhenPostSet = mutableSetOf(
|
||||
USER_DEVICE_DATA_LOCATION_API,
|
||||
USER_DEVICE_DATA_APP_API,
|
||||
"/v1/cards/",
|
||||
"/customer-device/customer/me/data-ingestion-status",
|
||||
"/navipay/customer",
|
||||
"/navipay/bind-device",
|
||||
"/navipay/banks/remove-account",
|
||||
"/navipay/list-banks",
|
||||
"/navipay/banks/fetch-accounts",
|
||||
"/navipay/bind-device",
|
||||
"/navipay/account/linked-accounts",
|
||||
"/navipay/account/otp",
|
||||
"/navipay/npci/token",
|
||||
"/navipay/account/balance",
|
||||
"/navipay/v1/txn/sendMoney",
|
||||
"/navipay/mandates/list",
|
||||
"/navipay/v1/vpa/validate",
|
||||
"/navipay/v1/txn/history",
|
||||
"/navipay/complaints/list",
|
||||
"/navipay/complaints/type",
|
||||
"/navipay/v1/txn/requestMoney",
|
||||
"/navipay/v1/txn/listPending",
|
||||
"/navipay/v1/txn/status",
|
||||
"/navipay/v1/vpa/blockAndSpam",
|
||||
"/navipay/v1/vpa/block/list",
|
||||
"/navipay/v1/vpa/unblock",
|
||||
"/navipay/v1/txn/history/mandate",
|
||||
"/navipay/v1/txn/approve-decline",
|
||||
"/navipay/mandates/create",
|
||||
"/navipay/mandates/review",
|
||||
"/navipay/mandates/pause",
|
||||
"/navipay/mandates/revoke",
|
||||
"/navipay/mandates/status",
|
||||
"/navipay/upiMapper/listUpiNumbers",
|
||||
"/navipay/upiMapper/update",
|
||||
"/navipay/upiMapper/changeVpa",
|
||||
"/navipay/upiMapper/check",
|
||||
"/navipay/upiMapper/create",
|
||||
"/navipay/complaints/raise",
|
||||
"/navipay/complaints/status",
|
||||
"/navipay/mandates/detail",
|
||||
"/navipay/v1/txn/additional-details",
|
||||
"/navipay/qr/parse",
|
||||
"/navipay/requestId/fetch",
|
||||
"/navipay/v1/uiTron",
|
||||
"/navipay/phone-number/vpa"
|
||||
)
|
||||
val doNotShowLoaderWhenPostSet =
|
||||
mutableSetOf(
|
||||
USER_DEVICE_DATA_LOCATION_API,
|
||||
USER_DEVICE_DATA_APP_API,
|
||||
"/v1/cards/",
|
||||
"/customer-device/customer/me/data-ingestion-status",
|
||||
"/navipay/customer",
|
||||
"/navipay/bind-device",
|
||||
"/navipay/banks/remove-account",
|
||||
"/navipay/list-banks",
|
||||
"/navipay/banks/fetch-accounts",
|
||||
"/navipay/bind-device",
|
||||
"/navipay/account/linked-accounts",
|
||||
"/navipay/account/otp",
|
||||
"/navipay/npci/token",
|
||||
"/navipay/account/balance",
|
||||
"/navipay/v1/txn/sendMoney",
|
||||
"/navipay/mandates/list",
|
||||
"/navipay/v1/vpa/validate",
|
||||
"/navipay/v1/txn/history",
|
||||
"/navipay/complaints/list",
|
||||
"/navipay/complaints/type",
|
||||
"/navipay/v1/txn/requestMoney",
|
||||
"/navipay/v1/txn/listPending",
|
||||
"/navipay/v1/txn/status",
|
||||
"/navipay/v1/vpa/blockAndSpam",
|
||||
"/navipay/v1/vpa/block/list",
|
||||
"/navipay/v1/vpa/unblock",
|
||||
"/navipay/v1/txn/history/mandate",
|
||||
"/navipay/v1/txn/approve-decline",
|
||||
"/navipay/mandates/create",
|
||||
"/navipay/mandates/review",
|
||||
"/navipay/mandates/pause",
|
||||
"/navipay/mandates/revoke",
|
||||
"/navipay/mandates/status",
|
||||
"/navipay/upiMapper/listUpiNumbers",
|
||||
"/navipay/upiMapper/update",
|
||||
"/navipay/upiMapper/changeVpa",
|
||||
"/navipay/upiMapper/check",
|
||||
"/navipay/upiMapper/create",
|
||||
"/navipay/complaints/raise",
|
||||
"/navipay/complaints/status",
|
||||
"/navipay/mandates/detail",
|
||||
"/navipay/v1/txn/additional-details",
|
||||
"/navipay/qr/parse",
|
||||
"/navipay/requestId/fetch",
|
||||
"/navipay/v1/uiTron",
|
||||
"/navipay/phone-number/vpa"
|
||||
)
|
||||
|
||||
fun isDataNeedsToUpdate(method: String, url: String, moduleName: String = ""): Boolean {
|
||||
if (method == "GET") {
|
||||
return isContains(showLoaderWhenGetSet, url)
|
||||
}
|
||||
|
||||
//module name enum is not available in base, so added string check
|
||||
// module name enum is not available in base, so added string check
|
||||
if (moduleName == "NAVIPAY") {
|
||||
return !endsWith(doNotShowLoaderWhenPostSet, url)
|
||||
}
|
||||
|
||||
@@ -24,30 +24,29 @@ class AppLaunchUtilsTest {
|
||||
|
||||
@Test
|
||||
fun resetAppOpenOnLaunch() {
|
||||
every { PreferenceManager.setObjectPreference("APP_RELAUNCHED", AppLaunchData())} just runs
|
||||
every { PreferenceManager.setObjectPreference("APP_RELAUNCHED", AppLaunchData()) } just runs
|
||||
AppLaunchUtils.resetAppOpenOnLaunch()
|
||||
every { PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java) } returns AppLaunchData()
|
||||
every {
|
||||
PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java)
|
||||
} returns AppLaunchData()
|
||||
assertEquals(true, AppLaunchUtils.isLandingFirstTimeAfterAppOpen("home"))
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun isLandingFirstTimeAfterAppOpen() {
|
||||
every { PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java) } returns null
|
||||
every {
|
||||
PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java)
|
||||
} returns null
|
||||
assertEquals(true, AppLaunchUtils.isLandingFirstTimeAfterAppOpen("home"))
|
||||
|
||||
every { PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java) } returns AppLaunchData(
|
||||
properties = mutableMapOf(
|
||||
Pair("home","true")
|
||||
)
|
||||
)
|
||||
every {
|
||||
PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java)
|
||||
} returns AppLaunchData(properties = mutableMapOf(Pair("home", "true")))
|
||||
assertEquals(false, AppLaunchUtils.isLandingFirstTimeAfterAppOpen("home"))
|
||||
|
||||
every { PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java) } returns AppLaunchData(
|
||||
properties = mutableMapOf(
|
||||
Pair("home","false")
|
||||
)
|
||||
)
|
||||
every {
|
||||
PreferenceManager.getObjectPrefrences("APP_RELAUNCHED", AppLaunchData::class.java)
|
||||
} returns AppLaunchData(properties = mutableMapOf(Pair("home", "false")))
|
||||
assertEquals(true, AppLaunchUtils.isLandingFirstTimeAfterAppOpen("home"))
|
||||
}
|
||||
|
||||
|
||||
@@ -18,218 +18,387 @@ import org.junit.Assert
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
|
||||
class BaseUtilsTest {
|
||||
lateinit var context:Context
|
||||
@MockK
|
||||
lateinit var connectivityManager:ConnectivityManager
|
||||
lateinit var context: Context
|
||||
@MockK lateinit var connectivityManager: ConnectivityManager
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
MockKAnnotations.init(this)
|
||||
mockkObject(PreferenceManager)
|
||||
context = mockk<Context>(relaxed = true)
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isUserLoggedIn_secureStringNonNull_returnTrue(){
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns "dfasdfasd341234dfasasdf"
|
||||
fun isUserLoggedIn_secureStringNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns
|
||||
"dfasdfasd341234dfasasdf"
|
||||
Assert.assertEquals(true, BaseUtils.isUserLoggedIn())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isUserLoggedIn_secureStringNull_stringPreferenceNull_returnFalse(){
|
||||
fun isUserLoggedIn_secureStringNull_stringPreferenceNull_returnFalse() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns
|
||||
null
|
||||
Assert.assertEquals(false, BaseUtils.isUserLoggedIn())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isUserLoggedIn_secureStringNull_stringPreferenceNonNull_returnTrue(){
|
||||
fun isUserLoggedIn_secureStringNull_stringPreferenceNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns "addsf34432423dafsa"
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns
|
||||
"addsf34432423dafsa"
|
||||
Assert.assertEquals(true, BaseUtils.isUserLoggedIn())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getSessionToken_secureStringNonNull_returnTrue(){
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns "dfasdfasd341234dfasasdf"
|
||||
fun getSessionToken_secureStringNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns
|
||||
"dfasdfasd341234dfasasdf"
|
||||
Assert.assertEquals("dfasdfasd341234dfasasdf", BaseUtils.getSessionToken())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getSessionToken_secureStringNull_stringPreferenceNonNull_returnTrue(){
|
||||
fun getSessionToken_secureStringNull_stringPreferenceNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns "dfasdfasd341234dfasasdf"
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns
|
||||
"dfasdfasd341234dfasasdf"
|
||||
Assert.assertEquals("dfasdfasd341234dfasasdf", BaseUtils.getSessionToken())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getSessionToken_secureStringNull_stringPreferenceNull_returnNull(){
|
||||
fun getSessionToken_secureStringNull_stringPreferenceNull_returnNull() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.SESSION_TOKEN) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.SESSION_TOKEN) } returns
|
||||
null
|
||||
Assert.assertEquals(null, BaseUtils.getSessionToken())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getPhoneNumber_secureStringNonNull_returnTrue(){
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.PHONE_NUMBER) } returns "6666612345"
|
||||
fun getPhoneNumber_secureStringNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.PHONE_NUMBER) } returns
|
||||
"6666612345"
|
||||
Assert.assertEquals("6666612345", BaseUtils.getPhoneNumber())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getPhoneNumber_secureStringNull_stringPreferenceNonNull_returnTrue(){
|
||||
fun getPhoneNumber_secureStringNull_stringPreferenceNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.PHONE_NUMBER) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.PHONE_NUMBER) } returns "6666612345"
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.PHONE_NUMBER) } returns
|
||||
"6666612345"
|
||||
Assert.assertEquals("6666612345", BaseUtils.getPhoneNumber())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getPhoneNumber_secureStringNull_stringPreferenceNull_returnNull(){
|
||||
fun getPhoneNumber_secureStringNull_stringPreferenceNull_returnNull() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.PHONE_NUMBER) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.PHONE_NUMBER) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.PHONE_NUMBER) } returns
|
||||
null
|
||||
Assert.assertEquals(null, BaseUtils.getPhoneNumber())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getEmail_secureStringNonNull_returnTrue(){
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.EMAIL) } returns "test@navi.com"
|
||||
fun getEmail_secureStringNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.EMAIL) } returns
|
||||
"test@navi.com"
|
||||
Assert.assertEquals("test@navi.com", BaseUtils.getEmail())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getEmail_secureStringNull_stringPreferenceNonNull_returnTrue(){
|
||||
fun getEmail_secureStringNull_stringPreferenceNonNull_returnTrue() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.EMAIL) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.EMAIL) } returns "test@navi.com"
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.EMAIL) } returns
|
||||
"test@navi.com"
|
||||
Assert.assertEquals("test@navi.com", BaseUtils.getEmail())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getEmail_secureStringNull_stringPreferenceNull_returnNull(){
|
||||
fun getEmail_secureStringNull_stringPreferenceNull_returnNull() {
|
||||
every { PreferenceManager.getSecureString(CommonPrefConstants.EMAIL) } returns null
|
||||
every { PreferenceManager.getStringPreference(CommonPrefConstants.EMAIL) } returns null
|
||||
Assert.assertEquals(null, BaseUtils.getEmail())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isNetworkAvailable_returnTrue(){
|
||||
fun isNetworkAvailable_returnTrue() {
|
||||
every { context.getSystemService(Context.CONNECTIVITY_SERVICE) } returns connectivityManager
|
||||
every { connectivityManager.activeNetworkInfo?.isConnected } returns true
|
||||
Assert.assertEquals(true, BaseUtils.isNetworkAvailable(context))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isNetworkAvailable_returnFalse(){
|
||||
fun isNetworkAvailable_returnFalse() {
|
||||
every { context.getSystemService(Context.CONNECTIVITY_SERVICE) } returns connectivityManager
|
||||
every { connectivityManager.activeNetworkInfo?.isConnected } returns false
|
||||
Assert.assertEquals(false, BaseUtils.isNetworkAvailable(context))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isNetworkAvailable_connectivityManagerNull_returnFalse(){
|
||||
fun isNetworkAvailable_connectivityManagerNull_returnFalse() {
|
||||
Assert.assertEquals(false, BaseUtils.isNetworkAvailable(context))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isFirebaseTokenRefreshed_returnTrue(){
|
||||
every { PreferenceManager.getBooleanPreferenceApp(CommonPrefConstants.IS_FIREBASE_TOKEN_REFRESHED) } returns true
|
||||
fun isFirebaseTokenRefreshed_returnTrue() {
|
||||
every {
|
||||
PreferenceManager.getBooleanPreferenceApp(
|
||||
CommonPrefConstants.IS_FIREBASE_TOKEN_REFRESHED
|
||||
)
|
||||
} returns true
|
||||
Assert.assertEquals(true, BaseUtils.isFirebaseTokenRefreshed())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun isFirebaseTokenRefreshed_returnFalse(){
|
||||
every { PreferenceManager.getBooleanPreferenceApp(CommonPrefConstants.IS_FIREBASE_TOKEN_REFRESHED) } returns false
|
||||
fun isFirebaseTokenRefreshed_returnFalse() {
|
||||
every {
|
||||
PreferenceManager.getBooleanPreferenceApp(
|
||||
CommonPrefConstants.IS_FIREBASE_TOKEN_REFRESHED
|
||||
)
|
||||
} returns false
|
||||
Assert.assertEquals(false, BaseUtils.isFirebaseTokenRefreshed())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getPhoneNumberWithCountryCode_numberWithoutPrefix_returnTrue(){
|
||||
fun getPhoneNumberWithCountryCode_numberWithoutPrefix_returnTrue() {
|
||||
every { BaseUtils.getPhoneNumber() } returns "6666612345"
|
||||
Assert.assertEquals("+91 6666612345", BaseUtils.getPhoneNumberWithCountryCode())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getPhoneNumberWithCountryCode_numberWithPrefix_returnTrue(){
|
||||
fun getPhoneNumberWithCountryCode_numberWithPrefix_returnTrue() {
|
||||
every { BaseUtils.getPhoneNumber() } returns "+91 6666612345"
|
||||
Assert.assertEquals("+91 6666612345", BaseUtils.getPhoneNumberWithCountryCode())
|
||||
//TODO: Query about testing scenarios
|
||||
// TODO: Query about testing scenarios
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetDigioExceptionReasonForAadhaarOtp(){
|
||||
fun testGetDigioExceptionReasonForAadhaarOtp() {
|
||||
Assert.assertEquals("Reason Unknown", BaseUtils.getDigioExceptionReasonForAadhaarOtp(null))
|
||||
Assert.assertEquals("Reason Unknown", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1000))
|
||||
Assert.assertEquals("Invalid Input", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1001))
|
||||
Assert.assertEquals("Init not called yet.", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1002))
|
||||
Assert.assertEquals(
|
||||
"Init not called yet.",
|
||||
BaseUtils.getDigioExceptionReasonForAadhaarOtp(1002)
|
||||
)
|
||||
Assert.assertEquals("User Cancelled", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1003))
|
||||
Assert.assertEquals("Internal Error, Try after some time", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1004))
|
||||
Assert.assertEquals("Internet not connected", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1005))
|
||||
Assert.assertEquals("Server Error, Try after some time", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1006))
|
||||
Assert.assertEquals("Error from UIDAI", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1007))
|
||||
Assert.assertEquals("Authentication Failed", BaseUtils.getDigioExceptionReasonForAadhaarOtp(1008))
|
||||
Assert.assertEquals(
|
||||
"Internal Error, Try after some time",
|
||||
BaseUtils.getDigioExceptionReasonForAadhaarOtp(1004)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Internet not connected",
|
||||
BaseUtils.getDigioExceptionReasonForAadhaarOtp(1005)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Server Error, Try after some time",
|
||||
BaseUtils.getDigioExceptionReasonForAadhaarOtp(1006)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Error from UIDAI",
|
||||
BaseUtils.getDigioExceptionReasonForAadhaarOtp(1007)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Authentication Failed",
|
||||
BaseUtils.getDigioExceptionReasonForAadhaarOtp(1008)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetHyperVergeReasonForSelfieVerification(){
|
||||
Assert.assertEquals("INTERNAL_SDK_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(2))
|
||||
Assert.assertEquals("OPERATION_CANCELLED_BY_USER_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(3))
|
||||
Assert.assertEquals("PERMISSIONS_NOT_GRANTED_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(4))
|
||||
fun testGetHyperVergeReasonForSelfieVerification() {
|
||||
Assert.assertEquals(
|
||||
"INTERNAL_SDK_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(2)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"OPERATION_CANCELLED_BY_USER_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(3)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"PERMISSIONS_NOT_GRANTED_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(4)
|
||||
)
|
||||
Assert.assertEquals("HARDWARE_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(5))
|
||||
Assert.assertEquals("INPUT_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(6))
|
||||
Assert.assertEquals("QR_PARSER_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(7))
|
||||
Assert.assertEquals("LOCATION_PERMISSION_NOT_AVAILABLE_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(8))
|
||||
Assert.assertEquals("INITIALIZATION_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(11))
|
||||
Assert.assertEquals(
|
||||
"QR_PARSER_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(7)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"LOCATION_PERMISSION_NOT_AVAILABLE_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(8)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"INITIALIZATION_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(11)
|
||||
)
|
||||
Assert.assertEquals("NETWORK_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(12))
|
||||
Assert.assertEquals("INTERNAL_SERVER_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(14))
|
||||
Assert.assertEquals("SSL_CONNECT_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(15))
|
||||
Assert.assertEquals("ACTIVE_SESSION_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(16))
|
||||
Assert.assertEquals("TRANSACTION_ID_EMPTY", BaseUtils.getHyperVergeReasonForSelfieVerification(17))
|
||||
Assert.assertEquals("SIGNATURE_FAILED_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(18))
|
||||
Assert.assertEquals("FACE_DETECTION_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(22))
|
||||
Assert.assertEquals("BLURRY_FACE_DETECTION_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(23))
|
||||
Assert.assertEquals("INSTRUCTION_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(31))
|
||||
Assert.assertEquals("QR_SCANNER_ERROR", BaseUtils.getHyperVergeReasonForSelfieVerification(32))
|
||||
Assert.assertEquals("GPS_ACCESS_DENIED", BaseUtils.getHyperVergeReasonForSelfieVerification(33))
|
||||
Assert.assertEquals(
|
||||
"INTERNAL_SERVER_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(14)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"SSL_CONNECT_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(15)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"ACTIVE_SESSION_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(16)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"TRANSACTION_ID_EMPTY",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(17)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"SIGNATURE_FAILED_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(18)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"FACE_DETECTION_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(22)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"BLURRY_FACE_DETECTION_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(23)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"INSTRUCTION_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(31)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"QR_SCANNER_ERROR",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(32)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"GPS_ACCESS_DENIED",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(33)
|
||||
)
|
||||
Assert.assertEquals("REASON_UNKNOWN", BaseUtils.getHyperVergeReasonForSelfieVerification(1))
|
||||
Assert.assertEquals("REASON_UNKNOWN", BaseUtils.getHyperVergeReasonForSelfieVerification(10))
|
||||
Assert.assertEquals("REASON_UNKNOWN", BaseUtils.getHyperVergeReasonForSelfieVerification(null))
|
||||
Assert.assertEquals(
|
||||
"REASON_UNKNOWN",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(10)
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"REASON_UNKNOWN",
|
||||
BaseUtils.getHyperVergeReasonForSelfieVerification(null)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetFinarkeinEventDescription(){
|
||||
Assert.assertEquals("User has opened Anubhav journey", BaseUtils.getFinarkeinEventDescription("OPEN"))
|
||||
Assert.assertEquals("Recoverable error occurred in the Anubhav flow", BaseUtils.getFinarkeinEventDescription("ERROR"))
|
||||
Assert.assertEquals("Event is not handled by Anubhab SDK", BaseUtils.getFinarkeinEventDescription("UNKNOWN"))
|
||||
Assert.assertEquals("User has exited without completing journey", BaseUtils.getFinarkeinEventDescription("EXIT"))
|
||||
Assert.assertEquals("User selected a FIP in the Anubhav flow", BaseUtils.getFinarkeinEventDescription("FIP_SELECTED"))
|
||||
Assert.assertEquals("When AA is auto-selected based on User/FIU preference", BaseUtils.getFinarkeinEventDescription("AA_SELECTED"))
|
||||
Assert.assertEquals("When AA has triggered the verification OTP to User", BaseUtils.getFinarkeinEventDescription("AA_OTP_SENT"))
|
||||
Assert.assertEquals("When AA is unable to send OTP to User", BaseUtils.getFinarkeinEventDescription("AA_OTP_FAILED"))
|
||||
Assert.assertEquals("Enter OTP is invalid", BaseUtils.getFinarkeinEventDescription("AA_OTP_INVALID"))
|
||||
Assert.assertEquals("When OPT is verified successfully", BaseUtils.getFinarkeinEventDescription("AA_OTP_VERIFIED"))
|
||||
Assert.assertEquals("When AA is not reachable", BaseUtils.getFinarkeinEventDescription("AA_UNREACHABLE"))
|
||||
Assert.assertEquals("When FIP list is successfully displayed to User", BaseUtils.getFinarkeinEventDescription("FIP_RENDERED"))
|
||||
Assert.assertEquals("When User account(s) is discovered in the FIP", BaseUtils.getFinarkeinEventDescription("ACCOUNT_DISCOVERED"))
|
||||
Assert.assertEquals("When User account(s) is not discovered in the FIP", BaseUtils.getFinarkeinEventDescription("ACCOUNT_NOT_DISCOVERED"))
|
||||
Assert.assertEquals("When User links account successfully", BaseUtils.getFinarkeinEventDescription("ACCOUNT_LINKED"))
|
||||
Assert.assertEquals("When User changed mobile number for Account discovery", BaseUtils.getFinarkeinEventDescription("MOBILE_CHANGE"))
|
||||
Assert.assertEquals("When User's new mobile number is verified using OTP", BaseUtils.getFinarkeinEventDescription("MOBILE_VERIFIED"))
|
||||
Assert.assertEquals("When User grants consent successfully", BaseUtils.getFinarkeinEventDescription("CONSENT_GRANTED"))
|
||||
Assert.assertEquals("When User rejects consent i.e. does not proceed with FIP selection", BaseUtils.getFinarkeinEventDescription("CONSENT_REJECTED"))
|
||||
Assert.assertEquals("When User selects alternative mechanism instead of AA", BaseUtils.getFinarkeinEventDescription("ALTERNATIVE_CHOSEN"))
|
||||
Assert.assertEquals("When data is requested from AA", BaseUtils.getFinarkeinEventDescription("DATA_REQUESTED"))
|
||||
Assert.assertEquals("When data is received from AA", BaseUtils.getFinarkeinEventDescription("DATA_RECEIVED"))
|
||||
Assert.assertEquals("When received data is valid as per set rules", BaseUtils.getFinarkeinEventDescription("DATA_VALID"))
|
||||
Assert.assertEquals("When received data is invalid as per set rules", BaseUtils.getFinarkeinEventDescription("DATA_INVALID"))
|
||||
Assert.assertEquals("When FIP sends an error", BaseUtils.getFinarkeinEventDescription("FIP_ERROR"))
|
||||
Assert.assertEquals("When AA sends an error", BaseUtils.getFinarkeinEventDescription("AA_ERROR"))
|
||||
fun testGetFinarkeinEventDescription() {
|
||||
Assert.assertEquals(
|
||||
"User has opened Anubhav journey",
|
||||
BaseUtils.getFinarkeinEventDescription("OPEN")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Recoverable error occurred in the Anubhav flow",
|
||||
BaseUtils.getFinarkeinEventDescription("ERROR")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Event is not handled by Anubhab SDK",
|
||||
BaseUtils.getFinarkeinEventDescription("UNKNOWN")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"User has exited without completing journey",
|
||||
BaseUtils.getFinarkeinEventDescription("EXIT")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"User selected a FIP in the Anubhav flow",
|
||||
BaseUtils.getFinarkeinEventDescription("FIP_SELECTED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When AA is auto-selected based on User/FIU preference",
|
||||
BaseUtils.getFinarkeinEventDescription("AA_SELECTED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When AA has triggered the verification OTP to User",
|
||||
BaseUtils.getFinarkeinEventDescription("AA_OTP_SENT")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When AA is unable to send OTP to User",
|
||||
BaseUtils.getFinarkeinEventDescription("AA_OTP_FAILED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Enter OTP is invalid",
|
||||
BaseUtils.getFinarkeinEventDescription("AA_OTP_INVALID")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When OPT is verified successfully",
|
||||
BaseUtils.getFinarkeinEventDescription("AA_OTP_VERIFIED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When AA is not reachable",
|
||||
BaseUtils.getFinarkeinEventDescription("AA_UNREACHABLE")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When FIP list is successfully displayed to User",
|
||||
BaseUtils.getFinarkeinEventDescription("FIP_RENDERED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User account(s) is discovered in the FIP",
|
||||
BaseUtils.getFinarkeinEventDescription("ACCOUNT_DISCOVERED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User account(s) is not discovered in the FIP",
|
||||
BaseUtils.getFinarkeinEventDescription("ACCOUNT_NOT_DISCOVERED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User links account successfully",
|
||||
BaseUtils.getFinarkeinEventDescription("ACCOUNT_LINKED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User changed mobile number for Account discovery",
|
||||
BaseUtils.getFinarkeinEventDescription("MOBILE_CHANGE")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User's new mobile number is verified using OTP",
|
||||
BaseUtils.getFinarkeinEventDescription("MOBILE_VERIFIED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User grants consent successfully",
|
||||
BaseUtils.getFinarkeinEventDescription("CONSENT_GRANTED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User rejects consent i.e. does not proceed with FIP selection",
|
||||
BaseUtils.getFinarkeinEventDescription("CONSENT_REJECTED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When User selects alternative mechanism instead of AA",
|
||||
BaseUtils.getFinarkeinEventDescription("ALTERNATIVE_CHOSEN")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When data is requested from AA",
|
||||
BaseUtils.getFinarkeinEventDescription("DATA_REQUESTED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When data is received from AA",
|
||||
BaseUtils.getFinarkeinEventDescription("DATA_RECEIVED")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When received data is valid as per set rules",
|
||||
BaseUtils.getFinarkeinEventDescription("DATA_VALID")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When received data is invalid as per set rules",
|
||||
BaseUtils.getFinarkeinEventDescription("DATA_INVALID")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When FIP sends an error",
|
||||
BaseUtils.getFinarkeinEventDescription("FIP_ERROR")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"When AA sends an error",
|
||||
BaseUtils.getFinarkeinEventDescription("AA_ERROR")
|
||||
)
|
||||
Assert.assertEquals("Reason Unknown", BaseUtils.getFinarkeinEventDescription(null))
|
||||
Assert.assertEquals("Reason Unknown", BaseUtils.getFinarkeinEventDescription("UNKNOWN_REASON_CODE"))
|
||||
Assert.assertEquals(
|
||||
"Reason Unknown",
|
||||
BaseUtils.getFinarkeinEventDescription("UNKNOWN_REASON_CODE")
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testNumberToWords(){
|
||||
fun testNumberToWords() {
|
||||
Assert.assertEquals("Zero rupees", BaseUtils.numberToWords("0"))
|
||||
Assert.assertEquals("One rupee", BaseUtils.numberToWords("1"))
|
||||
Assert.assertEquals("Two rupees", BaseUtils.numberToWords("2"))
|
||||
@@ -266,32 +435,49 @@ class BaseUtilsTest {
|
||||
Assert.assertEquals("One hundred fifty five rupees", BaseUtils.numberToWords("155"))
|
||||
Assert.assertEquals("Two thousand five rupees", BaseUtils.numberToWords("2005"))
|
||||
Assert.assertEquals("Thirty two thousand seven rupees", BaseUtils.numberToWords("32007"))
|
||||
Assert.assertEquals("Two lakh thirty four thousand five hundred sixty seven rupees", BaseUtils.numberToWords("234567"))
|
||||
Assert.assertEquals("Thirty two lakh thirty four thousand five hundred sixty seven rupees", BaseUtils.numberToWords("3234567"))
|
||||
Assert.assertEquals("Eight crore twenty three lakh forty five thousand six hundred seventy seven rupees", BaseUtils.numberToWords("82345677"))
|
||||
Assert.assertEquals("Seventy eight crore twenty three lakh forty five thousand six hundred seventy seven rupees", BaseUtils.numberToWords("782345677"))
|
||||
Assert.assertEquals(
|
||||
"Two lakh thirty four thousand five hundred sixty seven rupees",
|
||||
BaseUtils.numberToWords("234567")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Thirty two lakh thirty four thousand five hundred sixty seven rupees",
|
||||
BaseUtils.numberToWords("3234567")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Eight crore twenty three lakh forty five thousand six hundred seventy seven rupees",
|
||||
BaseUtils.numberToWords("82345677")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Seventy eight crore twenty three lakh forty five thousand six hundred seventy seven rupees",
|
||||
BaseUtils.numberToWords("782345677")
|
||||
)
|
||||
Assert.assertEquals(EMPTY, BaseUtils.numberToWords("10000345678"))
|
||||
Assert.assertEquals(EMPTY, BaseUtils.numberToWords("absd123123"))
|
||||
Assert.assertEquals("Two thousand five rupees and fifty six paise", BaseUtils.numberToWords("2005.56", BaseUtils.isWholeNumber(2005.56)))
|
||||
Assert.assertEquals("Two thousand five rupees", BaseUtils.numberToWords("2005.0", BaseUtils.isWholeNumber(2005.0)))
|
||||
|
||||
Assert.assertEquals(
|
||||
"Two thousand five rupees and fifty six paise",
|
||||
BaseUtils.numberToWords("2005.56", BaseUtils.isWholeNumber(2005.56))
|
||||
)
|
||||
Assert.assertEquals(
|
||||
"Two thousand five rupees",
|
||||
BaseUtils.numberToWords("2005.0", BaseUtils.isWholeNumber(2005.0))
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testIsWholeNumber(){
|
||||
fun testIsWholeNumber() {
|
||||
Assert.assertEquals(true, BaseUtils.isWholeNumber(1000.0))
|
||||
Assert.assertEquals(false, BaseUtils.isWholeNumber(25000.67))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testHasMultipleDots(){
|
||||
fun testHasMultipleDots() {
|
||||
Assert.assertEquals(true, BaseUtils.hasMultipleDots("1000.1.0"))
|
||||
Assert.assertEquals(false, BaseUtils.hasMultipleDots("25000.67"))
|
||||
Assert.assertEquals(false, BaseUtils.hasMultipleDots("25000"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testCleanDecimalString(){
|
||||
fun testCleanDecimalString() {
|
||||
Assert.assertEquals("1000", BaseUtils.cleanDecimalString("1000.0"))
|
||||
Assert.assertEquals("1000", BaseUtils.cleanDecimalString("1000.00"))
|
||||
Assert.assertEquals("1000", BaseUtils.cleanDecimalString("1000."))
|
||||
@@ -300,7 +486,7 @@ class BaseUtilsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetDigitsCountAfterDecimal(){
|
||||
fun testGetDigitsCountAfterDecimal() {
|
||||
Assert.assertEquals(1, BaseUtils.getDigitsCountAfterDecimal("1000.0"))
|
||||
Assert.assertEquals(2, BaseUtils.getDigitsCountAfterDecimal("1000.00"))
|
||||
Assert.assertEquals(0, BaseUtils.getDigitsCountAfterDecimal("1000."))
|
||||
@@ -309,7 +495,7 @@ class BaseUtilsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testPhoneFormat(){
|
||||
fun testPhoneFormat() {
|
||||
Assert.assertEquals("66666 12345", BaseUtils.phoneFormat("6666612345"))
|
||||
Assert.assertEquals("66661 2345", BaseUtils.phoneFormat("666612345"))
|
||||
Assert.assertEquals("", BaseUtils.phoneFormat(""))
|
||||
@@ -317,7 +503,7 @@ class BaseUtilsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testMoneyFormat(){
|
||||
fun testMoneyFormat() {
|
||||
Assert.assertEquals("10,00,000", BaseUtils.moneyFormat("1000000"))
|
||||
Assert.assertEquals("12,34,56,789", BaseUtils.moneyFormat("123456789"))
|
||||
Assert.assertEquals("12,34,56,789", BaseUtils.moneyFormat("123456789"))
|
||||
@@ -332,5 +518,4 @@ class BaseUtilsTest {
|
||||
fun tearDown() {
|
||||
unmockkAll()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.navi.base.model.CtaData
|
||||
import org.junit.Assert
|
||||
import org.junit.Test
|
||||
|
||||
|
||||
class ExtTest {
|
||||
|
||||
@Test
|
||||
@@ -33,7 +32,6 @@ class ExtTest {
|
||||
Assert.assertEquals(false, str.isNotNullAndNotEmpty())
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun testOrFalse_trueValue_returnTrue() {
|
||||
val value = true
|
||||
@@ -313,58 +311,39 @@ class ExtTest {
|
||||
|
||||
@Test
|
||||
fun testIsSameResponse() {
|
||||
Assert.assertEquals(
|
||||
false,
|
||||
isSameResponse(null, null)
|
||||
)
|
||||
Assert.assertEquals(false, isSameResponse(null, null))
|
||||
|
||||
val cta = CtaData(
|
||||
url = "HOME"
|
||||
)
|
||||
Assert.assertEquals(
|
||||
false,
|
||||
isSameResponse(cta, null)
|
||||
)
|
||||
val cta = CtaData(url = "HOME")
|
||||
Assert.assertEquals(false, isSameResponse(cta, null))
|
||||
|
||||
Assert.assertEquals(
|
||||
false,
|
||||
isSameResponse(null, cta)
|
||||
)
|
||||
Assert.assertEquals(false, isSameResponse(null, cta))
|
||||
|
||||
Assert.assertEquals(
|
||||
true,
|
||||
isSameResponse(cta, cta)
|
||||
)
|
||||
Assert.assertEquals(true, isSameResponse(cta, cta))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAnalyticsEventPropertiesFromCtaData() {
|
||||
val analyticsEvent = AnalyticsEvent(
|
||||
name = "home_screen_page_land"
|
||||
)
|
||||
val cta = CtaData(
|
||||
url = "HOME",
|
||||
analyticsEventProperties = analyticsEvent
|
||||
)
|
||||
val analyticsEvent = AnalyticsEvent(name = "home_screen_page_land")
|
||||
val cta = CtaData(url = "HOME", analyticsEventProperties = analyticsEvent)
|
||||
Assert.assertEquals(analyticsEvent, getAnalyticsEventPropertiesFromCtaData(cta))
|
||||
|
||||
val ctaWithEventNull = CtaData(
|
||||
url = "HOME"
|
||||
)
|
||||
val ctaWithEventNull = CtaData(url = "HOME")
|
||||
Assert.assertEquals(null, getAnalyticsEventPropertiesFromCtaData(ctaWithEventNull))
|
||||
}
|
||||
|
||||
// @Test
|
||||
// fun testConvertObjectToJson(){
|
||||
// val analyticsEvent = AnalyticsEvent(
|
||||
// name = "home_screen_page_land"
|
||||
// )
|
||||
// val cta = CtaData(
|
||||
// url = "HOME",
|
||||
// analyticsEventProperties = analyticsEvent
|
||||
// )
|
||||
// val obj = JSONObject(Gson().toJson(cta))
|
||||
// Assert.assertEquals(obj.getJSONObject("url"), convertObjectToJson(cta)?.getJSONObject("url"))
|
||||
// Assert.assertEquals(obj.getJSONObject("analyticsEventProperties"), convertObjectToJson(cta)?.getJSONObject("analyticsEventProperties"))
|
||||
// }
|
||||
// @Test
|
||||
// fun testConvertObjectToJson(){
|
||||
// val analyticsEvent = AnalyticsEvent(
|
||||
// name = "home_screen_page_land"
|
||||
// )
|
||||
// val cta = CtaData(
|
||||
// url = "HOME",
|
||||
// analyticsEventProperties = analyticsEvent
|
||||
// )
|
||||
// val obj = JSONObject(Gson().toJson(cta))
|
||||
// Assert.assertEquals(obj.getJSONObject("url"),
|
||||
// convertObjectToJson(cta)?.getJSONObject("url"))
|
||||
// Assert.assertEquals(obj.getJSONObject("analyticsEventProperties"),
|
||||
// convertObjectToJson(cta)?.getJSONObject("analyticsEventProperties"))
|
||||
// }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user