Первые тесты

This commit is contained in:
2026-05-19 00:48:07 +03:00
parent fd6f2e5879
commit eecaf44b72
58 changed files with 1634 additions and 501 deletions

View File

@@ -1,8 +1,8 @@
package com.github.nullptroma.wallenc.domain.vault.db
package com.github.nullptroma.wallenc.infrastructure.android.db
import android.content.Context
import androidx.room.Room
import com.github.nullptroma.wallenc.domain.vault.db.app.AppDb
import com.github.nullptroma.wallenc.infrastructure.android.db.app.AppDb
class RoomFactory(private val context: Context) {
fun buildAppDb(): AppDb {

View File

@@ -0,0 +1,31 @@
package com.github.nullptroma.wallenc.infrastructure.android.db.app
import androidx.room.Database
import androidx.room.RoomDatabase
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.StorageKeyMapDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.StorageMetaInfoDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.StorageSyncGroupDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.YandexAccountDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageKeyMap
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageMetaInfo
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageSyncGroup
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbYandexAccount
interface IAppDb {
val storageKeyMapDao: StorageKeyMapDao
val storageMetaInfoDao: StorageMetaInfoDao
val storageSyncGroupDao: StorageSyncGroupDao
val yandexAccountDao: YandexAccountDao
}
@Database(
entities = [DbStorageKeyMap::class, DbStorageMetaInfo::class, DbYandexAccount::class, DbStorageSyncGroup::class],
version = 5,
exportSchema = false
)
abstract class AppDb : IAppDb, RoomDatabase() {
abstract override val storageKeyMapDao: StorageKeyMapDao
abstract override val storageMetaInfoDao: StorageMetaInfoDao
abstract override val storageSyncGroupDao: StorageSyncGroupDao
abstract override val yandexAccountDao: YandexAccountDao
}

View File

@@ -1,11 +1,11 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.dao
package com.github.nullptroma.wallenc.infrastructure.android.db.app.dao
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageKeyMap
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageKeyMap
@Dao
interface StorageKeyMapDao {

View File

@@ -1,11 +1,11 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.dao
package com.github.nullptroma.wallenc.infrastructure.android.db.app.dao
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageMetaInfo
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageMetaInfo
import kotlinx.coroutines.flow.Flow
import java.util.UUID

View File

@@ -1,10 +1,10 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.dao
package com.github.nullptroma.wallenc.infrastructure.android.db.app.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageSyncGroup
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageSyncGroup
@Dao
interface StorageSyncGroupDao {

View File

@@ -1,9 +1,9 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.dao
package com.github.nullptroma.wallenc.infrastructure.android.db.app.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbYandexAccount
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbYandexAccount
import kotlinx.coroutines.flow.Flow
@Dao

View File

@@ -1,14 +1,15 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.model
package com.github.nullptroma.wallenc.infrastructure.android.db.app.model
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.github.nullptroma.wallenc.domain.vault.model.StorageKeyMap
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
import java.util.UUID
@Entity(tableName = "storage_key_maps")
data class DbStorageKeyMap(
@androidx.room.PrimaryKey
@PrimaryKey
@ColumnInfo(name = "source_uuid") val sourceUuid: UUID,
@ColumnInfo(name = "key") val key: ByteArray
) {

View File

@@ -1,4 +1,4 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.model
package com.github.nullptroma.wallenc.infrastructure.android.db.app.model
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.model
package com.github.nullptroma.wallenc.infrastructure.android.db.app.model
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@@ -1,4 +1,4 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.model
package com.github.nullptroma.wallenc.infrastructure.android.db.app.model
import androidx.room.Entity
import androidx.room.Index

View File

@@ -1,7 +1,7 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.repository
package com.github.nullptroma.wallenc.infrastructure.android.db.app.repository
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.StorageKeyMapDao
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageKeyMap
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.StorageKeyMapDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageKeyMap
import com.github.nullptroma.wallenc.domain.vault.model.StorageKeyMap
import com.github.nullptroma.wallenc.domain.vault.ports.StorageKeyMapStore
import kotlinx.coroutines.CoroutineDispatcher

View File

@@ -1,8 +1,8 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.repository
package com.github.nullptroma.wallenc.infrastructure.android.db.app.repository
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.StorageMetaInfoDao
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageMetaInfo
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.StorageMetaInfoDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageMetaInfo
import com.github.nullptroma.wallenc.domain.vault.utils.IProvider
import com.github.nullptroma.wallenc.domain.common.impl.CommonStorageMetaInfo
import kotlinx.coroutines.CoroutineDispatcher

View File

@@ -1,10 +1,10 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.repository
package com.github.nullptroma.wallenc.infrastructure.android.db.app.repository
import com.github.nullptroma.wallenc.domain.interfaces.IStorageSyncGroupStore
import com.github.nullptroma.wallenc.domain.interfaces.StorageSyncGroup
import com.github.nullptroma.wallenc.domain.interfaces.StorageSyncGroupEncryptionKind
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.StorageSyncGroupDao
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageSyncGroup
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.StorageSyncGroupDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbStorageSyncGroup
import com.github.nullptroma.wallenc.domain.vault.utils.IProvider
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.withContext

View File

@@ -1,7 +1,7 @@
package com.github.nullptroma.wallenc.domain.vault.db.app.repository
package com.github.nullptroma.wallenc.infrastructure.android.db.app.repository
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.YandexAccountDao
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbYandexAccount
import com.github.nullptroma.wallenc.infrastructure.android.db.app.dao.YandexAccountDao
import com.github.nullptroma.wallenc.infrastructure.android.db.app.model.DbYandexAccount
import com.github.nullptroma.wallenc.domain.vault.model.YandexAccount
import com.github.nullptroma.wallenc.domain.vault.ports.YandexAccountStore
import kotlinx.coroutines.CoroutineDispatcher

View File

@@ -1,31 +0,0 @@
package com.github.nullptroma.wallenc.domain.vault.db.app
import androidx.room.Database
import androidx.room.RoomDatabase
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.StorageKeyMapDao
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.StorageMetaInfoDao
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.StorageSyncGroupDao
import com.github.nullptroma.wallenc.domain.vault.db.app.dao.YandexAccountDao
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageKeyMap
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageMetaInfo
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbStorageSyncGroup
import com.github.nullptroma.wallenc.domain.vault.db.app.model.DbYandexAccount
interface IAppDb {
val storageKeyMapDao: StorageKeyMapDao
val storageMetaInfoDao: StorageMetaInfoDao
val storageSyncGroupDao: StorageSyncGroupDao
val yandexAccountDao: YandexAccountDao
}
@Database(
entities = [DbStorageKeyMap::class, DbStorageMetaInfo::class, DbYandexAccount::class, DbStorageSyncGroup::class],
version = 5,
exportSchema = false
)
abstract class AppDb : IAppDb, RoomDatabase() {
abstract override val storageKeyMapDao: StorageKeyMapDao
abstract override val storageMetaInfoDao: StorageMetaInfoDao
abstract override val storageSyncGroupDao: StorageSyncGroupDao
abstract override val yandexAccountDao: YandexAccountDao
}