Update project structure and impl all domain layer

This commit is contained in:
2023-12-09 21:15:22 +03:00
parent 0e195b0aee
commit 5c8a58beac
41 changed files with 705 additions and 83 deletions
@@ -4,6 +4,6 @@ import java.util.Date
data class FileProps(
val fileName: String,
val size: Int,
val dateOfCreation: Date
val size: Long,
val lastModify: Date
)
@@ -0,0 +1,6 @@
package com.megboyzz.devmenu.domain.entities
data class TrackingData(
val enabled: Boolean,
val pathToSave: String
)
@@ -4,7 +4,6 @@ import com.megboyzz.devmenu.domain.entities.GameLang
interface SettingsRepository {
fun setGameLang(lang: GameLang): Boolean
var gameLang: GameLang
}
@@ -1,7 +1,13 @@
package com.megboyzz.devmenu.domain.repository
import com.megboyzz.devmenu.domain.entities.TrackingData
interface TrackingRepository {
fun setTracking(enabled: Boolean, pathToSave: String): Boolean
var trackingData: TrackingData
fun startTracking()
fun stopTracking()
}
@@ -0,0 +1,12 @@
package com.megboyzz.devmenu.domain.usecases
import com.megboyzz.devmenu.domain.entities.devmenuId
import com.megboyzz.devmenu.domain.repository.FilesRepository
import java.io.File
import javax.inject.Inject
class IsDevMenuEnabledUseCase @Inject constructor(
private val filesRepository: FilesRepository
) {
operator fun invoke() = File(filesRepository.externalRoot, devmenuId).exists()
}
@@ -0,0 +1,17 @@
package com.megboyzz.devmenu.domain.usecases
import com.megboyzz.devmenu.domain.repository.TrackingRepository
import javax.inject.Inject
class StartTrackingUseCase @Inject constructor(
private val trackingRepository: TrackingRepository
) {
operator fun invoke(){
if(trackingRepository.trackingData.enabled)
trackingRepository.startTracking()
}
}
@@ -0,0 +1,11 @@
package com.megboyzz.devmenu.domain.usecases
import com.megboyzz.devmenu.domain.repository.TrackingRepository
import javax.inject.Inject
class StopTrackingUseCase @Inject constructor(
private val trackingRepository: TrackingRepository
) {
operator fun invoke() = trackingRepository.stopTracking()
}
@@ -8,6 +8,8 @@ class SetGameLangUseCase @Inject constructor(
private val settingsRepository: SettingsRepository
) {
operator fun invoke(gameLang: GameLang) = settingsRepository.setGameLang(gameLang)
operator fun invoke(gameLang: GameLang){
settingsRepository.gameLang = gameLang
}
}
@@ -1,5 +1,6 @@
package com.megboyzz.devmenu.domain.usecases.settings
import com.megboyzz.devmenu.domain.entities.TrackingData
import com.megboyzz.devmenu.domain.repository.TrackingRepository
import javax.inject.Inject
@@ -7,7 +8,8 @@ class SetTrackingSaveFileUseCase @Inject constructor(
private val trackingRepository: TrackingRepository
) {
operator fun invoke(enabled: Boolean, pathToSave: String) =
trackingRepository.setTracking(enabled, pathToSave)
operator fun invoke(enabled: Boolean, pathToSave: String) {
trackingRepository.trackingData = TrackingData(enabled, pathToSave)
}
}
@@ -1,30 +0,0 @@
import com.megboyzz.devmenu.domain.repository.FilesRepository
import com.megboyzz.devmenu.domain.repository.ReplacementRepository
import com.megboyzz.devmenu.domain.repository.SaveRepository
import com.megboyzz.devmenu.domain.repository.SvmwRepository
import org.mockito.Mockito.mock
import org.mockito.Mockito.`when`
import java.io.File
class UseCaseTest {
private val filesRepository = mock(FilesRepository::class.java)
private val replacementRepository = mock(ReplacementRepository::class.java)
private val saveRepository = mock(SaveRepository::class.java)
private val svmwRepository = mock(SvmwRepository::class.java)
private val externalFile = File("D:\\NFSMW Online\\com.ea.games.nfs13_na")
private val internalFile = File("D:\\NFSMW Online")
init {
`when`(filesRepository.externalRoot).thenReturn(externalFile)
`when`(filesRepository.internalRoot).thenReturn(internalFile)
//`when`(replacementRepository.getAllReplacements()).thenReturn()
}
}