/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2010, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. */ package org.geotoolkit.xal; import java.io.File; import java.io.IOException; import java.util.Arrays; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLStreamException; import org.geotoolkit.xal.model.AddressDetails; import org.geotoolkit.xal.model.AfterBeforeEnum; import org.geotoolkit.xal.model.BuildingName; import org.geotoolkit.xal.model.Department; import org.geotoolkit.xal.model.DependentLocality; import org.geotoolkit.xal.model.DependentLocalityNumber; import org.geotoolkit.xal.model.GenericTypedGrPostal; import org.geotoolkit.xal.model.LargeMailUser; import org.geotoolkit.xal.model.LargeMailUserIdentifier; import org.geotoolkit.xal.model.LargeMailUserName; import org.geotoolkit.xal.model.Locality; import org.geotoolkit.xal.model.PostBox; import org.geotoolkit.xal.model.PostBoxNumber; import org.geotoolkit.xal.model.PostOffice; import org.geotoolkit.xal.model.PostalCode; import org.geotoolkit.xal.model.PostalRoute; import org.geotoolkit.xal.model.PostalRouteNumber; import org.geotoolkit.xal.model.Premise; import org.geotoolkit.xal.model.Thoroughfare; import org.geotoolkit.xal.model.Xal; import org.geotoolkit.xal.model.XalException; import org.geotoolkit.xal.xml.XalReader; import org.geotoolkit.xal.xml.XalWriter; import org.geotoolkit.xml.DomCompare; import org.junit.Test; import org.xml.sax.SAXException; import static org.junit.Assert.*; /** * * @author Samuel Andrés * @module */ public class LocalityTest extends org.geotoolkit.test.TestBase { private static final String pathToTestFile = "src/test/resources/org/geotoolkit/xal/locality.xml"; public LocalityTest() { } @Test public void localityReadTest() throws IOException, XMLStreamException, XalException { final XalReader reader = new XalReader(); reader.setInput(new File(pathToTestFile)); final Xal xalObjects = reader.read(); reader.dispose(); assertEquals(1, xalObjects.getAddressDetails().size()); final AddressDetails addressDetails0 = xalObjects.getAddressDetails().get(0); final Locality locality = addressDetails0.getLocality(); assertEquals("localityType", locality.getType()); assertEquals("localityUsageType", locality.getUsageType()); assertEquals("localityIndicator", locality.getIndicator()); assertEquals(2, locality.getAddressLines().size()); assertEquals("locality address 1", locality.getAddressLines().get(0).getContent()); assertEquals("locality address 2", locality.getAddressLines().get(1).getContent()); assertEquals(1, locality.getLocalityNames().size()); final GenericTypedGrPostal localityName = locality.getLocalityNames().get(0); assertEquals("localityNameType", localityName.getType()); assertEquals("localityNameCode", localityName.getGrPostal().getCode()); assertEquals("locality name", localityName.getContent()); final LargeMailUser largeMailUser = locality.getLargeMailUser(); assertEquals("largeMailUserType", largeMailUser.getType()); assertEquals(1, largeMailUser.getAddressLines().size()); assertEquals("lmu line 1", largeMailUser.getAddressLines().get(0).getContent()); assertEquals(1, largeMailUser.getLargeMailUserNames().size()); final LargeMailUserName largeMailUserName = largeMailUser.getLargeMailUserNames().get(0); assertEquals("lmunType", largeMailUserName.getType()); assertEquals("lmunCode", largeMailUserName.getCode()); assertEquals("large mail user name", largeMailUserName.getContent()); final LargeMailUserIdentifier largeMailUserIdentifier = largeMailUser.getLargeMailUserIdentifier(); assertEquals("lmuiType", largeMailUserIdentifier.getType()); assertEquals("lmuiCode", largeMailUserIdentifier.getGrPostal().getCode()); assertEquals("lmuiIndicator", largeMailUserIdentifier.getIndicator()); assertEquals("lmu identifier", largeMailUserIdentifier.getContent()); assertEquals(1, largeMailUser.getBuildingNames().size()); final BuildingName buildingName = largeMailUser.getBuildingNames().get(0); assertEquals("BNType", buildingName.getType()); assertEquals("BNCode", buildingName.getGrPostal().getCode()); assertEquals(AfterBeforeEnum.BEFORE, buildingName.getTypeOccurrence()); assertEquals("Building name content", buildingName.getContent()); assertEquals("largeMailUserDepartment", largeMailUser.getDepartment().getType()); final PostBox postBox = largeMailUser.getPostBox(); assertEquals("largeMailUserPostBox", postBox.getType()); final PostBoxNumber postBoxNumber = postBox.getPostBoxNumber(); assertEquals("lmu", postBoxNumber.getGrPostal().getCode()); assertEquals("post box number", postBoxNumber.getContent()); assertEquals("largeMailUserThoroughfare", largeMailUser.getThoroughfare().getType()); assertEquals("largeMailUserPostalCode", largeMailUser.getPostalCode().getType()); assertEquals("localityThoroughfare", locality.getThoroughfare().getType()); assertEquals("localityPremise", locality.getPremise().getType()); final DependentLocality dependentLocality1 = locality.getDependentLocality(); assertEquals("dlType", dependentLocality1.getType()); assertEquals("dlUsageType", dependentLocality1.getUsageType()); assertEquals("dlConnector", dependentLocality1.getConnector()); assertEquals("dlIndicator", dependentLocality1.getIndicator()); assertEquals(1, dependentLocality1.getAddressLines().size()); assertEquals("dependent locality address", dependentLocality1.getAddressLines().get(0).getContent()); assertEquals(1, dependentLocality1.getDependentLocalityNames().size()); GenericTypedGrPostal dependentLocalityName = dependentLocality1.getDependentLocalityNames().get(0); assertEquals("dependent locality name", dependentLocalityName.getContent()); assertEquals("dlnType", dependentLocalityName.getType()); assertEquals("dlnCode", dependentLocalityName.getGrPostal().getCode()); final PostBox dependentLocalityPostBox = dependentLocality1.getPostBox(); assertEquals("dlPostBox", dependentLocalityPostBox.getType()); final PostBoxNumber dependentLocalityPostBoxNumber = dependentLocalityPostBox.getPostBoxNumber(); assertEquals("dl", dependentLocalityPostBoxNumber.getGrPostal().getCode()); assertEquals("postBoxNumber", dependentLocalityPostBoxNumber.getContent()); assertEquals("dlThoroughfare", dependentLocality1.getThoroughfare().getType()); assertEquals("DLPremise", dependentLocality1.getPremise().getType()); final DependentLocality dependentLocality2 = dependentLocality1.getDependentLocality(); assertEquals("subDL", dependentLocality2.getType()); assertEquals("subDL-largeMailUser", dependentLocality2.getLargeMailUser().getType()); final DependentLocality dependentLocality3 = dependentLocality2.getDependentLocality(); assertEquals("subsubDL", dependentLocality3.getType()); assertEquals("subsubDL-postOffice", dependentLocality3.getPostOffice().getType()); final DependentLocality dependentLocality4 = dependentLocality3.getDependentLocality(); assertEquals("subsubsubDL", dependentLocality4.getType()); PostalRoute postalRoute = dependentLocality4.getPostalRoute(); assertEquals("subsubsubDL-postalRoute", postalRoute.getType()); final PostalRouteNumber postalRouteNumber = postalRoute.getPostalRouteNumber(); assertEquals("prn", postalRouteNumber.getGrPostal().getCode()); assertEquals("postal route number", postalRouteNumber.getContent()); assertEquals("dlPostalCode", dependentLocality1.getPostalCode().getType()); assertEquals("localityPostalCode", locality.getPostalCode().getType()); } @Test public void localityWriteTest() throws IOException, XMLStreamException, ParserConfigurationException, SAXException, XalException{ final XalFactory xalFactory = DefaultXalFactory.getInstance(); final GenericTypedGrPostal localityAddressLine1 = xalFactory.createGenericTypedGrPostal(null, null, "locality address 1"); final GenericTypedGrPostal localityAddressLine2 = xalFactory.createGenericTypedGrPostal(null, null, "locality address 2"); final GenericTypedGrPostal localityName = xalFactory.createGenericTypedGrPostal("localityNameType", xalFactory.createGrPostal("localityNameCode"), "locality name"); final GenericTypedGrPostal largeMailUserAddresLine = xalFactory.createGenericTypedGrPostal(null, null, "lmu line 1"); final LargeMailUserName largeMailUserName = xalFactory.createLargeMailUserName(); largeMailUserName.setType("lmunType"); largeMailUserName.setCode("lmunCode"); largeMailUserName.setContent("large mail user name"); final LargeMailUserIdentifier largeMailUserIdentifier = xalFactory.createLargeMailUserIdentifier(); largeMailUserIdentifier.setType("lmuiType"); largeMailUserIdentifier.setIndicator("lmuiIndicator"); largeMailUserIdentifier.setGrPostal(xalFactory.createGrPostal("lmuiCode")); largeMailUserIdentifier.setContent("lmu identifier"); final BuildingName buildingName = xalFactory.createBuildingName(); buildingName.setType("BNType"); buildingName.setTypeOccurrence(AfterBeforeEnum.BEFORE); buildingName.setGrPostal(xalFactory.createGrPostal("BNCode")); buildingName.setContent("Building name content"); final Department department = xalFactory.createDepartment(); department.setType("largeMailUserDepartment"); final PostBoxNumber postBoxNumber = xalFactory.createPostBoxNumber(xalFactory.createGrPostal("lmu"), "post box number"); final PostBox postBox = xalFactory.createPostBox(); postBox.setPostBoxNumber(postBoxNumber); postBox.setType("largeMailUserPostBox"); final Thoroughfare largeMailUserThoroughfare = xalFactory.createThoroughfare(); largeMailUserThoroughfare.setType("largeMailUserThoroughfare"); final PostalCode largeMailUserPostalCode = xalFactory.createPostalCode(); largeMailUserPostalCode.setType("largeMailUserPostalCode"); final LargeMailUser largeMailUser = xalFactory.createLargeMailUser(); largeMailUser.setType("largeMailUserType"); largeMailUser.setAddressLines(Arrays.asList(largeMailUserAddresLine)); largeMailUser.setLargeMailUserNames(Arrays.asList(largeMailUserName)); largeMailUser.setLargeMailUserIdentifier(largeMailUserIdentifier); largeMailUser.setBuildingNames(Arrays.asList(buildingName)); largeMailUser.setDepartment(department); largeMailUser.setPostBox(postBox); largeMailUser.setThoroughfare(largeMailUserThoroughfare); largeMailUser.setPostalCode(largeMailUserPostalCode); final Thoroughfare localityThoroughfare = xalFactory.createThoroughfare(); localityThoroughfare.setType("localityThoroughfare"); final Premise localityPremise = xalFactory.createPremise(); localityPremise.setType("localityPremise"); final PostalRouteNumber dlPostalRouteNumber = xalFactory.createPostalRouteNumber(xalFactory.createGrPostal("prn"), "postal route number"); final PostalRoute dlPostalRoute = xalFactory.createPostalRoute(); dlPostalRoute.setPostalRouteNumber(dlPostalRouteNumber); dlPostalRoute.setType("subsubsubDL-postalRoute"); final DependentLocality subSubSubDl = xalFactory.createDependentLocality(); subSubSubDl.setType("subsubsubDL"); subSubSubDl.setPostalRoute(dlPostalRoute); final PostOffice dlPostOffice = xalFactory.createPostOffice(); dlPostOffice.setType("subsubDL-postOffice"); final DependentLocality subSubDl = xalFactory.createDependentLocality(); subSubDl.setType("subsubDL"); subSubDl.setPostOffice(dlPostOffice); subSubDl.setDependentLocality(subSubSubDl); final LargeMailUser dlLargeMailUser = xalFactory.createLargeMailUser(); dlLargeMailUser.setType("subDL-largeMailUser"); final DependentLocality subDl = xalFactory.createDependentLocality(); subDl.setType("subDL"); subDl.setLargeMailUser(dlLargeMailUser); subDl.setDependentLocality(subSubDl); final PostalCode dlPostalCode = xalFactory.createPostalCode(); dlPostalCode.setType("dlPostalCode"); final GenericTypedGrPostal dlAddressLine = xalFactory.createGenericTypedGrPostal(null, null, "dependent locality address"); final GenericTypedGrPostal dlName = xalFactory.createGenericTypedGrPostal("dlnType", xalFactory.createGrPostal("dlnCode"), "dependent locality name"); final DependentLocalityNumber dlNumber = xalFactory.createDependentLocalityNumber(AfterBeforeEnum.AFTER, xalFactory.createGrPostal("code"), "dependent locality number"); final PostBox postBox1 = xalFactory.createPostBox(); postBox1.setType("dlPostBox"); postBox1.setPostBoxNumber(xalFactory.createPostBoxNumber(xalFactory.createGrPostal("dl"), "postBoxNumber")); final Thoroughfare dlThoroughfare = xalFactory.createThoroughfare(); dlThoroughfare.setType("dlThoroughfare"); final Premise dlPremise = xalFactory.createPremise(); dlPremise.setType("DLPremise"); final DependentLocality dependentLocality = xalFactory.createDependentLocality(); dependentLocality.setType("dlType"); dependentLocality.setUsageType("dlUsageType"); dependentLocality.setIndicator("dlIndicator"); dependentLocality.setConnector("dlConnector"); dependentLocality.setAddressLines(Arrays.asList(dlAddressLine)); dependentLocality.setDependentLocalityNames(Arrays.asList(dlName)); dependentLocality.setDependentLocalityNumber(dlNumber); dependentLocality.setPostBox(postBox1); dependentLocality.setThoroughfare(dlThoroughfare); dependentLocality.setPremise(dlPremise); dependentLocality.setPostalCode(dlPostalCode); dependentLocality.setDependentLocality(subDl); final PostalCode postalCode = xalFactory.createPostalCode(); postalCode.setType("localityPostalCode"); final Locality locality = xalFactory.createLocality(); locality.setType("localityType"); locality.setUsageType("localityUsageType"); locality.setIndicator("localityIndicator"); locality.setPostalCode(postalCode); locality.setDependentLocality(dependentLocality); locality.setPremise(localityPremise); locality.setThoroughfare(localityThoroughfare); locality.setLargeMailUser(largeMailUser); locality.setLocalityNames(Arrays.asList(localityName)); locality.setAddressLines(Arrays.asList(localityAddressLine1, localityAddressLine2)); final AddressDetails addressDetails = xalFactory.createAddressDetails(); addressDetails.setLocality(locality); final Xal xal = xalFactory.createXal(Arrays.asList(addressDetails), null); final File temp = File.createTempFile("locality",".xml"); //temp.deleteOnExit(); final XalWriter writer = new XalWriter(); writer.setOutput(temp); writer.write(xal); writer.dispose(); DomCompare.compare( new File(pathToTestFile), temp); } }