/* * Copyright 2010, 2011, 2012 mapsforge.org * * This program 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 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package org.mapsforge.map.writer; import java.nio.ByteBuffer; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.mapsforge.map.writer.model.MapWriterConfiguration; import org.mapsforge.map.writer.model.TileBasedDataProcessor; public class MapFileWriterTest { private MapWriterConfiguration configuration; private TileBasedDataProcessor dataProcessor; @Before public void setUp() { this.configuration = new MapWriterConfiguration(); // this.configuration.addOutputFile(getStringArgument(taskConfig, PARAM_OUTFILE, // Constants.DEFAULT_PARAM_OUTFILE)); this.configuration.setWriterVersion("test"); this.configuration.loadTagMappingFile("src/test/resources/tag-mapping.xml"); this.configuration.addMapStartPosition("52.455882,13.297244"); this.configuration.addMapStartZoom("14"); this.configuration.addBboxConfiguration("52,13,53,14"); this.configuration.addZoomIntervalConfiguration("5,0,7,10,8,11,14,12,18"); this.configuration.setComment("i love mapsforge"); this.configuration.setDebugStrings(false); this.configuration.setPolygonClipping(true); this.configuration.setWayClipping(true); this.configuration.setSimplification(0.00001); this.configuration.setDataProcessorType("ram"); this.configuration.setBboxEnlargement(10); this.configuration.setPreferredLanguage("de"); this.configuration.addEncodingChoice("auto"); this.configuration.validate(); this.dataProcessor = RAMTileBasedDataProcessor.newInstance(this.configuration); } @Test public void testWriteHeaderBuffer() { ByteBuffer headerBuffer = ByteBuffer.allocate(MapFileWriter.HEADER_BUFFER_SIZE); int headerLength = MapFileWriter.writeHeaderBuffer(this.configuration, this.dataProcessor, headerBuffer); // expected header length // 20 + 4 + 4 + 8 + 8 + 16 + 2 // + 9 ("Mercator") // + 1 + 8 + 1 // + 3 ("de") // + 17 ("i love mapsforge") // + 5("test") // + 2 + 19 ("amenity=university") // + 2 + 14 + 18 ("natural=beach", natural=coastline") // + 1 // + 3 * (3 + 8 + 8) // == 219 Assert.assertEquals(219, headerLength); } // @Test // public void testProcessPOI() { // fail("Not yet implemented"); // } // // @Test // public void testProcessWay() { // fail("Not yet implemented"); // } // // @Test // public void testWriteWayNodes() { // fail("Not yet implemented"); // } // // @Test // public void testInfoBytePoiLayerAndTagAmount() { // fail("Not yet implemented"); // } // // @Test // public void testInfoByteWayLayerAndTagAmount() { // fail("Not yet implemented"); // } // // @Test // public void testInfoByteOptmizationParams() { // fail("Not yet implemented"); // } // // @Test // public void testInfoBytePOIFeatures() { // fail("Not yet implemented"); // } // // @Test // public void testInfoByteWayFeatures() { // fail("Not yet implemented"); // } }