diff --git a/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/CourseRepositoryTestBase.kt b/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/CourseRepositoryTestBase.kt new file mode 100644 index 0000000..719bc2d --- /dev/null +++ b/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/CourseRepositoryTestBase.kt @@ -0,0 +1,23 @@ +package co.digamma.ca.suites.food + +import co.digamma.ca.domain.api.food.Course +import co.digamma.ca.domain.spi.food.CourseRepository +import co.digamma.ca.fixtures.utils.RandGen +import co.digamma.ca.suites.persistence.CrudRepositoryTestBase +import java.util.Locale + +abstract class CourseRepositoryTestBase : CrudRepositoryTestBase() { + + abstract override val sut : CourseRepository + + override fun newModel() = Course( + id = RandGen.uuid(), + locale = Locale.ENGLISH, + name = RandGen.string() + ) + + override fun modifyModel(model: Course) = model.copy( + locale = Locale.FRENCH, + name = RandGen.string() + ) +} diff --git a/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/CuisineRepositoryTestBase.kt b/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/CuisineRepositoryTestBase.kt new file mode 100644 index 0000000..e5a1f69 --- /dev/null +++ b/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/CuisineRepositoryTestBase.kt @@ -0,0 +1,23 @@ +package co.digamma.ca.suites.food + +import co.digamma.ca.domain.api.food.Cuisine +import co.digamma.ca.domain.spi.food.CuisineRepository +import co.digamma.ca.fixtures.utils.RandGen +import co.digamma.ca.suites.persistence.CrudRepositoryTestBase +import java.util.Locale + +abstract class CuisineRepositoryTestBase : CrudRepositoryTestBase() { + + abstract override val sut : CuisineRepository + + override fun newModel() = Cuisine( + id = RandGen.uuid(), + locale = Locale.ENGLISH, + name = RandGen.string() + ) + + override fun modifyModel(model: Cuisine) = model.copy( + locale = Locale.FRENCH, + name = RandGen.string() + ) +} diff --git a/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/ServingRepositoryTestBase.kt b/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/ServingRepositoryTestBase.kt new file mode 100644 index 0000000..f176d95 --- /dev/null +++ b/backend/domain/src/test/kotlin/co/digamma/ca/suites/food/ServingRepositoryTestBase.kt @@ -0,0 +1,25 @@ +package co.digamma.ca.suites.food + +import co.digamma.ca.domain.api.food.Serving +import co.digamma.ca.domain.spi.food.ServingRepository +import co.digamma.ca.fixtures.utils.RandGen +import co.digamma.ca.suites.persistence.CrudRepositoryTestBase +import java.util.Locale + +abstract class ServingRepositoryTestBase : CrudRepositoryTestBase() { + + abstract override val sut : ServingRepository + + override fun newModel() = Serving( + id = RandGen.uuid(), + locale = Locale.ENGLISH, + name = RandGen.string(), + temperature = IntRange.EMPTY + ) + + override fun modifyModel(model: Serving) = model.copy( + locale = Locale.FRENCH, + name = RandGen.string(), + temperature = 25..30 + ) +} diff --git a/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemCourseRepositoryTest.kt b/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemCourseRepositoryTest.kt new file mode 100644 index 0000000..9ec2e3e --- /dev/null +++ b/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemCourseRepositoryTest.kt @@ -0,0 +1,8 @@ +package co.digamma.ca.tests.inmem.food + +import co.digamma.ca.fixtures.inmem.food.InMemCourseRepository +import co.digamma.ca.suites.food.CourseRepositoryTestBase + +class InMemCourseRepositoryTest : CourseRepositoryTestBase() { + override val sut = InMemCourseRepository() +} \ No newline at end of file diff --git a/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemCuisineRepositoryTest.kt b/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemCuisineRepositoryTest.kt new file mode 100644 index 0000000..2a25c05 --- /dev/null +++ b/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemCuisineRepositoryTest.kt @@ -0,0 +1,8 @@ +package co.digamma.ca.tests.inmem.food + +import co.digamma.ca.fixtures.inmem.food.InMemCuisineRepository +import co.digamma.ca.suites.food.CuisineRepositoryTestBase + +class InMemCuisineRepositoryTest : CuisineRepositoryTestBase() { + override val sut = InMemCuisineRepository() +} \ No newline at end of file diff --git a/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemServingRepositoryTest.kt b/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemServingRepositoryTest.kt new file mode 100644 index 0000000..88db0ac --- /dev/null +++ b/backend/domain/src/test/kotlin/co/digamma/ca/tests/inmem/food/InMemServingRepositoryTest.kt @@ -0,0 +1,8 @@ +package co.digamma.ca.tests.inmem.food + +import co.digamma.ca.fixtures.inmem.food.InMemServingRepository +import co.digamma.ca.suites.food.ServingRepositoryTestBase + +class InMemServingRepositoryTest : ServingRepositoryTestBase() { + override val sut = InMemServingRepository() +} \ No newline at end of file diff --git a/backend/sql/src/main/kotlin/co/digamma/ca/persistence/sql/food/SqlServingRepository.kt b/backend/sql/src/main/kotlin/co/digamma/ca/persistence/sql/food/SqlServingRepository.kt index ec42343..1409890 100644 --- a/backend/sql/src/main/kotlin/co/digamma/ca/persistence/sql/food/SqlServingRepository.kt +++ b/backend/sql/src/main/kotlin/co/digamma/ca/persistence/sql/food/SqlServingRepository.kt @@ -33,4 +33,13 @@ class SqlServingRepository( ServingRepository { override fun toModel(record: Record) = toServing(record) + + override fun toRecord(model: Serving): ServingRecord { + return super.toRecord(model).also { + if (model.temperature != IntRange.EMPTY) { + it.tempMin = model.temperature.first + it.tempMax = model.temperature.last + } + } + } } \ No newline at end of file diff --git a/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlCourseRepositoryTest.kt b/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlCourseRepositoryTest.kt new file mode 100644 index 0000000..acd5de4 --- /dev/null +++ b/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlCourseRepositoryTest.kt @@ -0,0 +1,11 @@ +package co.digamma.ca.persistence.sql.food + +import co.digamma.ca.persistence.sql.media.PostgreSQLContainerExtension +import co.digamma.ca.suites.food.CourseRepositoryTestBase +import org.jooq.DSLContext +import org.junit.jupiter.api.extension.ExtendWith + +@ExtendWith(PostgreSQLContainerExtension::class) +class SqlCourseRepositoryTest(dsl: DSLContext) : CourseRepositoryTestBase() { + override val sut = SqlCourseRepository(dsl) +} \ No newline at end of file diff --git a/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlCuisineRepositoryTest.kt b/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlCuisineRepositoryTest.kt new file mode 100644 index 0000000..70fcdae --- /dev/null +++ b/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlCuisineRepositoryTest.kt @@ -0,0 +1,11 @@ +package co.digamma.ca.persistence.sql.food + +import co.digamma.ca.persistence.sql.media.PostgreSQLContainerExtension +import co.digamma.ca.suites.food.CuisineRepositoryTestBase +import org.jooq.DSLContext +import org.junit.jupiter.api.extension.ExtendWith + +@ExtendWith(PostgreSQLContainerExtension::class) +class SqlCuisineRepositoryTest(dsl: DSLContext) : CuisineRepositoryTestBase() { + override val sut = SqlCuisineRepository(dsl) +} \ No newline at end of file diff --git a/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlServingRepositoryTest.kt b/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlServingRepositoryTest.kt new file mode 100644 index 0000000..7a9a0d4 --- /dev/null +++ b/backend/sql/src/test/kotlin/co/digamma/ca/persistence/sql/food/SqlServingRepositoryTest.kt @@ -0,0 +1,11 @@ +package co.digamma.ca.persistence.sql.food + +import co.digamma.ca.persistence.sql.media.PostgreSQLContainerExtension +import co.digamma.ca.suites.food.ServingRepositoryTestBase +import org.jooq.DSLContext +import org.junit.jupiter.api.extension.ExtendWith + +@ExtendWith(PostgreSQLContainerExtension::class) +class SqlServingRepositoryTest(dsl: DSLContext) : ServingRepositoryTestBase() { + override val sut = SqlServingRepository(dsl) +} \ No newline at end of file