Skip to content

Commit 4e96a45

Browse files
author
Gerrit Garbereder
committed
Add ListTasks usecase
1 parent c5598e4 commit 4e96a45

File tree

2 files changed

+43
-0
lines changed
  • Task-Tracker-Usecases/src
    • commonMain/kotlin/com/garbereder/tasktracker/usecases/tasks
    • commonTest/kotlin/com/garbereder/tasktracker/usecases/tasks

2 files changed

+43
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.garbereder.tasktracker.usecases.tasks
2+
3+
import com.garbereder.tasktracker.entities.Task
4+
import com.garbereder.tasktracker.entities.TaskCollection
5+
import com.garbereder.tasktracker.usecases.UseCase
6+
7+
class ListTasks(private val collection: TaskCollection): UseCase<Iterator<Task>> {
8+
override fun invoke(): Iterator<Task> = collection.iterator()
9+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.garbereder.tasktracker.usecases.tasks
2+
3+
import com.garbereder.tasktracker.entities.Task
4+
import com.garbereder.tasktracker.entities.TaskCollection
5+
import io.mockative.*
6+
import kotlin.test.Test
7+
import kotlin.test.assertEquals
8+
import kotlin.test.assertFalse
9+
import kotlin.test.assertTrue
10+
11+
class ListTasksTests {
12+
@Mock
13+
val collection = mock(classOf<TaskCollection>())
14+
15+
@Test
16+
fun invoke_noInput_callsThrough() {
17+
val tasks = listOf(
18+
Task("1","TaskName"),
19+
Task("1","TaskName2")
20+
)
21+
given(collection).invocation { iterator() }
22+
.then { tasks.iterator() }
23+
24+
val it = ListTasks(collection).invoke()
25+
26+
verify(collection).invocation { iterator() }
27+
.wasInvoked(exactly = once)
28+
29+
assertTrue ( it.hasNext() )
30+
assertEquals(tasks[0], it.next())
31+
assertEquals(tasks[1], it.next())
32+
assertFalse ( it.hasNext() )
33+
}
34+
}

0 commit comments

Comments
 (0)