update get type(s) for pagination and filter
- update TypesEndpoint for all new endpoints - update application to use properties for sql script - update types controller - update types.http for all types of types calls - update test mocking for service - update getTypes to use filter, page, and show in TypesController - add validation dependency - update unit test for uuid assertion from test library in - remove UUIDAssert.kt - update IdentityControllerTest - update MappingKtTest - update NodeControllerTest - update TypeControllerTest - update TypesControllerTest - add test library dependency - update getTypes to handle filter limit and offset in TypeService - update TypeRepository - add findAllContaining with filter, limit and offset - add findAll with limit and offset - update type database with specific name key - split Type and Types
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
package ltd.hlaeja.assertj
|
||||
|
||||
import java.util.UUID
|
||||
import org.assertj.core.api.AbstractAssert
|
||||
|
||||
class UUIDAssert(actual: UUID) : AbstractAssert<UUIDAssert, UUID>(actual, UUIDAssert::class.java) {
|
||||
fun isUUID(expected: String): UUIDAssert {
|
||||
objects.assertEqual(this.info, this.actual, UUID.fromString(expected))
|
||||
return this.myself
|
||||
}
|
||||
}
|
||||
|
||||
fun assertThat(actual: UUID): UUIDAssert {
|
||||
return UUIDAssert(actual)
|
||||
}
|
||||
@@ -8,9 +8,10 @@ import java.time.ZoneId
|
||||
import java.time.ZonedDateTime
|
||||
import java.util.UUID
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import ltd.hlaeja.assertj.assertThat
|
||||
import ltd.hlaeja.entity.NodeEntity
|
||||
import ltd.hlaeja.service.NodeService
|
||||
import ltd.hlaeja.test.isEqualToUuid
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
@@ -48,8 +49,8 @@ class IdentityControllerTest {
|
||||
// then
|
||||
coVerify(exactly = 1) { service.getNodeFromDevice(any()) }
|
||||
|
||||
assertThat(response.node).isUUID("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(response.client).isUUID("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(response.device).isUUID("00000000-0000-0000-0000-000000000003")
|
||||
assertThat(response.node).isEqualToUuid("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(response.client).isEqualToUuid("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(response.device).isEqualToUuid("00000000-0000-0000-0000-000000000003")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ import io.mockk.coVerify
|
||||
import io.mockk.mockk
|
||||
import java.util.UUID
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import ltd.hlaeja.assertj.assertThat
|
||||
import ltd.hlaeja.entity.NodeEntity
|
||||
import ltd.hlaeja.library.deviceRegistry.Node
|
||||
import ltd.hlaeja.service.NodeService
|
||||
import ltd.hlaeja.test.isEqualToUuid
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
@@ -42,9 +42,9 @@ class NodeControllerTest {
|
||||
// then
|
||||
coVerify(exactly = 1) { service.addNode(any()) }
|
||||
|
||||
assertThat(response.id).isUUID("00000000-0000-0000-0000-000000000003")
|
||||
assertThat(response.client).isUUID("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(response.device).isUUID("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(response.id).isEqualToUuid("00000000-0000-0000-0000-000000000003")
|
||||
assertThat(response.client).isEqualToUuid("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(response.device).isEqualToUuid("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(response.name).isEqualTo("test")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,20 +2,16 @@ package ltd.hlaeja.controller
|
||||
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import java.time.ZonedDateTime
|
||||
import java.util.UUID
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.single
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import ltd.hlaeja.entity.TypeEntity
|
||||
import ltd.hlaeja.library.deviceRegistry.Type
|
||||
import ltd.hlaeja.service.TypeService
|
||||
import ltd.hlaeja.assertj.assertThat
|
||||
import ltd.hlaeja.test.isEqualToUuid
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
@@ -36,22 +32,7 @@ class TypeControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `get all types`() = runTest {
|
||||
// given
|
||||
every { service.getTypes() } returns flowOf(TypeEntity(id, timestamp, "name"))
|
||||
|
||||
// when
|
||||
val response = controller.getTypes().single()
|
||||
|
||||
// then
|
||||
verify(exactly = 1) { service.getTypes() }
|
||||
|
||||
assertThat(response.id).isUUID("00000000-0000-0000-0000-000000000000")
|
||||
assertThat(response.name).isEqualTo("name")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `add types`() = runTest {
|
||||
fun `add type`() = runTest {
|
||||
// given
|
||||
val request = Type.Request("name")
|
||||
coEvery { service.addType(any()) } returns TypeEntity(id, timestamp, "name")
|
||||
@@ -62,7 +43,7 @@ class TypeControllerTest {
|
||||
// then
|
||||
coVerify(exactly = 1) { service.addType(any()) }
|
||||
|
||||
assertThat(response.id).isUUID("00000000-0000-0000-0000-000000000000")
|
||||
assertThat(response.id).isEqualToUuid("00000000-0000-0000-0000-000000000000")
|
||||
assertThat(response.name).isEqualTo("name")
|
||||
}
|
||||
}
|
||||
|
||||
49
src/test/kotlin/ltd/hlaeja/controller/TypesControllerTest.kt
Normal file
49
src/test/kotlin/ltd/hlaeja/controller/TypesControllerTest.kt
Normal file
@@ -0,0 +1,49 @@
|
||||
package ltd.hlaeja.controller
|
||||
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import java.time.ZonedDateTime
|
||||
import java.util.UUID
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.single
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import ltd.hlaeja.entity.TypeEntity
|
||||
import ltd.hlaeja.service.TypeService
|
||||
import ltd.hlaeja.test.isEqualToUuid
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class TypesControllerTest {
|
||||
companion object {
|
||||
val id = UUID.fromString("00000000-0000-0000-0000-000000000000")
|
||||
val timestamp = ZonedDateTime.of(LocalDateTime.of(2000, 1, 1, 0, 0, 0, 1), ZoneId.of("UTC"))
|
||||
}
|
||||
|
||||
val service: TypeService = mockk()
|
||||
|
||||
lateinit var controller: TypesController
|
||||
|
||||
@BeforeEach
|
||||
fun setUp() {
|
||||
controller = TypesController(service)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `get all types`() = runTest {
|
||||
// given
|
||||
every { service.getTypes(any(), any(), any()) } returns flowOf(TypeEntity(id, timestamp, "name"))
|
||||
|
||||
// when
|
||||
val response = controller.getTypes().single()
|
||||
|
||||
// then
|
||||
verify(exactly = 1) { service.getTypes(0, 25, null) }
|
||||
|
||||
assertThat(response.id).isEqualToUuid("00000000-0000-0000-0000-000000000000")
|
||||
assertThat(response.name).isEqualTo("name")
|
||||
}
|
||||
}
|
||||
@@ -37,13 +37,27 @@ class TypeServiceTest {
|
||||
@Test
|
||||
fun `get all types`() {
|
||||
// given
|
||||
every { repository.findAll() } returns flowOf(mockk<TypeEntity>())
|
||||
every { repository.findAll(any(), any()) } returns flowOf(mockk<TypeEntity>())
|
||||
|
||||
// when
|
||||
service.getTypes()
|
||||
service.getTypes(1, 10, null)
|
||||
|
||||
// then
|
||||
verify(exactly = 1) { repository.findAll() }
|
||||
verify(exactly = 1) { repository.findAll(1, 10) }
|
||||
verify(exactly = 0) { repository.findAllContaining(any(), any(), any()) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `get all types with filter`() {
|
||||
// given
|
||||
every { repository.findAllContaining(any(), any(), any()) } returns flowOf(mockk<TypeEntity>())
|
||||
|
||||
// when
|
||||
service.getTypes(1, 10, "abc")
|
||||
|
||||
// then
|
||||
verify(exactly = 1) { repository.findAllContaining("%abc%", 1, 10) }
|
||||
verify(exactly = 0) { repository.findAll(any(), any()) }
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -8,11 +8,11 @@ import java.time.ZoneId
|
||||
import java.time.ZonedDateTime
|
||||
import java.util.UUID
|
||||
import kotlin.test.Test
|
||||
import ltd.hlaeja.assertj.assertThat
|
||||
import ltd.hlaeja.entity.NodeEntity
|
||||
import ltd.hlaeja.entity.TypeEntity
|
||||
import ltd.hlaeja.library.deviceRegistry.Type
|
||||
import ltd.hlaeja.library.deviceRegistry.Node
|
||||
import ltd.hlaeja.library.deviceRegistry.Type
|
||||
import ltd.hlaeja.test.isEqualToUuid
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.AfterEach
|
||||
import org.junit.jupiter.api.Assertions.assertThrows
|
||||
@@ -68,7 +68,7 @@ class MappingKtTest {
|
||||
val response = entity.toTypeResponse()
|
||||
|
||||
// then
|
||||
assertThat(response.id).isUUID("00000000-0000-0000-0000-000000000000")
|
||||
assertThat(response.id).isEqualToUuid("00000000-0000-0000-0000-000000000000")
|
||||
assertThat(response.name).isEqualTo("name")
|
||||
}
|
||||
|
||||
@@ -119,9 +119,9 @@ class MappingKtTest {
|
||||
val result = entity.toNodeResponse()
|
||||
|
||||
// then
|
||||
assertThat(result.id).isUUID("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(result.client).isUUID("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(result.device).isUUID("00000000-0000-0000-0000-000000000003")
|
||||
assertThat(result.id).isEqualToUuid("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(result.client).isEqualToUuid("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(result.device).isEqualToUuid("00000000-0000-0000-0000-000000000003")
|
||||
assertThat(result.name).isEqualTo("test")
|
||||
}
|
||||
|
||||
@@ -164,9 +164,9 @@ class MappingKtTest {
|
||||
val result = entity.toIdentityResponse()
|
||||
|
||||
// then
|
||||
assertThat(result.node).isUUID("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(result.client).isUUID("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(result.device).isUUID("00000000-0000-0000-0000-000000000003")
|
||||
assertThat(result.node).isEqualToUuid("00000000-0000-0000-0000-000000000001")
|
||||
assertThat(result.client).isEqualToUuid("00000000-0000-0000-0000-000000000002")
|
||||
assertThat(result.device).isEqualToUuid("00000000-0000-0000-0000-000000000003")
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user