Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/main/kotlin/logic/repositories/StateRepository.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package com.berlin.logic.repositories
import com.berlin.model.State

interface StateRepository {
fun createState(state: State):Boolean
fun getStatesByProjectId(projectId:String):List<State>
fun deleteState(stateId:String):Boolean
fun updateState(state: State):Boolean
fun getStateByTaskId(taskId:String):State?
fun addState(state: State): Result<String>
fun getStatesByProjectId(projectId: String):List<State>
fun deleteState(stateId: String): Result<String>
fun updateState(state: State): Result<String>
fun getStateByTaskId(taskId: String): State?
}
14 changes: 14 additions & 0 deletions src/main/kotlin/logic/usecase/StateUseCase.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.berlin.logic.usecase

import com.berlin.logic.repositories.StateRepository
import com.berlin.model.State

class StateUseCase(
private val stateRepository: StateRepository
) {
fun createNewState(state: State): Boolean {
return false
}


}
6 changes: 3 additions & 3 deletions src/main/kotlin/model/State.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.berlin.model

data class State(
val id:String,
val name:String,
val projectId:String,
val id: String,
val name: String,
val projectId: String,
)
11 changes: 11 additions & 0 deletions src/test/kotlin/helper/createStateHelper.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.berlin.helper

import com.berlin.model.State

fun createStateHelper(
id: String = "1", name: String = "TODO", projectId: String = "1"
): State {
return State(
id = id, name = name, projectId = projectId
)
}
51 changes: 51 additions & 0 deletions src/test/kotlin/logic/usecase/StateUseCaseTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.berlin.logic.usecase

import com.berlin.helper.createStateHelper
import com.berlin.logic.repositories.StateRepository
import com.google.common.truth.Truth.assertThat
import io.mockk.every
import io.mockk.mockk
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test

class StateUseCaseTest {

private lateinit var stateUseCase: StateUseCase
private val stateRepository: StateRepository = mockk(relaxed = true)

@BeforeEach
fun setup(){
stateUseCase = StateUseCase(stateRepository)
}

@Test
fun `should return true when valid state input`(){
// Given
val validInput = createStateHelper( name = "TODO")
// When
val result = stateUseCase.createNewState(validInput)
// Then
assertThat(result).isTrue()
}

@Test
fun `should return true when state creation succeeds`(){
// Given
every { stateRepository.addState(any()) } returns Result.success(" ")
// When
val result = stateUseCase.createNewState(createStateHelper())
// Then
assertThat(result).isTrue()
}

@Test
fun `should return false when state creation fails`(){
// Given
every { stateRepository.addState(any()) } returns Result.failure(Exception())
// When
val result = stateUseCase.createNewState(createStateHelper())
// Then
assertThat(result).isFalse()
}

}
Loading