Subversion Repositories mkgmap

Rev

Rev 3408 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * Copyright (C) 2008 Steve Ratcliffe
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 *
 *  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.
 *
 *
 * Author: Steve Ratcliffe
 * Create date: 10-Jan-2009
 */

package func;

import java.io.File;
import java.io.FileNotFoundException;

import uk.me.parabola.imgfmt.app.lbl.LBLFileReader;
import uk.me.parabola.imgfmt.app.trergn.RGNFileReader;
import uk.me.parabola.imgfmt.app.trergn.TREFileReader;
import uk.me.parabola.imgfmt.app.trergn.TREHeader;
import uk.me.parabola.imgfmt.fs.FileSystem;
import uk.me.parabola.imgfmt.fs.ImgChannel;
import uk.me.parabola.imgfmt.sys.ImgFS;
import uk.me.parabola.mkgmap.main.Main;

import func.lib.Args;
import func.lib.TestUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import static org.junit.Assert.*;

/**
 * Creates a single img file and runs several tests on it to verify
 * the basic structure of it.
 *
 * @author Steve Ratcliffe
 */

public class StructureTest {
        private static FileSystem fs;

        private static LBLFileReader lblFile;
        private static TREFileReader treFile;
        private static RGNFileReader rgnFile;

        /** Just test is exists. */
        @Test
        public void testExists() {
                File f = new File(Args.DEF_MAP_FILENAME);
                assertTrue("file exists", f.exists());
        }

        @Test
        public void testTreHeader() {
                TREHeader header = (TREHeader) treFile.getHeader();
                assertEquals("header length", 188, header.getHeaderLength());
               
                assertEquals("display priority", 25, header.getDisplayPriority());
        }

        /**
         * Read in the file and open all the sections, leave references to them
         * in fields so that the other tests can check things.
         */

        @BeforeClass
        public static void init() throws FileNotFoundException {
                TestUtils.deleteOutputFiles();

                Main.mainNoSystemExit(new String[]{
                                Args.TEST_STYLE_ARG,
                                Args.TEST_RESOURCE_OSM + "uk-test-1.osm.gz"
                });

                fs = ImgFS.openFs(Args.DEF_MAP_FILENAME);
                ImgChannel tre = fs.open(Args.DEF_MAP_ID + ".TRE", "r");
                treFile = new TREFileReader(tre);

                ImgChannel lbl = fs.open(Args.DEF_MAP_ID + ".LBL", "r");
                lblFile = new LBLFileReader(lbl);

                ImgChannel rgn = fs.open(Args.DEF_MAP_ID + ".RGN", "r");
                rgnFile = new RGNFileReader(rgn);
        }

        /**
         * Close everything down.
         */

        @AfterClass
        public static void cleanup() {
                if (fs != null) {
                        fs.close();
                        treFile.close();
                        lblFile.close();
                        rgnFile.close();
                }
                TestUtils.deleteOutputFiles();
        }
}