Skip to content

Commit 1f1e97d

Browse files
authored
Merge pull request #17 from Task-Tracker-Systems/loadactivities
Add activity loader
2 parents d8ec6b5 + b4d591f commit 1f1e97d

File tree

4 files changed

+46
-4
lines changed

4 files changed

+46
-4
lines changed

Task-Tracker-CLI/src/main/kotlin/Main.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
import com.garbereder.tasktracker.entities.*
23
import com.garbereder.tasktracker.usecases.tasks.*
34
import com.github.kinquirer.KInquirer
@@ -9,12 +10,12 @@ import kotlin.system.exitProcess
910
fun main() {
1011
println("Welcome to Task-Tracker-CLI")
1112
val tasks = LoadTasks(object : TaskCollectionReader {
12-
override fun read(): TaskCollection {
13-
return TaskCollectionImpl()
14-
}
13+
override fun read(): TaskCollection = TaskCollectionImpl()
1514
}).invoke()
1615

17-
val activities: ActivityCollection = ActivityCollectionImpl()
16+
val activities = LoadActivities(object : ActivityCollectionReader {
17+
override fun read(): ActivityCollection = ActivityCollectionImpl()
18+
}).invoke()
1819

1920
val addTask: () -> Unit = {
2021
val taskName = KInquirer.promptInput("Task name:")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.garbereder.tasktracker.usecases.tasks
2+
3+
import com.garbereder.tasktracker.entities.ActivityCollection
4+
5+
interface ActivityCollectionReader {
6+
fun read(): ActivityCollection
7+
}
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.ActivityCollection
4+
import com.garbereder.tasktracker.usecases.UseCase
5+
6+
class LoadActivities(private val reader: ActivityCollectionReader): UseCase<ActivityCollection> {
7+
override fun invoke(): ActivityCollection = reader.read()
8+
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.garbereder.tasktracker.usecases.tasks
2+
3+
import com.garbereder.tasktracker.entities.ActivityCollection
4+
import io.mockative.*
5+
import kotlin.test.Test
6+
import kotlin.test.assertEquals
7+
8+
class LoadActivitiesTests {
9+
@Mock
10+
val reader = mock(classOf<ActivityCollectionReader>())
11+
@Mock
12+
val collection = mock(classOf<ActivityCollection>())
13+
@Test
14+
fun invoke_noInput_callsThrough() {
15+
given(reader).invocation { read() }
16+
.then { collection }
17+
18+
val col = LoadActivities(reader).invoke()
19+
assertEquals(collection, col)
20+
21+
verify(reader).invocation { read() }
22+
.wasInvoked(exactly = once)
23+
}
24+
25+
}

0 commit comments

Comments
 (0)