You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
728 B

2 years ago
  1. package net.aiterp.git.ykonsole2.infrastructure.testing
  2. import net.aiterp.git.ykonsole2.domain.models.Program
  3. import net.aiterp.git.ykonsole2.domain.models.ProgramRepository
  4. class InMemoryProgramRepository : ProgramRepository {
  5. private val programs = mutableListOf<Program>()
  6. override fun findById(id: String): Program? = programs.firstOrNull { it.id == id }
  7. override fun fetchAll(): List<Program> = programs.asSequence()
  8. .map(Program::copy)
  9. .sortedBy { it.name }
  10. .toList()
  11. override fun save(program: Program) {
  12. programs.removeIf { it.id == program.id }
  13. programs += program
  14. }
  15. override fun delete(program: Program) {
  16. programs.removeIf { it.id == program.id }
  17. }
  18. }