Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package fr.insee.rmes.magma.diffusion.api.testcontainers.queries;

import fr.insee.rmes.magma.diffusion.api.GeoCantonOuVilleEndpoints;
import fr.insee.rmes.magma.diffusion.model.CantonOuVille;
import fr.insee.rmes.magma.diffusion.model.TerritoireTousAttributs;
import fr.insee.rmes.magma.diffusion.model.TypeEnumAscendantsCantonOuVille;
import fr.insee.rmes.magma.diffusion.model.TypeEnumDescendantsCantonOuVille;
import fr.insee.rmes.magma.diffusion.model.*;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
Expand Down Expand Up @@ -71,7 +68,7 @@ void should_return_1_region_when_CantonOuVilleCodeAscendants_code0101_date202509
}

/////////////////////////////////////////////////////////////////////
/// geo/cantonOuVille/{code} ///
/// geo/cantonOuVille/{code} ///
/////////////////////////////////////////////////////////////////////

// geo/cantonOuVille/0101?date=2025-09-04
Expand All @@ -89,6 +86,21 @@ void should_return_CantonOuVille_When_code0101_date20250904() throws Exception {
assertEquals("Ambérieu-en-Bugey", result.getIntitule());
}

// geo/cantonOuVille/2B05?date=2025-09-04
@Test
void should_return_CantonCode_2B05_when_code2B05_date20250904() {
var response = endpoints.getcogcanvil("2B05", LocalDate.of(2025, 9, 4));
var result = response.getBody();
assertNotNull(result);
assertEquals("2B05", result.getCode());
assertEquals("http://id.insee.fr/geo/cantonOuVille/3a6d53ee-51bb-41d7-91e9-44557fa11791", result.getUri());
assertEquals(CantonOuVille.TypeEnum.CANTON_OU_VILLE, result.getType());
assertEquals(LocalDate.of(2016, 1, 1), result.getDateCreation());
assertEquals("Biguglia-Nebbio", result.getIntituleSansArticle());
assertEquals(CantonOuVille.TypeArticleEnum._0, result.getTypeArticle());
assertEquals("Biguglia-Nebbio", result.getIntitule());
}

// geo/cantonOuVille/0100?date=2025-09-04 renvoie 404
@Test
void should_return_404_when_CantonOuVilleCode_code0100_date20250904() throws Exception{
Expand Down Expand Up @@ -201,6 +213,14 @@ void should_return_404_when_CantonOuVilleCodePrecedents_code0104_date19450101()
.andExpect(status().isNotFound());
}

// geo/cantonOuVille/2B05/precedents?date=2025-09-04
@Test
void should_return_404_when_CantonOuVilleCodePrecedents_code2B05_date20250904() throws Exception{
mockMvc.perform(get("/geo/cantonOuVille/2B05/precedents")
.param("date", "2025-09-04"))
.andExpect(status().isNotFound());
}

////////////////////////////////////////////////////////////////////
/// geo/cantonOuVille/{code}/projetes ///
////////////////////////////////////////////////////////////////////
Expand All @@ -223,6 +243,24 @@ void should_return_3_cantonsOuVilles_when_CantonsOuVillesCodeProjetes_code0104_d
assertEquals("Belley", resultItem1.getIntitule());
}


// geo/cantonOuVille/2B05/projetes?date=2025-09-04&dateProjection=2016-01-01 renvoie 1 cantonOuVilles
@Test
void should_return_1_cantonsOuVilles_when_CantonsOuVillesCodeProjetes_code2B05_date20250904_dateProjection20160101(){
var response = endpoints.getcogcanvilproj ("2B05", LocalDate.of(2016,1,1),LocalDate.of(2025, 9, 4));
var result = response.getBody();
assertNotNull(result);
var resultItem1= result.getFirst();
assertEquals(1, result.size());
assertEquals("2B05", resultItem1.getCode());
assertEquals("http://id.insee.fr/geo/cantonOuVille/3a6d53ee-51bb-41d7-91e9-44557fa11791", resultItem1.getUri());
assertEquals(TerritoireTousAttributs.TypeEnum.CANTON_OU_VILLE, resultItem1.getType());
assertEquals(LocalDate.of(2016,1,1), resultItem1.getDateCreation());
assertEquals("Biguglia-Nebbio", resultItem1.getIntituleSansArticle());
assertEquals(TerritoireTousAttributs.TypeArticleEnum._0, resultItem1.getTypeArticle());
assertEquals("Biguglia-Nebbio", resultItem1.getIntitule());
}

// geo/cantonOuVille/0104/projetes?date=2025-09-01
@Test
void should_return_400_when_CantonOuVilleCodeProjetes_dateProjectionNull() throws Exception{
Expand Down Expand Up @@ -263,10 +301,18 @@ void should_return_1_cantonOuVille_when_CantonOuVIlleCodeSuivants_code0103_date2

// geo/cantonOuVille/0103/suivants?date=2025-09-04
@Test
void should_return_404_when_CantonOuVIlleCodeSuivants_code0103_date20250904() throws Exception{
void should_return_404_when_CantonOuVilleCodeSuivants_code0103_date20250904() throws Exception{
mockMvc.perform(get("/geo/cantonOuVille/0103/suivants")
.param("date", "2025-09-04"))
.andExpect(status().isNotFound());
}

// geo/cantonOuVille/2B05/suivants?date=2025-09-04
@Test
void should_return_404_when_CantonOuVilleCodeSuivants_code2B05_date20250904() throws Exception{
mockMvc.perform(get("/geo/cantonOuVille/2B05/suivants")
.param("date", "2025-09-04"))
.andExpect(status().isNotFound());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import java.time.LocalDate;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.Assert.assertEquals;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

Expand Down Expand Up @@ -78,6 +77,8 @@ void should_return_CantonCode_0101_when_code22_date20250904() {
var response = endpoints.getcogcan("0101", LocalDate.of(2025, 9, 4));
var result = response.getBody();
assertNotNull(result);
assertEquals("0101", result.getCode());
assertEquals("http://id.insee.fr/geo/canton/f96a2438-478f-4ebb-b659-434305dff18f", result.getUri());
assertEquals(Canton.TypeEnum.CANTON, result.getType());
assertEquals(LocalDate.of(2016, 1, 1), result.getDateCreation());
assertEquals("Ambérieu-en-Bugey", result.getIntituleSansArticle());
Expand All @@ -86,6 +87,22 @@ void should_return_CantonCode_0101_when_code22_date20250904() {
assertEquals("01004", result.getChefLieu());
}

// geo/canton/2B05?date=2025-09-04 (in addition to Metadata-API)
@Test
void should_return_CantonCode_2B05_when_code2B05_date20250904() {
var response = endpoints.getcogcan("2B05", LocalDate.of(2025, 9, 4));
var result = response.getBody();
assertNotNull(result);
assertEquals("2B05", result.getCode());
assertEquals("http://id.insee.fr/geo/canton/7d8565df-5f17-4a13-9a19-10792df227e1", result.getUri());
assertEquals(Canton.TypeEnum.CANTON, result.getType());
assertEquals(LocalDate.of(2016, 1, 1), result.getDateCreation());
assertEquals("Biguglia-Nebbio", result.getIntituleSansArticle());
assertEquals(Canton.TypeArticleEnum._0, result.getTypeArticle());
assertEquals("Biguglia-Nebbio", result.getIntitule());
assertEquals("2B037", result.getChefLieu());
}


// geo/canton/01011?date=2025-09-04 return 404
@Test
Expand Down Expand Up @@ -259,15 +276,15 @@ void should_return_19_territoires_when_CantonCodeIntersections_code0101_date2025
var resultItem1= result.getFirst();

assertAll(
() -> Assertions.assertEquals(19, result.size()),
() -> Assertions.assertEquals("01", resultItem1.getCode()),
() -> Assertions.assertEquals("http://id.insee.fr/geo/departement/84680e6f-2e99-44c9-a9ba-2e96a2ae48b7", resultItem1.getUri()),
() -> Assertions.assertEquals(TerritoireBaseRelation.TypeEnum.DEPARTEMENT, resultItem1.getType()),
() -> Assertions.assertEquals(LocalDate.of(1967,12,31), resultItem1.getDateCreation()),
() -> Assertions.assertEquals("Ain", resultItem1.getIntituleSansArticle()),
() -> Assertions.assertEquals(TerritoireBaseRelation.TypeArticleEnum._5, resultItem1.getTypeArticle()),
() -> Assertions.assertEquals("Ain", resultItem1.getIntitule()),
() -> Assertions.assertEquals("inclus", resultItem1.getRelation())
() -> assertEquals(19, result.size()),
() -> assertEquals("01", resultItem1.getCode()),
() -> assertEquals("http://id.insee.fr/geo/departement/84680e6f-2e99-44c9-a9ba-2e96a2ae48b7", resultItem1.getUri()),
() -> assertEquals(TerritoireBaseRelation.TypeEnum.DEPARTEMENT, resultItem1.getType()),
() -> assertEquals(LocalDate.of(1967,12,31), resultItem1.getDateCreation()),
() -> assertEquals("Ain", resultItem1.getIntituleSansArticle()),
() -> assertEquals(TerritoireBaseRelation.TypeArticleEnum._5, resultItem1.getTypeArticle()),
() -> assertEquals("Ain", resultItem1.getIntitule()),
() -> assertEquals("inclus", resultItem1.getRelation())
);
}

Expand All @@ -282,23 +299,23 @@ void should_return_18_communes_when_CantonCodeIntersections_code0101_date2025090
assertAll(
() -> Assertions.assertEquals(18, result.size()),

() -> Assertions.assertEquals("01002", resultItem1.getCode()),
() -> Assertions.assertEquals("http://id.insee.fr/geo/commune/43018c68-c278-433a-b285-3531e8d5347e", resultItem1.getUri()),
() -> Assertions.assertEquals(TerritoireBaseRelation.TypeEnum.COMMUNE, resultItem1.getType()),
() -> Assertions.assertEquals(LocalDate.of(1943,1,1), resultItem1.getDateCreation()),
() -> Assertions.assertEquals("Abergement-de-Varey", resultItem1.getIntituleSansArticle()),
() -> Assertions.assertEquals(TerritoireBaseRelation.TypeArticleEnum._5, resultItem1.getTypeArticle()),
() -> Assertions.assertEquals("L'Abergement-de-Varey", resultItem1.getIntitule()),
() -> Assertions.assertEquals("contient", resultItem1.getRelation()),

() -> Assertions.assertEquals("01004", resultItem2.getCode()),
() -> Assertions.assertEquals("http://id.insee.fr/geo/commune/9957029c-4f49-4183-8c94-f6001a6e5a92", resultItem2.getUri()),
() -> Assertions.assertEquals(TerritoireBaseRelation.TypeEnum.COMMUNE, resultItem2.getType()),
() -> Assertions.assertEquals(LocalDate.of(1955,3,31), resultItem2.getDateCreation()),
() -> Assertions.assertEquals("Ambérieu-en-Bugey", resultItem2.getIntituleSansArticle()),
() -> Assertions.assertEquals(TerritoireBaseRelation.TypeArticleEnum._1, resultItem2.getTypeArticle()),
() -> Assertions.assertEquals("Ambérieu-en-Bugey", resultItem2.getIntitule()),
() -> Assertions.assertEquals("contient", resultItem2.getRelation())
() -> assertEquals("01002", resultItem1.getCode()),
() -> assertEquals("http://id.insee.fr/geo/commune/43018c68-c278-433a-b285-3531e8d5347e", resultItem1.getUri()),
() -> assertEquals(TerritoireBaseRelation.TypeEnum.COMMUNE, resultItem1.getType()),
() -> assertEquals(LocalDate.of(1943,1,1), resultItem1.getDateCreation()),
() -> assertEquals("Abergement-de-Varey", resultItem1.getIntituleSansArticle()),
() -> assertEquals(TerritoireBaseRelation.TypeArticleEnum._5, resultItem1.getTypeArticle()),
() -> assertEquals("L'Abergement-de-Varey", resultItem1.getIntitule()),
() -> assertEquals("contient", resultItem1.getRelation()),

() -> assertEquals("01004", resultItem2.getCode()),
() -> assertEquals("http://id.insee.fr/geo/commune/9957029c-4f49-4183-8c94-f6001a6e5a92", resultItem2.getUri()),
() -> assertEquals(TerritoireBaseRelation.TypeEnum.COMMUNE, resultItem2.getType()),
() -> assertEquals(LocalDate.of(1955,3,31), resultItem2.getDateCreation()),
() -> assertEquals("Ambérieu-en-Bugey", resultItem2.getIntituleSansArticle()),
() -> assertEquals(TerritoireBaseRelation.TypeArticleEnum._1, resultItem2.getTypeArticle()),
() -> assertEquals("Ambérieu-en-Bugey", resultItem2.getIntitule()),
() -> assertEquals("contient", resultItem2.getRelation())
);
}

Expand Down
8 changes: 4 additions & 4 deletions magma-oas/src/main/resources/openapi-diffusion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7674,7 +7674,7 @@ components:

CodeCanton:
description: 'Code d''un canton'
pattern: '[0-9]{4}|[0-9]{5}|2[ABab][0-9]{2}'
pattern: '[0-9][0-9AB][0-9]{2,3}'
type: string
xml:
attribute: true
Expand Down Expand Up @@ -7763,7 +7763,7 @@ components:

CodeCantonOuVille:
description: 'Code d''un canton-ou-ville'
pattern: '[0-9]{4,5}'
pattern: '[0-9][0-9AB][0-9]{2,3}'
type: string
xml:
attribute: true
Expand All @@ -7789,7 +7789,7 @@ components:

CodeCantonOuVillePrec:
description: 'Code d''un canton-ou-ville'
pattern: '[0-9]{4,5}'
pattern: '[0-9][0-9AB][0-9]{2,3}'
type: string
xml:
attribute: true
Expand All @@ -7806,7 +7806,7 @@ components:

CodeCantonOuVilleSuivants:
description: 'Code d''un canton-ou-ville'
pattern: '[0-9]{4,5}'
pattern: '[0-9][0-9AB][0-9]{2,3}'
type: string
xml:
attribute: true
Expand Down