/* * Copyright (C) 2014 Jan Pokorsky * * This program 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, or * (at your option) any later version. * * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */ package cz.cas.lib.proarc.nsesss2.mapping; import cz.cas.lib.proarc.nsesss2.mapping.NsesssMapper; import cz.cas.lib.proarc.nsesss2.NsesssConstants; import cz.cas.lib.proarc.nsesss2.Spis; import cz.cas.lib.proarc.nsesss2.TDatum; import cz.cas.lib.proarc.nsesss2.TEvidencniUdajeSpisu; import cz.cas.lib.proarc.nsesss2.TIdentifikator; import cz.cas.lib.proarc.nsesss2.TManipulaceSeskupeni; import cz.cas.lib.proarc.nsesss2.TOsobyExterni; import cz.cas.lib.proarc.nsesss2.TSkartacniRezim; import cz.cas.lib.proarc.nsesss2.TSubjektExterni; import cz.cas.lib.proarc.nsesss2.mapping.NsesssMapper.SubjektExterni; import java.util.List; import org.junit.Test; import static org.junit.Assert.*; /** * * @author Jan Pokorsky */ public class NsesssMapperTest { public NsesssMapperTest() { } @Test public void testToJson() { TOsobyExterni osobyExterni = new TOsobyExterni(); List<TSubjektExterni> subjects = osobyExterni.getSubjekt(); TSubjektExterni pravnickaOsoba = new TSubjektExterni(); pravnickaOsoba.setIdentifikatorOrganizace(createTIdentifikator("po_io_value", "po_io_zdroj")); pravnickaOsoba.setNazevOrganizace("po_NazevOrganizace"); pravnickaOsoba.setIdentifikatorFyzickeOsoby(createTIdentifikator("po_ifo_value", "po_ifo_zdroj")); pravnickaOsoba.setNazevFyzickeOsoby("po_NazevFyzickeOsoby"); pravnickaOsoba.setOrganizacniUtvar("po_OrganizacniUtvar"); pravnickaOsoba.setPracovniPozice("po_PracovniPozice"); pravnickaOsoba.setSidloOrganizace("po_SidloOrganizace"); pravnickaOsoba.setElektronickyKontakt("po_email"); subjects.add(pravnickaOsoba); TSubjektExterni fyzickaOsoba = new TSubjektExterni(); fyzickaOsoba.setIdentifikatorFyzickeOsoby(createTIdentifikator("fo_ifo_value", "fo_ifo_zdroj")); fyzickaOsoba.setNazevFyzickeOsoby("fo_NazevFyzickeOsoby"); fyzickaOsoba.setPostovniAdresa("fo_PostovniAdresa"); fyzickaOsoba.setElektronickyKontakt("po_email"); subjects.add(fyzickaOsoba); List<TSubjektExterni> input = osobyExterni.getSubjekt(); assertEquals(2, input.size()); NsesssMapper instance = new NsesssMapper(); TOsobyExterni result = instance.replaceTSubjektExterni(osobyExterni); List<TSubjektExterni> jsonResult = result.getSubjekt(); assertEquals(2, jsonResult.size()); assertEquals(SubjektExterni.class, jsonResult.get(0).getClass()); SubjektExterni se = (SubjektExterni) jsonResult.get(0); assertEquals(NsesssConstants.DOKUMENT_PRIJEMCE_PRAVNICKA_OSOBA, se.getSubjectType()); assertEquals(pravnickaOsoba.getElektronickyKontakt(), se.getElektronickyKontakt()); assertEquals(pravnickaOsoba.getIdentifikatorFyzickeOsoby(), se.getIdentifikatorFyzickeOsoby()); assertEquals(pravnickaOsoba.getIdentifikatorOrganizace(), se.getIdentifikatorOrganizace()); assertEquals(pravnickaOsoba.getNazevFyzickeOsoby(), se.getNazevFyzickeOsoby()); assertEquals(pravnickaOsoba.getNazevOrganizace(), se.getNazevOrganizace()); assertEquals(pravnickaOsoba.getOrganizacniUtvar(), se.getOrganizacniUtvar()); assertEquals(pravnickaOsoba.getPracovniPozice(), se.getPracovniPozice()); assertEquals(pravnickaOsoba.getSidloOrganizace(), se.getSidloOrganizace()); assertEquals(SubjektExterni.class, jsonResult.get(1).getClass()); se = (SubjektExterni) jsonResult.get(1); assertEquals(NsesssConstants.DOKUMENT_PRIJEMCE_FYZICKA_OSOBA, se.getSubjectType()); assertEquals(fyzickaOsoba.getElektronickyKontakt(), se.getElektronickyKontakt()); assertEquals(fyzickaOsoba.getIdentifikatorFyzickeOsoby(), se.getIdentifikatorFyzickeOsoby()); assertEquals(fyzickaOsoba.getNazevFyzickeOsoby(), se.getNazevFyzickeOsoby()); assertEquals(fyzickaOsoba.getPostovniAdresa(), se.getPostovniAdresa()); } private static TIdentifikator createTIdentifikator(String value, String zdroj) { TIdentifikator i = new TIdentifikator(); i.setValue(value); i.setZdroj(zdroj); return i; } @Test public void testfillDisposalDate() throws Exception { NsesssMapper mapper = new NsesssMapper(); Spis s = mapper.fillDisposalDate(new Spis()); assertNull(s.getEvidencniUdaje()); TEvidencniUdajeSpisu eu = new TEvidencniUdajeSpisu(); TManipulaceSeskupeni ms = new TManipulaceSeskupeni(); TDatum datumUzavreni = new TDatum(); datumUzavreni.setValue(mapper.getXmlTypes().newXMLGregorianCalendar("2012-02-02")); ms.setDatumUzavreni(datumUzavreni); eu.setManipulace(ms); s.setEvidencniUdaje(eu); // test fill new dates without period mapper.fillDisposalDate(s); assertEquals("2013-02-02", eu.getVyrazovani().getDataceVyrazeni().getRokSkartacniOperace().toXMLFormat()); assertEquals("2012-02-02", eu.getVyrazovani().getDataceVyrazeni().getRokSpousteciUdalosti().toXMLFormat()); // test update of new date with period 5 TSkartacniRezim skartacniRezim = new TSkartacniRezim(); skartacniRezim.setSkartacniLhuta(5); eu.getVyrazovani().setSkartacniRezim(skartacniRezim); datumUzavreni.setValue(mapper.getXmlTypes().newXMLGregorianCalendar("2000-02-02")); mapper.fillDisposalDate(s); assertEquals("2006-02-02", eu.getVyrazovani().getDataceVyrazeni().getRokSkartacniOperace().toXMLFormat()); assertEquals("2000-02-02", eu.getVyrazovani().getDataceVyrazeni().getRokSpousteciUdalosti().toXMLFormat()); // test update with missing date datumUzavreni.setValue(null); mapper.fillDisposalDate(s); assertNull(eu.getVyrazovani().getDataceVyrazeni().getRokSkartacniOperace()); assertNull(eu.getVyrazovani().getDataceVyrazeni().getRokSpousteciUdalosti()); // TransformerFactory.newInstance().newTransformer().transform( // new JAXBSource(JAXBContext.newInstance(Spis.class), s), // new StreamResult(System.out)); // System.out.println(""); } }