(fix) Umbau zu SCS

This commit is contained in:
stefan
2025-07-19 11:26:09 +02:00
parent e1125a3fc0
commit e76db7e924
39 changed files with 1107 additions and 342 deletions
@@ -1,18 +1,15 @@
package at.mocode.ui.viewmodel
import at.mocode.enums.GeschlechtE
import at.mocode.members.application.usecase.CreatePersonUseCase
import at.mocode.members.domain.model.DomPerson
import at.mocode.members.domain.repository.PersonRepository
import at.mocode.members.domain.repository.VereinRepository
import at.mocode.members.domain.service.MasterDataService
import at.mocode.enums.GeschlechtE
import at.mocode.enums.DatenQuelleE
import at.mocode.validation.ValidationResult
import com.benasher44.uuid.uuid4
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.*
import kotlinx.datetime.LocalDate
import kotlin.test.*
@OptIn(ExperimentalCoroutinesApi::class)
@@ -33,29 +30,44 @@ class CreatePersonViewModelTest {
private val persons = mutableListOf<DomPerson>()
override suspend fun save(person: DomPerson): DomPerson {
val savedPerson = person.copy(id = uuid4())
val savedPerson = person.copy(personId = uuid4())
persons.add(savedPerson)
return savedPerson
}
override suspend fun findById(id: com.benasher44.uuid.Uuid): DomPerson? {
return persons.find { it.id == id }
return persons.find { it.personId == id }
}
override suspend fun findByOepsSatzNr(oepsSatzNr: String): DomPerson? {
return persons.find { it.oepsSatzNr == oepsSatzNr }
}
override suspend fun findByStammVereinId(vereinId: com.benasher44.uuid.Uuid): List<DomPerson> {
return persons.filter { it.stammVereinId == vereinId }
}
override suspend fun findByName(searchTerm: String, limit: Int): List<DomPerson> {
return persons.filter {
it.vorname.contains(searchTerm, ignoreCase = true) ||
it.nachname.contains(searchTerm, ignoreCase = true)
}.take(limit)
}
override suspend fun findAllActive(limit: Int, offset: Int): List<DomPerson> {
return persons.filter { !it.istGesperrt }.drop(offset).take(limit)
}
override suspend fun existsByOepsSatzNr(oepsSatzNr: String): Boolean {
return persons.any { it.oepsSatzNr == oepsSatzNr }
}
override suspend fun findAll(): List<DomPerson> {
return persons.toList()
override suspend fun countActive(): Long {
return persons.count { !it.istGesperrt }.toLong()
}
override suspend fun delete(id: com.benasher44.uuid.Uuid) {
persons.removeAll { it.id == id }
override suspend fun delete(id: com.benasher44.uuid.Uuid): Boolean {
return persons.removeAll { it.personId == id }
}
}
@@ -64,12 +76,48 @@ class CreatePersonViewModelTest {
return null
}
override suspend fun existsById(id: com.benasher44.uuid.Uuid): Boolean {
override suspend fun findByOepsVereinsNr(oepsVereinsNr: String): at.mocode.members.domain.model.DomVerein? {
return null
}
override suspend fun findByName(searchTerm: String, limit: Int): List<at.mocode.members.domain.model.DomVerein> {
return emptyList()
}
override suspend fun findByBundeslandId(bundeslandId: com.benasher44.uuid.Uuid): List<at.mocode.members.domain.model.DomVerein> {
return emptyList()
}
override suspend fun findByLandId(landId: com.benasher44.uuid.Uuid): List<at.mocode.members.domain.model.DomVerein> {
return emptyList()
}
override suspend fun findAllActive(limit: Int, offset: Int): List<at.mocode.members.domain.model.DomVerein> {
return emptyList()
}
override suspend fun findByLocation(searchTerm: String, limit: Int): List<at.mocode.members.domain.model.DomVerein> {
return emptyList()
}
override suspend fun save(verein: at.mocode.members.domain.model.DomVerein): at.mocode.members.domain.model.DomVerein {
return verein
}
override suspend fun delete(id: com.benasher44.uuid.Uuid): Boolean {
return true
}
override suspend fun findAll(): List<at.mocode.members.domain.model.DomVerein> {
return emptyList()
override suspend fun existsByOepsVereinsNr(oepsVereinsNr: String): Boolean {
return false
}
override suspend fun countActive(): Long {
return 0L
}
override suspend fun countActiveByBundeslandId(bundeslandId: com.benasher44.uuid.Uuid): Long {
return 0L
}
}
@@ -77,6 +125,26 @@ class CreatePersonViewModelTest {
override suspend fun countryExists(countryId: com.benasher44.uuid.Uuid): Boolean {
return true
}
override suspend fun stateExists(stateId: com.benasher44.uuid.Uuid): Boolean {
return true
}
override suspend fun getCountryById(countryId: com.benasher44.uuid.Uuid): MasterDataService.CountryInfo? {
return null
}
override suspend fun getStateById(stateId: com.benasher44.uuid.Uuid): MasterDataService.StateInfo? {
return null
}
override suspend fun getAllCountries(): List<MasterDataService.CountryInfo> {
return emptyList()
}
override suspend fun getStatesByCountry(countryId: com.benasher44.uuid.Uuid): List<MasterDataService.StateInfo> {
return emptyList()
}
}
createPersonUseCase = CreatePersonUseCase(
@@ -26,29 +26,44 @@ class PersonListViewModelTest {
private val persons = mutableListOf<DomPerson>()
override suspend fun save(person: DomPerson): DomPerson {
val savedPerson = person.copy(id = uuid4())
val savedPerson = person.copy(personId = uuid4())
persons.add(savedPerson)
return savedPerson
}
override suspend fun findById(id: com.benasher44.uuid.Uuid): DomPerson? {
return persons.find { it.id == id }
return persons.find { it.personId == id }
}
override suspend fun findByOepsSatzNr(oepsSatzNr: String): DomPerson? {
return persons.find { it.oepsSatzNr == oepsSatzNr }
}
override suspend fun findByStammVereinId(vereinId: com.benasher44.uuid.Uuid): List<DomPerson> {
return persons.filter { it.stammVereinId == vereinId }
}
override suspend fun findByName(searchTerm: String, limit: Int): List<DomPerson> {
return persons.filter {
it.nachname.contains(searchTerm, ignoreCase = true) ||
it.vorname.contains(searchTerm, ignoreCase = true)
}.take(limit)
}
override suspend fun findAllActive(limit: Int, offset: Int): List<DomPerson> {
return persons.filter { it.istAktiv }.drop(offset).take(limit)
}
override suspend fun countActive(): Long {
return persons.count { it.istAktiv }.toLong()
}
override suspend fun existsByOepsSatzNr(oepsSatzNr: String): Boolean {
return persons.any { it.oepsSatzNr == oepsSatzNr }
}
override suspend fun findAll(): List<DomPerson> {
return persons.toList()
}
override suspend fun delete(id: com.benasher44.uuid.Uuid) {
persons.removeAll { it.id == id }
override suspend fun delete(id: com.benasher44.uuid.Uuid): Boolean {
return persons.removeAll { it.personId == id }
}
}
}
@@ -71,6 +86,7 @@ class PersonListViewModelTest {
fun `loadPersons should update persons list`() = runTest {
// Given
val testPerson = DomPerson(
oepsSatzNr = "123456",
nachname = "Test",
vorname = "User",
geschlechtE = GeschlechtE.M,
@@ -100,6 +116,7 @@ class PersonListViewModelTest {
// Add a new person to repository
val newPerson = DomPerson(
oepsSatzNr = "789012",
nachname = "New",
vorname = "Person",
geschlechtE = GeschlechtE.W,