Skip to content

Commit

Permalink
AND-17944: Move GetContactVerificationWarningUseCase to domain module
Browse files Browse the repository at this point in the history
  • Loading branch information
mega-ht committed Jan 5, 2024
1 parent 1caa8e4 commit 2d86eda
Show file tree
Hide file tree
Showing 16 changed files with 86 additions and 67 deletions.
12 changes: 12 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import mega.privacy.android.app.domain.usecase.GetContactVerificationWarningUseCase
import mega.privacy.android.app.featuretoggle.AppFeatures
import mega.privacy.android.app.main.model.AddContactState
import mega.privacy.android.domain.entity.Feature
import mega.privacy.android.domain.usecase.contact.GetContactVerificationWarningUseCase
import mega.privacy.android.domain.usecase.featureflag.GetFeatureFlagValueUseCase
import javax.inject.Inject

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import mega.privacy.android.app.domain.usecase.GetContactVerificationWarningUseCase
import mega.privacy.android.domain.usecase.contact.GetContactVerificationWarningUseCase
import mega.privacy.android.app.domain.usecase.shares.GetOutShares
import mega.privacy.android.app.presentation.extensions.getState
import mega.privacy.android.domain.entity.StorageState
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import mega.privacy.android.app.domain.usecase.CheckNameCollision
import mega.privacy.android.app.domain.usecase.GetContactVerificationWarningUseCase
import mega.privacy.android.domain.usecase.contact.GetContactVerificationWarningUseCase
import mega.privacy.android.app.domain.usecase.GetNodeLocationInfo
import mega.privacy.android.app.domain.usecase.offline.SetNodeAvailableOffline
import mega.privacy.android.app.domain.usecase.shares.GetOutShares
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import mega.privacy.android.app.domain.usecase.AuthorizeNode
import mega.privacy.android.app.domain.usecase.GetContactVerificationWarningUseCase
import mega.privacy.android.domain.usecase.contact.GetContactVerificationWarningUseCase
import mega.privacy.android.app.domain.usecase.GetIncomingSharesChildrenNode
import mega.privacy.android.app.domain.usecase.GetNodeByHandle
import mega.privacy.android.app.presentation.shares.incoming.model.IncomingSharesState
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.test.setMain
import mega.privacy.android.app.domain.usecase.GetContactVerificationWarningUseCase
import mega.privacy.android.domain.usecase.contact.GetContactVerificationWarningUseCase
import mega.privacy.android.app.domain.usecase.shares.GetOutShares
import mega.privacy.android.domain.entity.node.NodeId
import mega.privacy.android.domain.usecase.GetNodeByIdUseCase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.test.setMain
import mega.privacy.android.app.domain.usecase.CheckNameCollision
import mega.privacy.android.app.domain.usecase.GetContactVerificationWarningUseCase
import mega.privacy.android.app.domain.usecase.GetNodeLocationInfo
import mega.privacy.android.app.domain.usecase.offline.SetNodeAvailableOffline
import mega.privacy.android.app.domain.usecase.shares.GetOutShares
Expand Down Expand Up @@ -65,6 +64,7 @@ import mega.privacy.android.domain.usecase.account.MonitorStorageStateEventUseCa
import mega.privacy.android.domain.usecase.camerauploads.GetPrimarySyncHandleUseCase
import mega.privacy.android.domain.usecase.camerauploads.GetSecondarySyncHandleUseCase
import mega.privacy.android.domain.usecase.camerauploads.IsCameraUploadsEnabledUseCase
import mega.privacy.android.domain.usecase.contact.GetContactVerificationWarningUseCase
import mega.privacy.android.domain.usecase.contact.MonitorChatOnlineStatusUseCase
import mega.privacy.android.domain.usecase.favourites.IsAvailableOfflineUseCase
import mega.privacy.android.domain.usecase.featureflag.GetFeatureFlagValueUseCase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.test.setMain
import mega.privacy.android.app.domain.usecase.AuthorizeNode
import mega.privacy.android.app.domain.usecase.GetContactVerificationWarningUseCase
import mega.privacy.android.app.domain.usecase.GetIncomingSharesChildrenNode
import mega.privacy.android.app.domain.usecase.GetNodeByHandle
import mega.privacy.android.app.presentation.shares.incoming.IncomingSharesViewModel
Expand All @@ -30,6 +29,7 @@ import mega.privacy.android.domain.usecase.GetOthersSortOrder
import mega.privacy.android.domain.usecase.GetParentNodeUseCase
import mega.privacy.android.domain.usecase.account.MonitorRefreshSessionUseCase
import mega.privacy.android.domain.usecase.contact.AreCredentialsVerifiedUseCase
import mega.privacy.android.domain.usecase.contact.GetContactVerificationWarningUseCase
import mega.privacy.android.domain.usecase.node.MonitorNodeUpdatesUseCase
import mega.privacy.android.domain.usecase.shares.GetIncomingShareParentUserEmailUseCase
import mega.privacy.android.domain.usecase.shares.GetUnverifiedIncomingShares
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,4 @@ interface MegaNodeRepository {
* @param megaNode : [MegaNode] object which needs to be shared
*/
suspend fun createShareKey(megaNode: MegaNode)

/**
* Get contact verification warning enabled flag
*/
suspend fun getContactVerificationEnabledWarning(): Boolean
}
Original file line number Diff line number Diff line change
Expand Up @@ -316,8 +316,4 @@ internal class MegaNodeRepositoryImpl @Inject constructor(
}
}
}

override suspend fun getContactVerificationEnabledWarning() = withContext(ioDispatcher) {
return@withContext megaApiGateway.getContactVerificationWarningEnabled()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -888,4 +888,8 @@ internal class NodeRepositoryImpl @Inject constructor(

private suspend fun getOfflineNode(handle: Long) =
megaLocalRoomGateway.getOfflineInformation(handle)

override suspend fun getContactVerificationEnabledWarning() = withContext(ioDispatcher) {
megaApiGateway.getContactVerificationWarningEnabled()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,11 @@ interface NodeRepository {
*/
suspend fun moveNodeToRubbishBinByHandle(nodeId: NodeId)

/**
* Get contact verification warning enabled flag
*/
suspend fun getContactVerificationEnabledWarning(): Boolean

/**
* Gets list of NodeLabel
* @return list of [NodeLabel]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package mega.privacy.android.domain.usecase.contact

import mega.privacy.android.domain.repository.NodeRepository
import javax.inject.Inject

/**
* Use case for getting contact verification warning flag
*/
class GetContactVerificationWarningUseCase @Inject constructor(
private val nodeRepository: NodeRepository,
) {
/**
* Invoke
*/
suspend operator fun invoke() = nodeRepository.getContactVerificationEnabledWarning()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package mega.privacy.android.domain.usecase.contact

import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runTest
import mega.privacy.android.domain.repository.NodeRepository
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource
import org.mockito.kotlin.mock
import org.mockito.kotlin.reset
import org.mockito.kotlin.whenever

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class GetContactVerificationWarningUseCaseTest {

private val nodeRepository: NodeRepository = mock()
private lateinit var underTest: GetContactVerificationWarningUseCase

@BeforeAll
fun setUp() {
underTest = GetContactVerificationWarningUseCase(nodeRepository = nodeRepository)
}

@ParameterizedTest
@ValueSource(booleans = [false, true])
fun `test that the use case returns the correct warning state`(warningEnabled: Boolean) =
runTest {
whenever(nodeRepository.getContactVerificationEnabledWarning()).thenReturn(
warningEnabled
)
val value = underTest()
assertThat(value).isEqualTo(warningEnabled)
}

@BeforeEach
fun resetMocks() {
reset(nodeRepository)
}

}

0 comments on commit 2d86eda

Please sign in to comment.