/******************************************************************************* * 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()); } }