/*******************************************************************************
* Gisgraphy Project
*
* 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.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
*
* Copyright 2008 Gisgraphy project
* David Masclet <davidmasclet@gisgraphy.com>
*
*
*******************************************************************************/
package com.gisgraphy.importer;
import org.easymock.EasyMock;
import org.junit.Assert;
import org.junit.Test;
import com.gisgraphy.domain.geoloc.entity.City;
import com.gisgraphy.domain.repository.IGisFeatureDao;
import com.gisgraphy.helper.GeolocHelper;
/**
*
* @author <a href="mailto:david.masclet@gisgraphy.com">David Masclet</a>
*/
public class QuattroshapesSimpleImporterTest {
@Test
public void processData_GeonamesIdKO() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
String line = "wrongID\t ";
importer.processData(line);
}
@Test
public void processData_GeonamesIdok_featureFound_no_shape() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
IGisFeatureDao gisFeatureDao = EasyMock
.createMock(IGisFeatureDao.class);
String line = "5\t ";
City city = new City();
EasyMock.expect(gisFeatureDao.getByFeatureId(5L)).andReturn(city);
EasyMock.replay(gisFeatureDao);
importer.setGisFeatureDao(gisFeatureDao);
importer.processData(line);
Assert.assertNull(city.getShape());
EasyMock.verify(gisFeatureDao);
}
@Test
public void processData_GeonamesIdok_featureFound_shape() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
IGisFeatureDao gisFeatureDao = EasyMock
.createMock(IGisFeatureDao.class);
String line = "5\t010100000006C82291A0521E4054CC39B16BC64740";
City city = new City();
city.setFeatureId(1234L);
EasyMock.expect(gisFeatureDao.getByFeatureId(5L)).andReturn(city);
EasyMock.expect(gisFeatureDao.save(city)).andReturn(city);
EasyMock.replay(gisFeatureDao);
importer.setGisFeatureDao(gisFeatureDao);
importer.processData(line);
Assert.assertNotNull(city.getShape());
EasyMock.verify(gisFeatureDao);
}
@Test
public void processData_GeonamesId_multiple_okOK_featureFound_shape() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
IGisFeatureDao gisFeatureDao = EasyMock
.createMock(IGisFeatureDao.class);
String line = "6,5\t0106000020E610000001000000010300000001000000FF000"
+ "0001AC05B2041935CC0DBDC989EB0144140A375543541935CC06478EC6"
+ "7B11441400E12A27C41935CC0CDC64ACCB31441407F85CC9541935CC026D"
+ "E019EB414414073D712F241935CC0E94317D4B71441402063EE5A42935CC0"
+ "7077D66EBB144140A818E76F42935CC0B7239C16BC144140DE59BBED42935CC"
+ "0145CACA8C114414001309E4143935CC04DBED9E6C6144140C6FD47A643935C"
+ "C0B308C556D01441401958C7F143935CC0DF88EE59D71441406CB2463D44935"
+ "CC04CF8A57EDE14414048C2BE9D44935CC062B83A00E21441400C76C3B645935"
+ "CC0221ADD41EC144140658D7A8846935CC037A6272CF1144140BEA4315A47935CC"
+ "00586AC6EF514414093A9825149935CC07E6FD39FFD1441403387A4164A935CC"
+ "0FA28232E0015414062A3ACDF4C935CC07E8CB96B09154140494739984D935CC0B"
+ "8567BD80B154140D1AE42CA4F935CC067B5C01E13154140A110018750935CC0A17F"
+ "828B15154140263ACB2C42935CC05AF0A2AF201541406BF0BE2A17935CC055BE672"
+ "44215414089D2DEE00B935CC045D8F0F44A154140F01989D008935CC03DB324404D"
+ "1541407FC0030308935CC0E46723D74D1541405070B1A206935CC0EFE192E34E1541"
+ "40B6696CAF05935CC05A643BDF4F154140E607AEF204935CC0B37BF2B0501541408"
+ "2902C6002935CC0E197FA7953154140A0A9D72D02935CC034F279C5531541401E335"
+ "019FF925CC03DD00A0C591541401AF8510DFB925CC01CB3EC496015414069E388B5F8"
+ "925CC01A170E8464154140E3175E49F2925CC0A19BFD81721541405B7C0A80F1925CC"
+ "0C43D963E74154140588CBAD6DE925CC045D7851F9C1541401A87FA5DD8925CC05BE8"
+ "4A04AA154140A35698BED7925CC019C5724BAB1541401041D5E8D5925CC0C4CE143AAF"
+ "154140698CD651D5925CC05227A089B01541400D54C6BFCF925CC099F04BFDBC154140"
+ "50DF32A7CB925CC036B05582C5154140696FF085C9925CC0E0B9F770C915414078B988"
+ "EFC4925CC012F758FAD0154140FD4D2844C0925CC03E7782FDD715414083E2C798BB925"
+ "CC00BEF7211DF154140B4024356B7925CC0207BBDFBE3154140F04BFDBCA9925CC0601F"
+ "9DBAF2154140D44334BA83925CC075029A081B164140D122DBF97E925CC067B8019F1F"
+ "1641406AA4A5F276925CC0359886E123164140D105F52D73925CC0E7C6F484251641400"
+ "D6C956071925CC00A9DD7D8251641401FBAA0BE65925CC051499D80261641405F24B4E5"
+ "5C925CC098F56228271641406FBC3B3256925CC098F562282716414006F0164850925CC"
+ "098F562282716414040355EBA49925CC0BCCB457C27164140C4AF58C345925CC0C2887D"
+ "02281641402063EE5A42925CC0274EEE77281641402E90A0F831925CC067D5E76A2B1641"
+ "40202922C32A925CC05FB01BB62D1641404A24D1CB28925CC0CB32C4B12E164140878A71F"
+ "E26925CC0588B4F01301641404E2844C021925CC0276BD44334164140DC63E94317925CC0"
+ "E600C11C3D16414030F2B22616925CC06F9C14E63D164140EAAD81AD12925CC04A5E9D634"
+ "0164140605969520A925CC0EE42739D4616414080F44D9A06925CC052D4997B481641406FA"
+ "301BC05925CC0E71DA7E8481641403541D47D00925CC0DFF8DA334B1641400AD80E46EC915CC04"
+ "1EE224C5116414064CC5D4BC8915CC01878EE3D5C164140F71F990E9D915CC0B29B19FD681641"
+ "40FAB836548C915CC098A3C7EF6D164140E10B93A982915CC0D82AC1E270164140BA1457957D91"
+ "5CC08A592F86721641409D6340F67A915CC0F5DBD781731641401630815B77915CC0A60A462575"
+ "164140734BAB2171915CC02D3E05C078164140D3872EA86F915CC0BC96900F7A164140A46B26DF6"
+ "C915CC0FB1D8A027D164140E8F692C668915CC03480B74082164140CC457C2766915CC026361FD78"
+ "6164140B094658863915CC0A64412BD8C16414016F6B4C35F915CC0D881734694164140158BDF14"
+ "56915CC08731E9EFA51641405E68AED348915CC09E93DE37BE164140C1A8A44E40915CC0B43C0FE"
+ "ECE1641404CE0D6DD3C915CC0ED9E3C2CD41641405A2A6F4738915CC049D74CBED9164140083884"
+ "2A35915CC06688635DDC164140105D50DF32915CC0F4E0EEACDD16414001F6D1A92B915CC07B14AE4"
+ "7E1164140EC6987BF26915CC074EFE192E31641409014916115915CC0A52C431CEB164140170E84640"
+ "1915CC065C22FF5F3164140B4B0A71DFE905CC0F31ABB44F51641408DB96B09F9905CC0F31ABB44"
+ "F51641400CAB7823F3905CC0AC6EF59CF41641403ECBF3E0EE905CC01F166A4DF31641403485"
+ "CE6BEC905CC0B393C151F2164140306475ABE7905CC0BBB88D06F016414046D3D9C9E0905CC0"
+ "ECD808C4EB164140B0389CF9D5905CC0DE718A8EE41641404278B471C4905CC097A8DE1AD8164"
+ "1404F401361C3905CC08080B56AD71641405F0CE544BB905CC0179AEB34D21641402DCF83BBB"
+ "3905CC049BA66F2CD164140465F419AB1905CC0DE37BEF6CC1641400DFD135CAC905CC074B51"
+ "5FBCB1641402DB29DEFA7905CC02D095053CB16414046425BCEA5905CC02D095053CB16414038"
+ "DBDC989E905CC049BA66F2CD164140DFA63FFB91905CC010751F80D4164140C2F5285C8F905CC"
+ "0C2A38D23D6164140757286E28E905CC07406465ED6164140462234828D905CC0CD1DFD2FD7164"
+ "140CA1AF5108D905CC050FC1873D71641405F950B957F905CC0ECBB22F8DF164140D93EE42D579"
+ "05CC0F17EDC7EF916414040355EBA49905CC05EBA490C02174140252026E142905CC0CD91955F06"
+ "17414007B64AB038905CC0F35487DC0C174140D6E07D552E905CC03731242713174140BCCB457C2"
+ "7905CC06519E25817174140CC9717601F905CC08C101E6D1C174140B535221807905CC07269FCC2"
+ "2B174140957D5704FF8F5CC03A58FFE73017414039454772F98F5CC0C18BBE8234174140C05B2041"
+ "F18F5CC0419AB1683A174140F12DAC1BEF8F5CC0F3C81F0C3C1741409964E42CEC8F5CC0ECA353573E"
+ "174140C763062AE38F5CC0CF0F2384471741402A1F82AAD18F5CC0C66B5ED5591741404E5DF92CCF8F"
+ "5CC0B398D87C5C174140B84082E2C78F5CC0A3E6ABE463174140A6EF3504C78F5CC0CC79C6BE641741"
+ "408A3E1F65C48F5CC0B9A640666717414060AB048BC38F5CC0B3B5BE48681741409CF7FF71C28F5CC0"
+ "FF1EBC7669174140691EC022BF8F5CC086527B116D1741408D28ED0DBE8F5CC0A437DC476E1741405"
+ "2448655BC8F5CC008C90226701741404F232D95B78F5CC01D554D1075174140438F183DB78F5CC011"
+ "A7936C751741405227A089B08F5CC0963E74417D174140367689EAAD8F5CC01D7233DC8017414019C"
+ "5724BAB8F5CC0C87BD5CA8417414004392861A68F5CC01D8F19A88C1741405EB87361A48F5CC06F81"
+ "04C58F174140B5FCC0559E8F5CC076C3B645991741403A5D16139B8F5CC09DBAF2599E174140FB3DB"
+ "14E958F5CC0F199EC9FA7174140EB6E9EEA908F5CC08F8D40BCAE174140AFEB17EC868F5CC087855"
+ "AD3BC174140B610E4A0848F5CC0C70C54C6BF174140C878944A788F5CC026FE28EACC17414092CCE"
+ "A1D6E8F5CC08B14CAC2D71741408C0FB3976D8F5CC0205ED72FD81741403412A1116C8F5CC07F32C6"
+ "87D917414016139B8F6B8F5CC0E4F736FDD9174140B1169F02608F5CC08AC91B60E6174140D651D50"
+ "4518F5CC0F9BD4D7FF61741403A5B40683D8F5CC05F251FBB0B184140A5DAA7E3318F5CC047E6913F"
+ "18184140DACA4BFE278F5CC059A2B3CC2218414090DD054A0A8F5CC0C05AB56B42184140AD8BDB680"
+ "08F5CC0A3923A014D184140841266DAFE8E5CC0B4C9E1934E184140C1E09A3BFA8E5CC017F3734353"
+ "18414069E388B5F88E5CC0F8A57EDE54184140056C0723F68E5CC086CABF9657184140D905836BEE8"
+ "E5CC02E3883BF5F1841405E4C33DDEB8E5CC08CD8278062184140C9022670EB8E5CC0F19D98F56218"
+ "414007D15AD1E68E5CC065321CCF67184140BB9866BAD78E5CC09337C0CC771841404DDBBFB2D28E5"
+ "CC00D897B2C7D1841406D904946CE8E5CC0A036AAD381184140B56D1805C18E5CC027BB99D18F1841"
+ "40BDE0D39CBC8E5CC08AE42B819418414052448655BC8E5CC097C62FBC92184140116F9D7FBB8E5CC"
+ "02EE065868D184140A6D24F38BB8E5CC00C3ECDC98B184140ACC3D155BA8E5CC0D30FEA2285184140"
+ "9C8C2AC3B88E5CC074EACA677918414034F44F70B18E5CC04FE78A5242184140126C5CFFAE8E5CC08"
+ "80FECF82F18414083F92B64AE8E5CC08AABCABE2B18414090DB2F9FAC8E5CC002F390291F184140E92"
+ "63108AC8E5CC0D40AD3F71A18414031074147AB8E5CC054FCDF1115184140D923D40CA98E5CC045443"
+ "1790318414009C21550A88E5CC096B1A19BFD174140A4198BA6B38E5CC0755AB741ED17414009FB7612"
+ "118F5CC093E2E313B217414052F17F47548F5CC01C0A9FAD831741404EF04DD3678F5CC053CA6B25741"
+ "7414080643A747A8F5CC00551F7014817414090BE49D3A08F5CC0A245B6F3FD164140295DFA97A48F5CC0"
+ "F3E670ADF616414023D923D40C905CC06C5D6A847E16414099F5622827905CC02FA017EE5C1641409C16B"
+ "CE82B905CC05089EB185716414028D3687231905CC07172BF435116414084D72E6D38905CC08124ECDB49"
+ "164140A8E49CD843905CC02688BA0F401641400A2B155454905CC038D6C56D341641409852978C63905C"
+ "C07AA86DC32816414072FDBB3E73905CC0F644D7851F1641407655A01683905CC03B38D89B1816414096"
+ "7840D994905CC0C70BE9F010164140B79BE09BA6905CC0F60A0BEE07164140DD955D30B8905CC09C6ED9"
+ "21FE1541406E1283C0CA905CC052094FE8F5154140B6F81400E3905CC070D1C952EB15414025E659492B"
+ "915CC0103E9468C91541403012DA722E915CC004C4245CC815414096766A2E37915CC0D3D7F335CB154"
+ "1407CB4386398915CC0FD2FD7A2051641406A2FA2ED98915CC0508A56EE05164140C1AA7AF99D915CC0"
+ "01857AFA08164140CCF09F6EA0915CC05BD07B63081641405A0EF450DB915CC04AB0389CF91541409CB"
+ "E9EAF59925CC0E4F736FDD9154140A0DFF76F5E925CC07F66101FD815414092955F0663925CC08202EFE"
+ "4D3154140BCADF4DA6C925CC029029CDEC51541401BD6541685925CC0C37DE4D6A4154140D9CC21A98592"
+ "5CC03BE2900DA4154140A4DFBE0E9C925CC0809BC58B8515414020D3DA34B6925CC0DF4C4C1762154140A"
+ "5846055BD925CC07A36AB3E57154140973AC8EBC1925CC03EE76ED74B1541400A815CE2C8925CC0DB6CACC"
+ "43C15414002B9C49107935CC08731E9EFA5144140AE2D3C2F15935CC056EE056685144140BDC804FC1A935C"
+ "C0A46E675F791441407EC6850321935CC0EC3191D26C144140D6A9F23D23935CC061FA5E4370144140978DC"
+ "EF929935CC0624B8FA67A1441401361C3D32B935CC0315F5E807D144140D82E6D382C935CC0A78FC01F7E1"
+ "44140E7FD7F9C30935CC092205C01851441409EB5DB2E34935CC0BFD4CF9B8A144140302FC03E3A935CC09"
+ "5F6065F98144140882CD2C43B935CC00E48C2BE9"
+ "D144140CE8AA8893E935CC0C8EC2C7AA7144140EC89AE0B3F935CC08B868C47A91441401403249A40935CC047C7D5C8AE1441401AC05B2041935CC0DBDC989EB0144140";
City city = new City();
city.setFeatureId(1234L);
city.setLocation(GeolocHelper.createPoint(-114.27134D, 34.17446D));
City CityNotContainsInShape = new City();
CityNotContainsInShape.setFeatureId(1234L);
CityNotContainsInShape.setLocation(GeolocHelper.createPoint(20D, 3D));
EasyMock.expect(gisFeatureDao.getByFeatureId(5L)).andReturn(city);
EasyMock.expect(gisFeatureDao.getByFeatureId(6L)).andReturn(CityNotContainsInShape);
EasyMock.expect(gisFeatureDao.save(city)).andReturn(city);
EasyMock.replay(gisFeatureDao);
importer.setGisFeatureDao(gisFeatureDao);
importer.processData(line);
Assert.assertNotNull(city.getShape());
Assert.assertNull(CityNotContainsInShape.getShape());
EasyMock.verify(gisFeatureDao);
}
@Test
public void processData_GeonamesId_multiple_okOK_featureFound_shape_shape_already_found() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
IGisFeatureDao gisFeatureDao = EasyMock
.createMock(IGisFeatureDao.class);
String line = "6,5\t0106000020E610000001000000010300000001000000FF000"
+ "0001AC05B2041935CC0DBDC989EB0144140A375543541935CC06478EC6"
+ "7B11441400E12A27C41935CC0CDC64ACCB31441407F85CC9541935CC026D"
+ "E019EB414414073D712F241935CC0E94317D4B71441402063EE5A42935CC0"
+ "7077D66EBB144140A818E76F42935CC0B7239C16BC144140DE59BBED42935CC"
+ "0145CACA8C114414001309E4143935CC04DBED9E6C6144140C6FD47A643935C"
+ "C0B308C556D01441401958C7F143935CC0DF88EE59D71441406CB2463D44935"
+ "CC04CF8A57EDE14414048C2BE9D44935CC062B83A00E21441400C76C3B645935"
+ "CC0221ADD41EC144140658D7A8846935CC037A6272CF1144140BEA4315A47935CC"
+ "00586AC6EF514414093A9825149935CC07E6FD39FFD1441403387A4164A935CC"
+ "0FA28232E0015414062A3ACDF4C935CC07E8CB96B09154140494739984D935CC0B"
+ "8567BD80B154140D1AE42CA4F935CC067B5C01E13154140A110018750935CC0A17F"
+ "828B15154140263ACB2C42935CC05AF0A2AF201541406BF0BE2A17935CC055BE672"
+ "44215414089D2DEE00B935CC045D8F0F44A154140F01989D008935CC03DB324404D"
+ "1541407FC0030308935CC0E46723D74D1541405070B1A206935CC0EFE192E34E1541"
+ "40B6696CAF05935CC05A643BDF4F154140E607AEF204935CC0B37BF2B0501541408"
+ "2902C6002935CC0E197FA7953154140A0A9D72D02935CC034F279C5531541401E335"
+ "019FF925CC03DD00A0C591541401AF8510DFB925CC01CB3EC496015414069E388B5F8"
+ "925CC01A170E8464154140E3175E49F2925CC0A19BFD81721541405B7C0A80F1925CC"
+ "0C43D963E74154140588CBAD6DE925CC045D7851F9C1541401A87FA5DD8925CC05BE8"
+ "4A04AA154140A35698BED7925CC019C5724BAB1541401041D5E8D5925CC0C4CE143AAF"
+ "154140698CD651D5925CC05227A089B01541400D54C6BFCF925CC099F04BFDBC154140"
+ "50DF32A7CB925CC036B05582C5154140696FF085C9925CC0E0B9F770C915414078B988"
+ "EFC4925CC012F758FAD0154140FD4D2844C0925CC03E7782FDD715414083E2C798BB925"
+ "CC00BEF7211DF154140B4024356B7925CC0207BBDFBE3154140F04BFDBCA9925CC0601F"
+ "9DBAF2154140D44334BA83925CC075029A081B164140D122DBF97E925CC067B8019F1F"
+ "1641406AA4A5F276925CC0359886E123164140D105F52D73925CC0E7C6F484251641400"
+ "D6C956071925CC00A9DD7D8251641401FBAA0BE65925CC051499D80261641405F24B4E5"
+ "5C925CC098F56228271641406FBC3B3256925CC098F562282716414006F0164850925CC"
+ "098F562282716414040355EBA49925CC0BCCB457C27164140C4AF58C345925CC0C2887D"
+ "02281641402063EE5A42925CC0274EEE77281641402E90A0F831925CC067D5E76A2B1641"
+ "40202922C32A925CC05FB01BB62D1641404A24D1CB28925CC0CB32C4B12E164140878A71F"
+ "E26925CC0588B4F01301641404E2844C021925CC0276BD44334164140DC63E94317925CC0"
+ "E600C11C3D16414030F2B22616925CC06F9C14E63D164140EAAD81AD12925CC04A5E9D634"
+ "0164140605969520A925CC0EE42739D4616414080F44D9A06925CC052D4997B481641406FA"
+ "301BC05925CC0E71DA7E8481641403541D47D00925CC0DFF8DA334B1641400AD80E46EC915CC04"
+ "1EE224C5116414064CC5D4BC8915CC01878EE3D5C164140F71F990E9D915CC0B29B19FD681641"
+ "40FAB836548C915CC098A3C7EF6D164140E10B93A982915CC0D82AC1E270164140BA1457957D91"
+ "5CC08A592F86721641409D6340F67A915CC0F5DBD781731641401630815B77915CC0A60A462575"
+ "164140734BAB2171915CC02D3E05C078164140D3872EA86F915CC0BC96900F7A164140A46B26DF6"
+ "C915CC0FB1D8A027D164140E8F692C668915CC03480B74082164140CC457C2766915CC026361FD78"
+ "6164140B094658863915CC0A64412BD8C16414016F6B4C35F915CC0D881734694164140158BDF14"
+ "56915CC08731E9EFA51641405E68AED348915CC09E93DE37BE164140C1A8A44E40915CC0B43C0FE"
+ "ECE1641404CE0D6DD3C915CC0ED9E3C2CD41641405A2A6F4738915CC049D74CBED9164140083884"
+ "2A35915CC06688635DDC164140105D50DF32915CC0F4E0EEACDD16414001F6D1A92B915CC07B14AE4"
+ "7E1164140EC6987BF26915CC074EFE192E31641409014916115915CC0A52C431CEB164140170E84640"
+ "1915CC065C22FF5F3164140B4B0A71DFE905CC0F31ABB44F51641408DB96B09F9905CC0F31ABB44"
+ "F51641400CAB7823F3905CC0AC6EF59CF41641403ECBF3E0EE905CC01F166A4DF31641403485"
+ "CE6BEC905CC0B393C151F2164140306475ABE7905CC0BBB88D06F016414046D3D9C9E0905CC0"
+ "ECD808C4EB164140B0389CF9D5905CC0DE718A8EE41641404278B471C4905CC097A8DE1AD8164"
+ "1404F401361C3905CC08080B56AD71641405F0CE544BB905CC0179AEB34D21641402DCF83BBB"
+ "3905CC049BA66F2CD164140465F419AB1905CC0DE37BEF6CC1641400DFD135CAC905CC074B51"
+ "5FBCB1641402DB29DEFA7905CC02D095053CB16414046425BCEA5905CC02D095053CB16414038"
+ "DBDC989E905CC049BA66F2CD164140DFA63FFB91905CC010751F80D4164140C2F5285C8F905CC"
+ "0C2A38D23D6164140757286E28E905CC07406465ED6164140462234828D905CC0CD1DFD2FD7164"
+ "140CA1AF5108D905CC050FC1873D71641405F950B957F905CC0ECBB22F8DF164140D93EE42D579"
+ "05CC0F17EDC7EF916414040355EBA49905CC05EBA490C02174140252026E142905CC0CD91955F06"
+ "17414007B64AB038905CC0F35487DC0C174140D6E07D552E905CC03731242713174140BCCB457C2"
+ "7905CC06519E25817174140CC9717601F905CC08C101E6D1C174140B535221807905CC07269FCC2"
+ "2B174140957D5704FF8F5CC03A58FFE73017414039454772F98F5CC0C18BBE8234174140C05B2041"
+ "F18F5CC0419AB1683A174140F12DAC1BEF8F5CC0F3C81F0C3C1741409964E42CEC8F5CC0ECA353573E"
+ "174140C763062AE38F5CC0CF0F2384471741402A1F82AAD18F5CC0C66B5ED5591741404E5DF92CCF8F"
+ "5CC0B398D87C5C174140B84082E2C78F5CC0A3E6ABE463174140A6EF3504C78F5CC0CC79C6BE641741"
+ "408A3E1F65C48F5CC0B9A640666717414060AB048BC38F5CC0B3B5BE48681741409CF7FF71C28F5CC0"
+ "FF1EBC7669174140691EC022BF8F5CC086527B116D1741408D28ED0DBE8F5CC0A437DC476E1741405"
+ "2448655BC8F5CC008C90226701741404F232D95B78F5CC01D554D1075174140438F183DB78F5CC011"
+ "A7936C751741405227A089B08F5CC0963E74417D174140367689EAAD8F5CC01D7233DC8017414019C"
+ "5724BAB8F5CC0C87BD5CA8417414004392861A68F5CC01D8F19A88C1741405EB87361A48F5CC06F81"
+ "04C58F174140B5FCC0559E8F5CC076C3B645991741403A5D16139B8F5CC09DBAF2599E174140FB3DB"
+ "14E958F5CC0F199EC9FA7174140EB6E9EEA908F5CC08F8D40BCAE174140AFEB17EC868F5CC087855"
+ "AD3BC174140B610E4A0848F5CC0C70C54C6BF174140C878944A788F5CC026FE28EACC17414092CCE"
+ "A1D6E8F5CC08B14CAC2D71741408C0FB3976D8F5CC0205ED72FD81741403412A1116C8F5CC07F32C6"
+ "87D917414016139B8F6B8F5CC0E4F736FDD9174140B1169F02608F5CC08AC91B60E6174140D651D50"
+ "4518F5CC0F9BD4D7FF61741403A5B40683D8F5CC05F251FBB0B184140A5DAA7E3318F5CC047E6913F"
+ "18184140DACA4BFE278F5CC059A2B3CC2218414090DD054A0A8F5CC0C05AB56B42184140AD8BDB680"
+ "08F5CC0A3923A014D184140841266DAFE8E5CC0B4C9E1934E184140C1E09A3BFA8E5CC017F3734353"
+ "18414069E388B5F88E5CC0F8A57EDE54184140056C0723F68E5CC086CABF9657184140D905836BEE8"
+ "E5CC02E3883BF5F1841405E4C33DDEB8E5CC08CD8278062184140C9022670EB8E5CC0F19D98F56218"
+ "414007D15AD1E68E5CC065321CCF67184140BB9866BAD78E5CC09337C0CC771841404DDBBFB2D28E5"
+ "CC00D897B2C7D1841406D904946CE8E5CC0A036AAD381184140B56D1805C18E5CC027BB99D18F1841"
+ "40BDE0D39CBC8E5CC08AE42B819418414052448655BC8E5CC097C62FBC92184140116F9D7FBB8E5CC"
+ "02EE065868D184140A6D24F38BB8E5CC00C3ECDC98B184140ACC3D155BA8E5CC0D30FEA2285184140"
+ "9C8C2AC3B88E5CC074EACA677918414034F44F70B18E5CC04FE78A5242184140126C5CFFAE8E5CC08"
+ "80FECF82F18414083F92B64AE8E5CC08AABCABE2B18414090DB2F9FAC8E5CC002F390291F184140E92"
+ "63108AC8E5CC0D40AD3F71A18414031074147AB8E5CC054FCDF1115184140D923D40CA98E5CC045443"
+ "1790318414009C21550A88E5CC096B1A19BFD174140A4198BA6B38E5CC0755AB741ED17414009FB7612"
+ "118F5CC093E2E313B217414052F17F47548F5CC01C0A9FAD831741404EF04DD3678F5CC053CA6B25741"
+ "7414080643A747A8F5CC00551F7014817414090BE49D3A08F5CC0A245B6F3FD164140295DFA97A48F5CC0"
+ "F3E670ADF616414023D923D40C905CC06C5D6A847E16414099F5622827905CC02FA017EE5C1641409C16B"
+ "CE82B905CC05089EB185716414028D3687231905CC07172BF435116414084D72E6D38905CC08124ECDB49"
+ "164140A8E49CD843905CC02688BA0F401641400A2B155454905CC038D6C56D341641409852978C63905C"
+ "C07AA86DC32816414072FDBB3E73905CC0F644D7851F1641407655A01683905CC03B38D89B1816414096"
+ "7840D994905CC0C70BE9F010164140B79BE09BA6905CC0F60A0BEE07164140DD955D30B8905CC09C6ED9"
+ "21FE1541406E1283C0CA905CC052094FE8F5154140B6F81400E3905CC070D1C952EB15414025E659492B"
+ "915CC0103E9468C91541403012DA722E915CC004C4245CC815414096766A2E37915CC0D3D7F335CB154"
+ "1407CB4386398915CC0FD2FD7A2051641406A2FA2ED98915CC0508A56EE05164140C1AA7AF99D915CC0"
+ "01857AFA08164140CCF09F6EA0915CC05BD07B63081641405A0EF450DB915CC04AB0389CF91541409CB"
+ "E9EAF59925CC0E4F736FDD9154140A0DFF76F5E925CC07F66101FD815414092955F0663925CC08202EFE"
+ "4D3154140BCADF4DA6C925CC029029CDEC51541401BD6541685925CC0C37DE4D6A4154140D9CC21A98592"
+ "5CC03BE2900DA4154140A4DFBE0E9C925CC0809BC58B8515414020D3DA34B6925CC0DF4C4C1762154140A"
+ "5846055BD925CC07A36AB3E57154140973AC8EBC1925CC03EE76ED74B1541400A815CE2C8925CC0DB6CACC"
+ "43C15414002B9C49107935CC08731E9EFA5144140AE2D3C2F15935CC056EE056685144140BDC804FC1A935C"
+ "C0A46E675F791441407EC6850321935CC0EC3191D26C144140D6A9F23D23935CC061FA5E4370144140978DC"
+ "EF929935CC0624B8FA67A1441401361C3D32B935CC0315F5E807D144140D82E6D382C935CC0A78FC01F7E1"
+ "44140E7FD7F9C30935CC092205C01851441409EB5DB2E34935CC0BFD4CF9B8A144140302FC03E3A935CC09"
+ "5F6065F98144140882CD2C43B935CC00E48C2BE9"
+ "D144140CE8AA8893E935CC0C8EC2C7AA7144140EC89AE0B3F935CC08B868C47A91441401403249A40935CC047C7D5C8AE1441401AC05B2041935CC0DBDC989EB0144140";
City city = new City();
city.setFeatureId(1234L);
city.setLocation(GeolocHelper.createPoint(-114.27134D, 34.17446D));
city.setShape(GeolocHelper.createPolygonBox(-114.27134D, 34.17446D, 10));
City CityNotContainsInShape = new City();
CityNotContainsInShape.setFeatureId(1234L);
CityNotContainsInShape.setLocation(GeolocHelper.createPoint(20D, 3D));
EasyMock.expect(gisFeatureDao.getByFeatureId(5L)).andReturn(city);
EasyMock.expect(gisFeatureDao.getByFeatureId(6L)).andReturn(CityNotContainsInShape);
EasyMock.replay(gisFeatureDao);
importer.setGisFeatureDao(gisFeatureDao);
importer.processData(line);
Assert.assertNotNull(city.getShape());
Assert.assertNull(CityNotContainsInShape.getShape());
EasyMock.verify(gisFeatureDao);
}
@Test
public void processData_GeonamesId_multiple_okko_featureFound_shape() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
IGisFeatureDao gisFeatureDao = EasyMock
.createMock(IGisFeatureDao.class);
String line = "6,5\t0106000020E610000001000000010300000001000000FF000"
+ "0001AC05B2041935CC0DBDC989EB0144140A375543541935CC06478EC6"
+ "7B11441400E12A27C41935CC0CDC64ACCB31441407F85CC9541935CC026D"
+ "E019EB414414073D712F241935CC0E94317D4B71441402063EE5A42935CC0"
+ "7077D66EBB144140A818E76F42935CC0B7239C16BC144140DE59BBED42935CC"
+ "0145CACA8C114414001309E4143935CC04DBED9E6C6144140C6FD47A643935C"
+ "C0B308C556D01441401958C7F143935CC0DF88EE59D71441406CB2463D44935"
+ "CC04CF8A57EDE14414048C2BE9D44935CC062B83A00E21441400C76C3B645935"
+ "CC0221ADD41EC144140658D7A8846935CC037A6272CF1144140BEA4315A47935CC"
+ "00586AC6EF514414093A9825149935CC07E6FD39FFD1441403387A4164A935CC"
+ "0FA28232E0015414062A3ACDF4C935CC07E8CB96B09154140494739984D935CC0B"
+ "8567BD80B154140D1AE42CA4F935CC067B5C01E13154140A110018750935CC0A17F"
+ "828B15154140263ACB2C42935CC05AF0A2AF201541406BF0BE2A17935CC055BE672"
+ "44215414089D2DEE00B935CC045D8F0F44A154140F01989D008935CC03DB324404D"
+ "1541407FC0030308935CC0E46723D74D1541405070B1A206935CC0EFE192E34E1541"
+ "40B6696CAF05935CC05A643BDF4F154140E607AEF204935CC0B37BF2B0501541408"
+ "2902C6002935CC0E197FA7953154140A0A9D72D02935CC034F279C5531541401E335"
+ "019FF925CC03DD00A0C591541401AF8510DFB925CC01CB3EC496015414069E388B5F8"
+ "925CC01A170E8464154140E3175E49F2925CC0A19BFD81721541405B7C0A80F1925CC"
+ "0C43D963E74154140588CBAD6DE925CC045D7851F9C1541401A87FA5DD8925CC05BE8"
+ "4A04AA154140A35698BED7925CC019C5724BAB1541401041D5E8D5925CC0C4CE143AAF"
+ "154140698CD651D5925CC05227A089B01541400D54C6BFCF925CC099F04BFDBC154140"
+ "50DF32A7CB925CC036B05582C5154140696FF085C9925CC0E0B9F770C915414078B988"
+ "EFC4925CC012F758FAD0154140FD4D2844C0925CC03E7782FDD715414083E2C798BB925"
+ "CC00BEF7211DF154140B4024356B7925CC0207BBDFBE3154140F04BFDBCA9925CC0601F"
+ "9DBAF2154140D44334BA83925CC075029A081B164140D122DBF97E925CC067B8019F1F"
+ "1641406AA4A5F276925CC0359886E123164140D105F52D73925CC0E7C6F484251641400"
+ "D6C956071925CC00A9DD7D8251641401FBAA0BE65925CC051499D80261641405F24B4E5"
+ "5C925CC098F56228271641406FBC3B3256925CC098F562282716414006F0164850925CC"
+ "098F562282716414040355EBA49925CC0BCCB457C27164140C4AF58C345925CC0C2887D"
+ "02281641402063EE5A42925CC0274EEE77281641402E90A0F831925CC067D5E76A2B1641"
+ "40202922C32A925CC05FB01BB62D1641404A24D1CB28925CC0CB32C4B12E164140878A71F"
+ "E26925CC0588B4F01301641404E2844C021925CC0276BD44334164140DC63E94317925CC0"
+ "E600C11C3D16414030F2B22616925CC06F9C14E63D164140EAAD81AD12925CC04A5E9D634"
+ "0164140605969520A925CC0EE42739D4616414080F44D9A06925CC052D4997B481641406FA"
+ "301BC05925CC0E71DA7E8481641403541D47D00925CC0DFF8DA334B1641400AD80E46EC915CC04"
+ "1EE224C5116414064CC5D4BC8915CC01878EE3D5C164140F71F990E9D915CC0B29B19FD681641"
+ "40FAB836548C915CC098A3C7EF6D164140E10B93A982915CC0D82AC1E270164140BA1457957D91"
+ "5CC08A592F86721641409D6340F67A915CC0F5DBD781731641401630815B77915CC0A60A462575"
+ "164140734BAB2171915CC02D3E05C078164140D3872EA86F915CC0BC96900F7A164140A46B26DF6"
+ "C915CC0FB1D8A027D164140E8F692C668915CC03480B74082164140CC457C2766915CC026361FD78"
+ "6164140B094658863915CC0A64412BD8C16414016F6B4C35F915CC0D881734694164140158BDF14"
+ "56915CC08731E9EFA51641405E68AED348915CC09E93DE37BE164140C1A8A44E40915CC0B43C0FE"
+ "ECE1641404CE0D6DD3C915CC0ED9E3C2CD41641405A2A6F4738915CC049D74CBED9164140083884"
+ "2A35915CC06688635DDC164140105D50DF32915CC0F4E0EEACDD16414001F6D1A92B915CC07B14AE4"
+ "7E1164140EC6987BF26915CC074EFE192E31641409014916115915CC0A52C431CEB164140170E84640"
+ "1915CC065C22FF5F3164140B4B0A71DFE905CC0F31ABB44F51641408DB96B09F9905CC0F31ABB44"
+ "F51641400CAB7823F3905CC0AC6EF59CF41641403ECBF3E0EE905CC01F166A4DF31641403485"
+ "CE6BEC905CC0B393C151F2164140306475ABE7905CC0BBB88D06F016414046D3D9C9E0905CC0"
+ "ECD808C4EB164140B0389CF9D5905CC0DE718A8EE41641404278B471C4905CC097A8DE1AD8164"
+ "1404F401361C3905CC08080B56AD71641405F0CE544BB905CC0179AEB34D21641402DCF83BBB"
+ "3905CC049BA66F2CD164140465F419AB1905CC0DE37BEF6CC1641400DFD135CAC905CC074B51"
+ "5FBCB1641402DB29DEFA7905CC02D095053CB16414046425BCEA5905CC02D095053CB16414038"
+ "DBDC989E905CC049BA66F2CD164140DFA63FFB91905CC010751F80D4164140C2F5285C8F905CC"
+ "0C2A38D23D6164140757286E28E905CC07406465ED6164140462234828D905CC0CD1DFD2FD7164"
+ "140CA1AF5108D905CC050FC1873D71641405F950B957F905CC0ECBB22F8DF164140D93EE42D579"
+ "05CC0F17EDC7EF916414040355EBA49905CC05EBA490C02174140252026E142905CC0CD91955F06"
+ "17414007B64AB038905CC0F35487DC0C174140D6E07D552E905CC03731242713174140BCCB457C2"
+ "7905CC06519E25817174140CC9717601F905CC08C101E6D1C174140B535221807905CC07269FCC2"
+ "2B174140957D5704FF8F5CC03A58FFE73017414039454772F98F5CC0C18BBE8234174140C05B2041"
+ "F18F5CC0419AB1683A174140F12DAC1BEF8F5CC0F3C81F0C3C1741409964E42CEC8F5CC0ECA353573E"
+ "174140C763062AE38F5CC0CF0F2384471741402A1F82AAD18F5CC0C66B5ED5591741404E5DF92CCF8F"
+ "5CC0B398D87C5C174140B84082E2C78F5CC0A3E6ABE463174140A6EF3504C78F5CC0CC79C6BE641741"
+ "408A3E1F65C48F5CC0B9A640666717414060AB048BC38F5CC0B3B5BE48681741409CF7FF71C28F5CC0"
+ "FF1EBC7669174140691EC022BF8F5CC086527B116D1741408D28ED0DBE8F5CC0A437DC476E1741405"
+ "2448655BC8F5CC008C90226701741404F232D95B78F5CC01D554D1075174140438F183DB78F5CC011"
+ "A7936C751741405227A089B08F5CC0963E74417D174140367689EAAD8F5CC01D7233DC8017414019C"
+ "5724BAB8F5CC0C87BD5CA8417414004392861A68F5CC01D8F19A88C1741405EB87361A48F5CC06F81"
+ "04C58F174140B5FCC0559E8F5CC076C3B645991741403A5D16139B8F5CC09DBAF2599E174140FB3DB"
+ "14E958F5CC0F199EC9FA7174140EB6E9EEA908F5CC08F8D40BCAE174140AFEB17EC868F5CC087855"
+ "AD3BC174140B610E4A0848F5CC0C70C54C6BF174140C878944A788F5CC026FE28EACC17414092CCE"
+ "A1D6E8F5CC08B14CAC2D71741408C0FB3976D8F5CC0205ED72FD81741403412A1116C8F5CC07F32C6"
+ "87D917414016139B8F6B8F5CC0E4F736FDD9174140B1169F02608F5CC08AC91B60E6174140D651D50"
+ "4518F5CC0F9BD4D7FF61741403A5B40683D8F5CC05F251FBB0B184140A5DAA7E3318F5CC047E6913F"
+ "18184140DACA4BFE278F5CC059A2B3CC2218414090DD054A0A8F5CC0C05AB56B42184140AD8BDB680"
+ "08F5CC0A3923A014D184140841266DAFE8E5CC0B4C9E1934E184140C1E09A3BFA8E5CC017F3734353"
+ "18414069E388B5F88E5CC0F8A57EDE54184140056C0723F68E5CC086CABF9657184140D905836BEE8"
+ "E5CC02E3883BF5F1841405E4C33DDEB8E5CC08CD8278062184140C9022670EB8E5CC0F19D98F56218"
+ "414007D15AD1E68E5CC065321CCF67184140BB9866BAD78E5CC09337C0CC771841404DDBBFB2D28E5"
+ "CC00D897B2C7D1841406D904946CE8E5CC0A036AAD381184140B56D1805C18E5CC027BB99D18F1841"
+ "40BDE0D39CBC8E5CC08AE42B819418414052448655BC8E5CC097C62FBC92184140116F9D7FBB8E5CC"
+ "02EE065868D184140A6D24F38BB8E5CC00C3ECDC98B184140ACC3D155BA8E5CC0D30FEA2285184140"
+ "9C8C2AC3B88E5CC074EACA677918414034F44F70B18E5CC04FE78A5242184140126C5CFFAE8E5CC08"
+ "80FECF82F18414083F92B64AE8E5CC08AABCABE2B18414090DB2F9FAC8E5CC002F390291F184140E92"
+ "63108AC8E5CC0D40AD3F71A18414031074147AB8E5CC054FCDF1115184140D923D40CA98E5CC045443"
+ "1790318414009C21550A88E5CC096B1A19BFD174140A4198BA6B38E5CC0755AB741ED17414009FB7612"
+ "118F5CC093E2E313B217414052F17F47548F5CC01C0A9FAD831741404EF04DD3678F5CC053CA6B25741"
+ "7414080643A747A8F5CC00551F7014817414090BE49D3A08F5CC0A245B6F3FD164140295DFA97A48F5CC0"
+ "F3E670ADF616414023D923D40C905CC06C5D6A847E16414099F5622827905CC02FA017EE5C1641409C16B"
+ "CE82B905CC05089EB185716414028D3687231905CC07172BF435116414084D72E6D38905CC08124ECDB49"
+ "164140A8E49CD843905CC02688BA0F401641400A2B155454905CC038D6C56D341641409852978C63905C"
+ "C07AA86DC32816414072FDBB3E73905CC0F644D7851F1641407655A01683905CC03B38D89B1816414096"
+ "7840D994905CC0C70BE9F010164140B79BE09BA6905CC0F60A0BEE07164140DD955D30B8905CC09C6ED9"
+ "21FE1541406E1283C0CA905CC052094FE8F5154140B6F81400E3905CC070D1C952EB15414025E659492B"
+ "915CC0103E9468C91541403012DA722E915CC004C4245CC815414096766A2E37915CC0D3D7F335CB154"
+ "1407CB4386398915CC0FD2FD7A2051641406A2FA2ED98915CC0508A56EE05164140C1AA7AF99D915CC0"
+ "01857AFA08164140CCF09F6EA0915CC05BD07B63081641405A0EF450DB915CC04AB0389CF91541409CB"
+ "E9EAF59925CC0E4F736FDD9154140A0DFF76F5E925CC07F66101FD815414092955F0663925CC08202EFE"
+ "4D3154140BCADF4DA6C925CC029029CDEC51541401BD6541685925CC0C37DE4D6A4154140D9CC21A98592"
+ "5CC03BE2900DA4154140A4DFBE0E9C925CC0809BC58B8515414020D3DA34B6925CC0DF4C4C1762154140A"
+ "5846055BD925CC07A36AB3E57154140973AC8EBC1925CC03EE76ED74B1541400A815CE2C8925CC0DB6CACC"
+ "43C15414002B9C49107935CC08731E9EFA5144140AE2D3C2F15935CC056EE056685144140BDC804FC1A935C"
+ "C0A46E675F791441407EC6850321935CC0EC3191D26C144140D6A9F23D23935CC061FA5E4370144140978DC"
+ "EF929935CC0624B8FA67A1441401361C3D32B935CC0315F5E807D144140D82E6D382C935CC0A78FC01F7E1"
+ "44140E7FD7F9C30935CC092205C01851441409EB5DB2E34935CC0BFD4CF9B8A144140302FC03E3A935CC09"
+ "5F6065F98144140882CD2C43B935CC00E48C2BE9"
+ "D144140CE8AA8893E935CC0C8EC2C7AA7144140EC89AE0B3F935CC08B868C47A91441401403249A40935CC047C7D5C8AE1441401AC05B2041935CC0DBDC989EB0144140";
City city = new City();
city.setFeatureId(1234L);
city.setLocation(GeolocHelper.createPoint(-114.27134D, 34.17446D));
EasyMock.expect(gisFeatureDao.getByFeatureId(5L)).andReturn(city);
EasyMock.expect(gisFeatureDao.getByFeatureId(6L)).andReturn(null);
EasyMock.expect(gisFeatureDao.save(city)).andReturn(city);
EasyMock.replay(gisFeatureDao);
importer.setGisFeatureDao(gisFeatureDao);
importer.processData(line);
Assert.assertNotNull(city.getShape());
EasyMock.verify(gisFeatureDao);
}
@Test
public void processData_GeonamesIdok_NofeatureFound() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
IGisFeatureDao gisFeatureDao = EasyMock
.createMock(IGisFeatureDao.class);
String line = "5\t ";
City city = new City();
EasyMock.expect(gisFeatureDao.getByFeatureId(5L)).andReturn(null);
EasyMock.replay(gisFeatureDao);
importer.setGisFeatureDao(gisFeatureDao);
importer.processData(line);
Assert.assertNull(city.getShape());
EasyMock.verify(gisFeatureDao);
}
@Test
public void processData_GeonamesIdok_featureFound_wrong_shape() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
IGisFeatureDao gisFeatureDao = EasyMock
.createMock(IGisFeatureDao.class);
String line = "5\tfoo";
City city = new City();
EasyMock.expect(gisFeatureDao.getByFeatureId(5L)).andReturn(city);
EasyMock.replay(gisFeatureDao);
importer.setGisFeatureDao(gisFeatureDao);
importer.processData(line);
Assert.assertNull(city.getShape());
EasyMock.verify(gisFeatureDao);
}
@Test
public void shouldBeSkipped() {
QuattroshapesSimpleImporter importer = new QuattroshapesSimpleImporter();
ImporterConfig importerConfig = new ImporterConfig();
importerConfig.setGeonamesImporterEnabled(true);
importerConfig.setQuattroshapesImporterEnabled(true);
importer.setImporterConfig(importerConfig);
Assert.assertFalse(importer.shouldBeSkipped());
importerConfig = new ImporterConfig();
importerConfig.setGeonamesImporterEnabled(true);
importerConfig.setQuattroshapesImporterEnabled(false);
importer.setImporterConfig(importerConfig);
Assert.assertTrue(importer.shouldBeSkipped());
importerConfig = new ImporterConfig();
importerConfig.setGeonamesImporterEnabled(false);
importerConfig.setQuattroshapesImporterEnabled(true);
importer.setImporterConfig(importerConfig);
Assert.assertTrue(importer.shouldBeSkipped());
importerConfig = new ImporterConfig();
importerConfig.setGeonamesImporterEnabled(false);
importerConfig.setQuattroshapesImporterEnabled(false);
importer.setImporterConfig(importerConfig);
Assert.assertTrue(importer.shouldBeSkipped());
}
}