org.lieuofs.commune.biz.dao.CommuneOFSDaoTest.java Source code

Java tutorial

Introduction

Here is the source code for org.lieuofs.commune.biz.dao.CommuneOFSDaoTest.java

Source

/**
 * This file is part of LieuOFS.
 *
 * LieuOFS is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License.
 *
 * LieuOFS is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with LieuOFS.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.lieuofs.commune.biz.dao;

import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import org.lieuofs.Mutable;
import org.lieuofs.TypeMutation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.lieuofs.TypeMutation.*;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/beans_lieuofs.xml")
public class CommuneOFSDaoTest {

    @Resource(name = "communeDao")
    private CommuneOFSDao dao;

    final Logger logger = LoggerFactory.getLogger(CommuneOFSDaoTest.class);

    private List<PersistCommune> getCommunesRadiees(List<PersistCommune> communes, int numMutation) {
        List<PersistCommune> communesFiltrees = new ArrayList<PersistCommune>();
        for (PersistCommune commune : communes) {
            Mutable radiation = commune.getRadiation();
            if (null != radiation && numMutation == radiation.getNumero())
                communesFiltrees.add(commune);
        }
        return communesFiltrees;
    }

    private List<PersistCommune> getCommunesCrees(List<PersistCommune> communes, int numMutation) {
        List<PersistCommune> communesFiltrees = new ArrayList<PersistCommune>();
        for (PersistCommune commune : communes) {
            Mutable inscription = commune.getInscription();
            if (numMutation == inscription.getNumero())
                communesFiltrees.add(commune);
        }
        return communesFiltrees;
    }

    private void typeRadiationIn(Set<TypeMutation> types, List<PersistCommune> communes) {
        boolean test = true;
        for (PersistCommune commune : communes)
            if (!types.contains(commune.getRadiation().getMode()))
                test = false;
        assertTrue("Type radiation", test);
    }

    private void typeInscriptionIn(Set<TypeMutation> types, List<PersistCommune> communes) {
        boolean test = true;
        for (PersistCommune commune : communes)
            if (!types.contains(commune.getInscription().getMode()))
                test = false;
        assertTrue("Type inscription", test);
    }

    @Test
    public void inclusionCommune() {
        // Mutation N 2328 : Bulle + La-Tour-de-Trme --> Bulle
        int numMutation = 2328;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre communes", 3, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 2, communesRadiees.size());
        typeRadiationIn(EnumSet.of(MODIF_TERR, RADIATION), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(MODIF_TERR), communesInscrites);

        // Mutation N 1510 : Altavilla + Murten --> Murten
        numMutation = 1510;
        communes = dao.getMutation(numMutation);
        assertEquals("Nbre communes", 3, communes.size());

        communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 2, communesRadiees.size());
        typeRadiationIn(EnumSet.of(MODIF_TERR, RADIATION), communesRadiees);

        communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(MODIF_TERR), communesInscrites);
    }

    @Test
    public void fusionCommune() {
        // Mutation N 2162 : Albeuve + Montbovon + Neirivue + Lessoc --> Haut-Intyamon
        int numMutation = 2162;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 5, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 4, communesRadiees.size());
        typeRadiationIn(EnumSet.of(RADIATION), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(CREATION), communesInscrites);

        // Mutation N 1562 : Lohn + Ammannsegg --> Lohn-Ammannsegg
        numMutation = 1562;
        communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 3, communes.size());

        communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 2, communesRadiees.size());
        typeRadiationIn(EnumSet.of(RADIATION), communesRadiees);

        communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(CREATION), communesInscrites);
    }

    @Test
    public void scissionCommune() {
        // Mutation N 1481 : canton AG   Arni-Islisberg --> Arni + Islisberg
        int numMutation = 1481;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 3, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(RADIATION), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 2, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(CREATION), communesInscrites);
    }

    @Test
    public void exclusionCommune() {
        // Mutation N 1483 : canton BE Bolligen --> Bolligen + Ittigen + Ostermundigen
        int numMutation = 1483;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 4, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(MODIF_TERR), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 3, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(MODIF_TERR, CREATION), communesInscrites);

        // Mutation N 1565 : Rubigen --> Allmendigen + Rubigen + Trimstein
        numMutation = 1565;
        communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 4, communes.size());

        communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(MODIF_TERR), communesRadiees);

        communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 3, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(MODIF_TERR, CREATION), communesInscrites);
    }

    @Test
    public void echangeTerritoire() {
        // Mutation N 1909 : canton TG : Gachnang + Frauenfeld --> Gachnang + Frauenfeld
        int numMutation = 1909;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 4, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 2, communesRadiees.size());
        typeRadiationIn(EnumSet.of(MODIF_TERR), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 2, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(MODIF_TERR), communesInscrites);

        // Mutation N 1858 : Opfershofen + Sulgen --> Opfershofen + Sulgen
        numMutation = 1858;
        communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 4, communes.size());

        communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 2, communesRadiees.size());
        typeRadiationIn(EnumSet.of(MODIF_TERR), communesRadiees);

        communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 2, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(MODIF_TERR), communesInscrites);
    }

    @Test
    public void changementNom() {
        // Mutation N 1075 : canton FR Vully-le-Haut --> Haut-Vully
        int numMutation = 1075;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 2, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(CHGT_NOM_COMM), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(CHGT_NOM_COMM), communesInscrites);

        // Mutation N 1477 : Yverdon --> Yverdon-les-Bains
        numMutation = 1477;
        communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 2, communes.size());

        communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(CHGT_NOM_COMM), communesRadiees);

        communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(CHGT_NOM_COMM), communesInscrites);
    }

    @Test
    public void changementAppartenanceDistrictCanton() {
        // Mutation N 2375 : canton VD Cudrefin
        int numMutation = 2375;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 2, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(RATT), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(RATT), communesInscrites);

        // Mutation N 1890 : la commune de Vellerat est passe du canton de Berne au canton du Jura
        numMutation = 1890;
        communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 2, communes.size());

        communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(RATT), communesRadiees);

        communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(RATT), communesInscrites);
    }

    @Test
    public void renumerotationFormelle() {
        // Mutation N 1372 : canton BE Belp
        int numMutation = 1372;
        List<PersistCommune> communes = dao.getMutation(numMutation);
        assertEquals("Nbre commune", 2, communes.size());

        List<PersistCommune> communesRadiees = getCommunesRadiees(communes, numMutation);
        assertEquals("Nbre communes radies", 1, communesRadiees.size());
        typeRadiationIn(EnumSet.of(RENUMEROTATION_FORMELLE), communesRadiees);

        List<PersistCommune> communesInscrites = getCommunesCrees(communes, numMutation);
        assertEquals("Nbre communes cres", 1, communesInscrites.size());
        typeInscriptionIn(EnumSet.of(RENUMEROTATION_FORMELLE), communesInscrites);
    }

}