Skip to content

Commit

Permalink
[Missions] Tests pour filtrer les missions par unité de contrôle (#1052)
Browse files Browse the repository at this point in the history
## Descriptions

Réparation des tests autour des modifications sur GetMissions
Je me suis aussi rendu compte que les tests pour GetMissions n'étaient
pas run. Ils le sont désormais.

----

- [ ] Tests E2E (Cypress)
  • Loading branch information
lwih authored Dec 11, 2023
2 parents b20b522 + c23e501 commit 0a5b83d
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ class GetMissions(private val missionRepository: IMissionRepository) {
private val logger = LoggerFactory.getLogger(GetMissions::class.java)

fun execute(
startedAfterDateTime: ZonedDateTime?,
startedBeforeDateTime: ZonedDateTime?,
missionSources: List<MissionSourceEnum>?,
missionTypes: List<String>?,
missionStatuses: List<String>?,
pageNumber: Int?,
pageSize: Int?,
seaFronts: List<String>?,
startedAfterDateTime: ZonedDateTime? = null,
startedBeforeDateTime: ZonedDateTime? = null,
missionSources: List<MissionSourceEnum>? = null,
missionTypes: List<String>? = null,
missionStatuses: List<String>? = null,
pageNumber: Int? = null,
pageSize: Int? = null,
seaFronts: List<String>? = null,
controlUnits: List<Int>? = null,
): List<MissionEntity> {
var missions: List<MissionEntity> =
Expand All @@ -50,7 +50,7 @@ class GetMissions(private val missionRepository: IMissionRepository) {
},
)

if (controlUnits != null) {
if (!controlUnits.isNullOrEmpty()) {
missions = missions.filter { mission ->
controlUnits.any { unitId ->
mission.controlUnits.any { controlUnit ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import fr.gouv.cacem.monitorenv.domain.entities.mission.MissionTypeEnum
import fr.gouv.cacem.monitorenv.domain.entities.mission.MissionSourceEnum
import java.time.ZonedDateTime
import org.assertj.core.api.Assertions.assertThat
import org.junit.Test
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.springframework.boot.test.mock.mockito.MockBean
import org.springframework.test.context.junit.jupiter.SpringExtension
import com.nhaarman.mockitokotlin2.any
import com.nhaarman.mockitokotlin2.anyOrNull

@ExtendWith(SpringExtension::class)
class GetMissionsUTests {
Expand Down Expand Up @@ -74,24 +74,16 @@ class GetMissionsUTests {
@Test
fun `execute should return all missions when filter for controlUnits is null`() {
given(missionRepository.findAll(
startedAfter = any(),
startedBefore = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
seaFronts = any(),
pageable = any(),
startedAfter = anyOrNull(),
startedBefore = anyOrNull(),
missionSources = anyOrNull(),
missionTypes = anyOrNull(),
missionStatuses = anyOrNull(),
seaFronts = anyOrNull(),
pageable = anyOrNull(),
)).willReturn(listOf(mission1, mission2))

val result = GetMissions(missionRepository).execute(
startedAfterDateTime = any(),
startedBeforeDateTime = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
pageNumber = any(),
pageSize = any(),
seaFronts = any(),
controlUnits = null
)

Expand All @@ -101,24 +93,16 @@ class GetMissionsUTests {
@Test
fun `execute should return all missions when filter for controlUnits is an empty list`() {
given(missionRepository.findAll(
startedAfter = any(),
startedBefore = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
seaFronts = any(),
pageable = any(),
startedAfter = anyOrNull(),
startedBefore = anyOrNull(),
missionSources = anyOrNull(),
missionTypes = anyOrNull(),
missionStatuses = anyOrNull(),
seaFronts = anyOrNull(),
pageable = anyOrNull(),
)).willReturn(listOf(mission1, mission2))

val result = GetMissions(missionRepository).execute(
startedAfterDateTime = any(),
startedBeforeDateTime = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
pageNumber = any(),
pageSize = any(),
seaFronts = any(),
controlUnits = listOf()
)

Expand All @@ -128,79 +112,55 @@ class GetMissionsUTests {
@Test
fun `execute should only one missions when the controlUnits input matches 1 mission`() {
given(missionRepository.findAll(
startedAfter = any(),
startedBefore = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
seaFronts = any(),
pageable = any(),
startedAfter = anyOrNull(),
startedBefore = anyOrNull(),
missionSources = anyOrNull(),
missionTypes = anyOrNull(),
missionStatuses = anyOrNull(),
seaFronts = anyOrNull(),
pageable = anyOrNull(),
)).willReturn(listOf(mission1, mission2))

val result = GetMissions(missionRepository).execute(
startedAfterDateTime = any(),
startedBeforeDateTime = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
pageNumber = any(),
pageSize = any(),
seaFronts = any(),
controlUnits = listOf(controlUnit2.id)
)

assertThat(result.size).isEqualTo(1)
assertThat(result.first()).isEqualTo(controlUnit2)
assertThat(result.first()).isEqualTo(mission1)
}

@Test
fun `execute should only two missions when the same controlUnits input matches 2 missions`() {
given(missionRepository.findAll(
startedAfter = any(),
startedBefore = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
seaFronts = any(),
pageable = any(),
startedAfter = anyOrNull(),
startedBefore = anyOrNull(),
missionSources = anyOrNull(),
missionTypes = anyOrNull(),
missionStatuses = anyOrNull(),
seaFronts = anyOrNull(),
pageable = anyOrNull(),
)).willReturn(listOf(mission1, mission2))

val result = GetMissions(missionRepository).execute(
startedAfterDateTime = any(),
startedBeforeDateTime = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
pageNumber = any(),
pageSize = any(),
seaFronts = any(),
controlUnits = listOf(controlUnit1.id)
)

assertThat(result.size).isEqualTo(2)
}

@Test
fun `execute should return filtered missions matching nultiple controlUnits input`() {
fun `execute should return filtered missions matching multiple controlUnits input`() {
given(missionRepository.findAll(
startedAfter = any(),
startedBefore = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
seaFronts = any(),
pageable = any(),
startedAfter = anyOrNull(),
startedBefore = anyOrNull(),
missionSources = anyOrNull(),
missionTypes = anyOrNull(),
missionStatuses = anyOrNull(),
seaFronts = anyOrNull(),
pageable = anyOrNull(),
)).willReturn(listOf(mission1, mission2))

val result = GetMissions(missionRepository).execute(
startedAfterDateTime = any(),
startedBeforeDateTime = any(),
missionSources = any(),
missionTypes = any(),
missionStatuses = any(),
pageNumber = any(),
pageSize = any(),
seaFronts = any(),
controlUnits = listOf(controlUnit2.id, controlUnit3.id)
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ class ApiMissionsControllerITests {
missionTypes = any(),
missionStatuses = any(),
seaFronts = any(),
controlUnits = any(),
pageNumber = any(),
pageSize = any(),
),
Expand Down

0 comments on commit 0a5b83d

Please sign in to comment.