From 218de7ef158d4866b0348a5a763bb4ccdc287cb8 Mon Sep 17 00:00:00 2001 From: Loup Theron Date: Thu, 15 Feb 2024 17:20:37 +0100 Subject: [PATCH] Fix dimensions type from double to string --- .../domain/entities/last_position/Gear.kt | 2 +- .../monitorfish/domain/entities/vessel/Vessel.kt | 6 +++++- .../api/outputs/GearLastPositionDataOutput.kt | 2 +- .../api/bff/VesselControllerITests.kt | 14 +++++++++++++- .../JpaLastPositionRepositoryITests.kt | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/last_position/Gear.kt b/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/last_position/Gear.kt index 77abc12582..c9aa5fdf5b 100644 --- a/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/last_position/Gear.kt +++ b/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/last_position/Gear.kt @@ -3,5 +3,5 @@ package fr.gouv.cnsp.monitorfish.domain.entities.last_position class Gear() { var gear: String? = null var mesh: Double? = null - var dimensions: Double? = null + var dimensions: String? = null } diff --git a/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/Vessel.kt b/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/Vessel.kt index 5eb9c33ee8..f6b0c7ad00 100644 --- a/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/Vessel.kt +++ b/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/Vessel.kt @@ -37,7 +37,11 @@ data class Vessel( val underCharter: Boolean? = null, ) { fun getNationalIdentifier(): String { - val internalReferenceNumberCountryCode = LIKELY_CONTROLLED_COUNTRY_CODES.find { countryAlpha3 -> internalReferenceNumber?.contains(countryAlpha3) ?: false } + val internalReferenceNumberCountryCode = LIKELY_CONTROLLED_COUNTRY_CODES.find { countryAlpha3 -> + internalReferenceNumber?.contains( + countryAlpha3, + ) ?: false + } val identifier = internalReferenceNumber?.replace("${internalReferenceNumberCountryCode}000", "") ?: "" if (districtCode.isNullOrEmpty()) { diff --git a/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/GearLastPositionDataOutput.kt b/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/GearLastPositionDataOutput.kt index ff9dee72a6..60338b4bee 100644 --- a/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/GearLastPositionDataOutput.kt +++ b/backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/GearLastPositionDataOutput.kt @@ -4,7 +4,7 @@ import fr.gouv.cnsp.monitorfish.domain.entities.last_position.Gear data class GearLastPositionDataOutput( var gear: String? = null, - var dimensions: Double? = null, + var dimensions: String? = null, var mesh: Double? = null, ) { companion object { diff --git a/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/VesselControllerITests.kt b/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/VesselControllerITests.kt index c0143dbc5a..93972e3b0e 100644 --- a/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/VesselControllerITests.kt +++ b/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/VesselControllerITests.kt @@ -10,6 +10,7 @@ import fr.gouv.cnsp.monitorfish.config.SecurityConfig import fr.gouv.cnsp.monitorfish.config.SentryConfig import fr.gouv.cnsp.monitorfish.domain.entities.alerts.type.ThreeMilesTrawlingAlert import fr.gouv.cnsp.monitorfish.domain.entities.beacon_malfunctions.* +import fr.gouv.cnsp.monitorfish.domain.entities.last_position.Gear import fr.gouv.cnsp.monitorfish.domain.entities.last_position.LastPosition import fr.gouv.cnsp.monitorfish.domain.entities.logbook.LogbookMessagesAndAlerts import fr.gouv.cnsp.monitorfish.domain.entities.logbook.Voyage @@ -89,9 +90,18 @@ class VesselControllerITests { @Test fun `Should get all vessels last positions`() { // Given + val gear = Gear() + gear.gear = "OTB" + gear.dimensions = "12;123" + val farPastFixedDateTime = ZonedDateTime.of(EPOCH, LocalTime.MAX.plusSeconds(1), ZoneId.of("UTC")) val position = - LastPosition(0, 1, "MMSI", null, null, null, null, CountryCode.FR, PositionType.AIS, 16.445, 48.2525, 16.445, 48.2525, 1.8, 180.0, farPastFixedDateTime, vesselIdentifier = VesselIdentifier.INTERNAL_REFERENCE_NUMBER) + LastPosition( + 0, 1, "MMSI", null, null, null, null, CountryCode.FR, PositionType.AIS, 16.445, 48.2525, 16.445, 48.2525, 1.8, 180.0, farPastFixedDateTime, vesselIdentifier = VesselIdentifier.INTERNAL_REFERENCE_NUMBER, + gearOnboard = listOf( + gear, + ), + ) given(this.getLastPositions.execute()).willReturn(listOf(position)) // When @@ -114,6 +124,8 @@ class VesselControllerITests { .andExpect(jsonPath("$[0].positionType", equalTo(PositionType.AIS.toString()))) .andExpect(jsonPath("$[0].dateTime", equalTo(position.dateTime.toOffsetDateTime().toString()))) .andExpect(jsonPath("$[0].reportings.length()", equalTo(0))) + .andExpect(jsonPath("$[0].gearOnboard.length()", equalTo(1))) + .andExpect(jsonPath("$[0].gearOnboard[0].dimensions", equalTo("12;123"))) .andExpect(jsonPath("$[0].alerts.length()", equalTo(0))) } diff --git a/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLastPositionRepositoryITests.kt b/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLastPositionRepositoryITests.kt index a32d73dbb4..8650d253f6 100644 --- a/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLastPositionRepositoryITests.kt +++ b/backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLastPositionRepositoryITests.kt @@ -33,7 +33,7 @@ class JpaLastPositionRepositoryITests : AbstractDBTests() { it.internalReferenceNumber == "FAK000999999" } assertThat(position?.gearOnboard).hasSize(1) - assertThat(position?.gearOnboard?.first()?.dimensions).isEqualTo(45.0) + assertThat(position?.gearOnboard?.first()?.dimensions).isEqualTo("45.0") assertThat(position?.gearOnboard?.first()?.gear).isEqualTo("OTB") assertThat(position?.gearOnboard?.first()?.mesh).isEqualTo(70.0)