last commit

This commit is contained in:
2023-11-27 07:07:37 +03:00
parent 23286dd061
commit 0e195b0aee
26 changed files with 324 additions and 63 deletions
+4 -4
View File
@@ -11,12 +11,12 @@ java {
dependencies {
implementation("javax.inject:javax.inject:1")
testImplementation("junit:junit:4.13.2")
testImplementation("org.mockito:mockito-core:3.12.4")
testImplementation("org.mockito.kotlin:mockito-kotlin:3.12.4")
//testImplementation("org.mockito:mockito-core:5.7.0")
//testImplementation("org.mockito.kotlin:mockito-kotlin:5.7.0")
}
/*
sourceSets {
test {
java.srcDir("src/test/java") // Путь к исходным файлам тестов на Kotlin
}
}
}*/
@@ -1,8 +0,0 @@
package com.megboyzz.devmenu.domain.entities
data class Settings(
val enable: Boolean,
val trackingInterval: Int,
val pathToSaveTrackable: String,
val lang: GameLang
)
@@ -11,4 +11,10 @@ interface FilesRepository {
fun getFileProps(file: File): FileProps
suspend fun hideFile(file: File): Boolean
suspend fun unHideFile(file: File): Boolean
val allHidedFiles: List<File>
}
@@ -1,11 +1,10 @@
package com.megboyzz.devmenu.domain.repository
import com.megboyzz.devmenu.domain.entities.Settings
import com.megboyzz.devmenu.domain.entities.GameLang
interface SettingsRepository {
suspend fun getSettings(): Settings
fun setGameLang(lang: GameLang): Boolean
suspend fun setSettings(settings: Settings)
}
@@ -0,0 +1,7 @@
package com.megboyzz.devmenu.domain.repository
interface TrackingRepository {
fun setTracking(enabled: Boolean, pathToSave: String): Boolean
}
@@ -1,14 +0,0 @@
package com.megboyzz.devmenu.domain.usecases.files
import com.megboyzz.devmenu.domain.repository.FilesRepository
import javax.inject.Inject
class RemoveInternalDataUseCase @Inject constructor(
private val filesRepository: FilesRepository
) {
operator fun invoke(): Boolean{
val listFiles = filesRepository.internalRoot.listFiles() ?: return false
listFiles.forEach { it.deleteRecursively() }
return true
}
}
@@ -0,0 +1,11 @@
package com.megboyzz.devmenu.domain.usecases.files
import java.io.File
class RenameFileUseCase {
operator fun invoke(file: File, newName: String) =
if(file.exists())
file.renameTo(File(file.parent, newName))
else
false
}
@@ -0,0 +1,12 @@
package com.megboyzz.devmenu.domain.usecases.hidefiles
import com.megboyzz.devmenu.domain.repository.FilesRepository
import javax.inject.Inject
class GetAllHidedFilesUseCase @Inject constructor(
private val filesRepository: FilesRepository
) {
operator fun invoke() = filesRepository.allHidedFiles
}
@@ -0,0 +1,13 @@
package com.megboyzz.devmenu.domain.usecases.hidefiles
import com.megboyzz.devmenu.domain.repository.FilesRepository
import java.io.File
import javax.inject.Inject
class HideFileUseCase @Inject constructor(
private val filesRepository: FilesRepository
) {
suspend operator fun invoke(file: File) = filesRepository.hideFile(file)
}
@@ -0,0 +1,14 @@
package com.megboyzz.devmenu.domain.usecases.hidefiles
import javax.inject.Inject
class UnHideAllUseCase @Inject constructor(
private val unHideFileUseCase: UnHideFileUseCase,
private val getAllHidedFilesUseCase: GetAllHidedFilesUseCase
) {
suspend operator fun invoke() = getAllHidedFilesUseCase().forEach {
unHideFileUseCase(it)
}
}
@@ -0,0 +1,13 @@
package com.megboyzz.devmenu.domain.usecases.hidefiles
import com.megboyzz.devmenu.domain.repository.FilesRepository
import java.io.File
import javax.inject.Inject
class UnHideFileUseCase @Inject constructor(
private val filesRepository: FilesRepository
) {
suspend operator fun invoke(file: File) = filesRepository.unHideFile(file)
}
@@ -1,4 +1,4 @@
package com.megboyzz.devmenu.domain.usecases.files
package com.megboyzz.devmenu.domain.usecases.replacement
import com.megboyzz.devmenu.domain.repository.ReplacementRepository
import java.io.File
@@ -0,0 +1,10 @@
package com.megboyzz.devmenu.domain.usecases.settings
import com.megboyzz.devmenu.domain.usecases.files.GetInternalFilesUseCase
import javax.inject.Inject
class RemoveGameDataUseCase @Inject constructor(
private val getInternalFilesUseCase: GetInternalFilesUseCase
) {
operator fun invoke() = getInternalFilesUseCase().listFiles()?.forEach { it.delete() }
}
@@ -1,11 +1,13 @@
package com.megboyzz.devmenu.domain.usecases.settings
import com.megboyzz.devmenu.domain.entities.Settings
import com.megboyzz.devmenu.domain.entities.GameLang
import com.megboyzz.devmenu.domain.repository.SettingsRepository
import javax.inject.Inject
class GetSettingsUseCase @Inject constructor(
class SetGameLangUseCase @Inject constructor(
private val settingsRepository: SettingsRepository
) {
suspend operator fun invoke(): Settings = settingsRepository.getSettings()
operator fun invoke(gameLang: GameLang) = settingsRepository.setGameLang(gameLang)
}
@@ -1,11 +0,0 @@
package com.megboyzz.devmenu.domain.usecases.settings
import com.megboyzz.devmenu.domain.entities.Settings
import com.megboyzz.devmenu.domain.repository.SettingsRepository
import javax.inject.Inject
class SetSettingsUseCase @Inject constructor(
private val settingsRepository: SettingsRepository
) {
suspend operator fun invoke(settings: Settings) = settingsRepository.setSettings(settings)
}
@@ -0,0 +1,13 @@
package com.megboyzz.devmenu.domain.usecases.settings
import com.megboyzz.devmenu.domain.repository.TrackingRepository
import javax.inject.Inject
class SetTrackingSaveFileUseCase @Inject constructor(
private val trackingRepository: TrackingRepository
) {
operator fun invoke(enabled: Boolean, pathToSave: String) =
trackingRepository.setTracking(enabled, pathToSave)
}
@@ -1,19 +1,16 @@
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.SettingsRepository
import com.megboyzz.devmenu.domain.repository.SvmwRepository
import org.mockito.Mockito.mock
import org.mockito.Mockito.`when`
import java.io.File
import kotlin.coroutines.coroutineContext
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 settingsRepository = mock(SettingsRepository::class.java)
private val svmwRepository = mock(SvmwRepository::class.java)
private val externalFile = File("D:\\NFSMW Online\\com.ea.games.nfs13_na")