Skip to content

Commit

Permalink
fix: add control plans to envaction saving usecase
Browse files Browse the repository at this point in the history
  • Loading branch information
maximeperrault authored and maximeperraultdev committed Sep 25, 2024
1 parent 60ad0eb commit 9c6428f
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 136 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,120 +49,120 @@ import java.time.ZoneOffset.UTC
@NamedEntityGraph(
name = "MissionModel.fullLoad",
attributeNodes =
[
NamedAttributeNode("envActions", subgraph = "subgraph.envActions"),
NamedAttributeNode(
"attachedReportings",
subgraph = "subgraph.attachedReportings",
),
NamedAttributeNode(
"controlResources",
subgraph = "subgraph.missionControlResources",
),
NamedAttributeNode(
"controlUnits",
subgraph = "subgraph.missionControlUnits",
),
],
[
NamedAttributeNode("envActions", subgraph = "subgraph.envActions"),
NamedAttributeNode(
"attachedReportings",
subgraph = "subgraph.attachedReportings",
),
NamedAttributeNode(
"controlResources",
subgraph = "subgraph.missionControlResources",
),
NamedAttributeNode(
"controlUnits",
subgraph = "subgraph.missionControlUnits",
),
],
subgraphs =
[
NamedSubgraph(
name = "subgraph.envActions",
attributeNodes =
[
NamedAttributeNode("controlPlanThemes"),
NamedAttributeNode(
"controlPlanSubThemes",
subgraph =
"subgraph.linkedControlPlanSubThemes",
),
NamedAttributeNode(
"controlPlanTags",
subgraph = "subgraph.linkedControlPlanTags",
),
NamedAttributeNode("attachedReporting"),
],
),
NamedSubgraph(
name = "subgraph.attachedReportings",
attributeNodes =
[
NamedAttributeNode(
"controlPlanSubThemes",
subgraph =
"subgraph.linkedControlPlanSubThemes",
),
],
),
NamedSubgraph(
name = "subgraph.linkedControlPlanSubThemes",
attributeNodes =
[
NamedAttributeNode(
"controlPlanSubTheme",
subgraph = "subgraph.controlPlanSubThemes",
),
],
),
NamedSubgraph(
name = "subgraph.controlPlanSubThemes",
attributeNodes =
[
NamedAttributeNode("controlPlanTheme"),
],
),
NamedSubgraph(
name = "subgraph.linkedControlPlanTags",
attributeNodes =
[
NamedAttributeNode(
"controlPlanTag",
subgraph = "subgraph.controlPlanTags",
),
],
),
NamedSubgraph(
name = "subgraph.controlPlanTags",
attributeNodes =
[
NamedAttributeNode("controlPlanTheme"),
],
),
NamedSubgraph(
name = "subgraph.missionControlResources",
attributeNodes =
[
NamedAttributeNode(
"resource",
subgraph = "subgraph.controlResource",
),
],
),
NamedSubgraph(
name = "subgraph.missionControlUnits",
attributeNodes =
[
NamedAttributeNode(
"unit",
subgraph = "subgraph.controlUnit",
),
],
),
NamedSubgraph(
name = "subgraph.controlUnit",
attributeNodes =
[
NamedAttributeNode("administration"),
],
),
NamedSubgraph(
name = "subgraph.controlResource",
attributeNodes =
[
NamedAttributeNode("station"),
],
),
],
[
NamedSubgraph(
name = "subgraph.envActions",
attributeNodes =
[
NamedAttributeNode("controlPlanThemes"),
NamedAttributeNode(
"controlPlanSubThemes",
subgraph =
"subgraph.linkedControlPlanSubThemes",
),
NamedAttributeNode(
"controlPlanTags",
subgraph = "subgraph.linkedControlPlanTags",
),
NamedAttributeNode("attachedReporting"),
],
),
NamedSubgraph(
name = "subgraph.attachedReportings",
attributeNodes =
[
NamedAttributeNode(
"controlPlanSubThemes",
subgraph =
"subgraph.linkedControlPlanSubThemes",
),
],
),
NamedSubgraph(
name = "subgraph.linkedControlPlanSubThemes",
attributeNodes =
[
NamedAttributeNode(
"controlPlanSubTheme",
subgraph = "subgraph.controlPlanSubThemes",
),
],
),
NamedSubgraph(
name = "subgraph.controlPlanSubThemes",
attributeNodes =
[
NamedAttributeNode("controlPlanTheme"),
],
),
NamedSubgraph(
name = "subgraph.linkedControlPlanTags",
attributeNodes =
[
NamedAttributeNode(
"controlPlanTag",
subgraph = "subgraph.controlPlanTags",
),
],
),
NamedSubgraph(
name = "subgraph.controlPlanTags",
attributeNodes =
[
NamedAttributeNode("controlPlanTheme"),
],
),
NamedSubgraph(
name = "subgraph.missionControlResources",
attributeNodes =
[
NamedAttributeNode(
"resource",
subgraph = "subgraph.controlResource",
),
],
),
NamedSubgraph(
name = "subgraph.missionControlUnits",
attributeNodes =
[
NamedAttributeNode(
"unit",
subgraph = "subgraph.controlUnit",
),
],
),
NamedSubgraph(
name = "subgraph.controlUnit",
attributeNodes =
[
NamedAttributeNode("administration"),
],
),
NamedSubgraph(
name = "subgraph.controlResource",
attributeNodes =
[
NamedAttributeNode("station"),
],
),
],
)
@Table(name = "missions")
class MissionModel(
Expand Down Expand Up @@ -319,25 +319,25 @@ class MissionModel(
return MissionDTO(
mission = this.toMissionEntity(objectMapper),
attachedReportingIds =
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc == null }
?.map { it.id as Int }
?: listOf(),
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc == null }
?.map { it.id as Int }
?: listOf(),
attachedReportings =
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc == null }
?.map { it.toReportingDTO(objectMapper) }
?: listOf(),
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc == null }
?.map { it.toReportingDTO(objectMapper) }
?: listOf(),
detachedReportings =
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc != null }
?.map { it.toReportingDTO(objectMapper) }
?: listOf(),
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc != null }
?.map { it.toReportingDTO(objectMapper) }
?: listOf(),
detachedReportingIds =
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc != null }
?.map { it.id as Int }
?: listOf(),
this.attachedReportings
?.filter { it.detachedFromMissionAtUtc != null }
?.map { it.id as Int }
?: listOf(),
envActionsAttachedToReportingIds = envActionsAttachedToReportingIds,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ class JpaEnvActionRepository(
val controlPlanTagssReferenceModelMap: MutableMap<Int, ControlPlanTagModel> = mutableMapOf()
val controlPlanSubThemesReferenceModelMap: MutableMap<Int, ControlPlanSubThemeModel> = mutableMapOf()


envAction.controlPlans?.forEach { controlPlan ->
controlPlan.tagIds?.forEach { tagId ->
controlPlanTagssReferenceModelMap[tagId] = idbControlPlanTagRepository.getReferenceById(tagId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,15 @@ import java.time.ZonedDateTime
import java.util.UUID

class EnvActionFixture {

companion object {

fun anEnvAction(
mapper: ObjectMapper,
id: UUID,
startTime: ZonedDateTime? = null,
endTime: ZonedDateTime? = null,
observationsByUnit: String? = null,
missionId: Int? = 1,
controlPlans: List<EnvActionControlPlanEntity>? = null
controlPlans: List<EnvActionControlPlanEntity>? = null,
): EnvActionEntity {
return EnvActionMapper.getEnvActionEntityFromJSON(
mapper,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.gouv.cacem.monitorenv.infrastructure.database.repositories

import com.fasterxml.jackson.databind.ObjectMapper
import fr.gouv.cacem.monitorenv.domain.entities.mission.envAction.EnvActionControlPlanEntity
import fr.gouv.cacem.monitorenv.domain.exceptions.BackendUsageException
import fr.gouv.cacem.monitorenv.domain.use_cases.actions.fixtures.EnvActionFixture.Companion.anEnvAction
import org.assertj.core.api.Assertions.assertThat
Expand All @@ -12,7 +13,6 @@ import java.time.ZonedDateTime
import java.util.UUID

class JpaEnvActionRepositoryITest : AbstractDBTests() {

@Autowired
private lateinit var jpaEnvActionRepository: JpaEnvActionRepository

Expand Down Expand Up @@ -46,18 +46,31 @@ class JpaEnvActionRepositoryITest : AbstractDBTests() {
@Test
fun `save() should return the updated entity`() {
// Given
val id = UUID.fromString("16eeb9e8-f30c-430e-b36b-32b4673f81ce")
val id = UUID.fromString("e2257638-ddef-4611-960c-7675a3254c38")
val today = ZonedDateTime.now(ZoneOffset.UTC)
val tomorrow = ZonedDateTime.now(ZoneOffset.UTC).plusDays(1)
val observationsByUnit = "observationsByUnit"

val anEnvAction = anEnvAction(objectMapper, id, today, tomorrow, observationsByUnit)
val anEnvAction =
anEnvAction(
objectMapper,
id,
today,
tomorrow,
observationsByUnit,
missionId = 38,
controlPlans =
listOf(
EnvActionControlPlanEntity(themeId = 9, subThemeIds = listOf(51), tagIds = listOf()),
),
)

// When
val envActionEntity = jpaEnvActionRepository.save(anEnvAction)

// Then
assertThat(envActionEntity).isEqualTo(anEnvAction)
assertThat(envActionEntity.controlPlans?.size).isEqualTo(1)
}

@Test
Expand Down

0 comments on commit 9c6428f

Please sign in to comment.