Package slash.navigation.base

Source Code of slash.navigation.base.StartDateIT

/*
    This file is part of RouteConverter.

    RouteConverter is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    RouteConverter 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.

    You should have received a copy of the GNU General Public License
    along with RouteConverter; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

    Copyright (C) 2007 Christian Pesch. All Rights Reserved.
*/

package slash.navigation.base;

import org.junit.Test;
import slash.common.type.CompactCalendar;
import slash.navigation.common.NavigationPosition;
import slash.navigation.gopal.GoPalTrackFormat;
import slash.navigation.itn.TomTom5RouteFormat;
import slash.navigation.itn.TomTomRoute;
import slash.navigation.nmea.NmeaFormat;
import slash.navigation.nmea.NmeaRoute;

import java.io.File;
import java.io.FileInputStream;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.List;

import static java.util.Calendar.DAY_OF_MONTH;
import static java.util.Calendar.JANUARY;
import static java.util.Calendar.JULY;
import static java.util.Calendar.MONTH;
import static java.util.Calendar.YEAR;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static slash.common.TestCase.calendar;
import static slash.common.type.CompactCalendar.fromCalendar;
import static slash.navigation.base.NavigationTestCase.SAMPLE_PATH;
import static slash.navigation.base.NavigationTestCase.readSampleGopalTrackFile;
import static slash.navigation.base.NavigationTestCase.readSampleNmeaFile;
import static slash.navigation.base.NavigationTestCase.readSampleTomTomRouteFile;

public class StartDateIT {

    private void checkPosition(NavigationPosition position, CompactCalendar expectedDate) {
        CompactCalendar actual = position.getTime();
        DateFormat format = DateFormat.getDateTimeInstance();
        format.setTimeZone(CompactCalendar.UTC);
        String cal1 = format.format(actual.getTime());
        String cal2 = format.format(expectedDate.getTime());
        assertEquals(cal2, cal1);
        assertEquals(expectedDate.getTimeInMillis(), actual.getTimeInMillis());
        assertEquals(expectedDate.getTime(), actual.getTime());
    }

    private void checkPositions(List<? extends BaseRoute> routes) {
        Calendar expectedDate = Calendar.getInstance();
        expectedDate.set(2007, JULY, 21);
        checkPositionsWithDate(routes, expectedDate);
    }

    @SuppressWarnings({"unchecked"})
    private void checkPositionsWithDate(List<? extends BaseRoute> routes, Calendar expectedDate) {
        int year = expectedDate.get(YEAR);
        int month = expectedDate.get(MONTH) + 1;
        int day = expectedDate.get(DAY_OF_MONTH);

        assertNotNull(routes);
        assertEquals(1, routes.size());
        BaseRoute<BaseNavigationPosition, BaseNavigationFormat> route = routes.get(0);
        assertEquals(3, route.getPositionCount());
        NavigationPosition position1 = route.getPositions().get(0);
        checkPosition(position1, calendar(year, month, day, 18, 51, 36));
        NavigationPosition position2 = route.getPositions().get(1);
        checkPosition(position2, calendar(year, month, day, 18, 51, 45));
        NavigationPosition position3 = route.getPositions().get(2);
        checkPosition(position3, calendar(year, month, day, 18, 51, 59));
    }

    @Test
    public void testFileStartDateForTomTomRouteWithDate() throws Exception {
        List<TomTomRoute> routes = readSampleTomTomRouteFile("startdate-with-date.itn", true);
        checkPositions(routes);
    }

    @Test
    public void testCurrentStartDateForTomTomRouteWithDate() throws Exception {
        FileInputStream source = new FileInputStream(new File(SAMPLE_PATH + "startdate-with-date.itn"));
        Calendar startDate = Calendar.getInstance();
        ParserContext<TomTomRoute> context = new ParserContextImpl<TomTomRoute>();
        new TomTom5RouteFormat().read(source, fromCalendar(startDate), context);
        checkPositions(context.getRoutes());
    }

    @Test
    public void testNullStartDateForTomTomRouteWithDate() throws Exception {
        List<TomTomRoute> routes = readSampleTomTomRouteFile("startdate-with-date.itn", false);
        checkPositions(routes);
    }

    @Test
    public void testFileStartDateForTomTomRouteWithoutDate() throws Exception {
        File source = new File(SAMPLE_PATH + "startdate-without-date.itn");
        Calendar startDate = Calendar.getInstance();
        startDate.setTimeInMillis(source.lastModified());
        ParserContext<TomTomRoute> context = new ParserContextImpl<TomTomRoute>();
        new TomTom5RouteFormat().read(new FileInputStream(source), fromCalendar(startDate), context);
        List<TomTomRoute> routes = context.getRoutes();
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testCurrentStartDateForTomTomRouteWithoutDate() throws Exception {
        FileInputStream source = new FileInputStream(new File(SAMPLE_PATH + "startdate-without-date.itn"));
        Calendar startDate = Calendar.getInstance();
        ParserContext<TomTomRoute> context = new ParserContextImpl<TomTomRoute>();
        new TomTom5RouteFormat().read(source, fromCalendar(startDate), context);
        List<TomTomRoute> routes = context.getRoutes();
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testNullStartDateForTomTomRouteWithoutDate() throws Exception {
        List<TomTomRoute> routes = readSampleTomTomRouteFile("startdate-without-date.itn", false);
        Calendar startDate = Calendar.getInstance();
        startDate.set(1970, JANUARY, 1);
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testFileStartDateForNmeaWithDate() throws Exception {
        List<NmeaRoute> routes = readSampleNmeaFile("startdate-with-date.nmea", true);
        checkPositions(routes);
    }

    @Test
    public void testCurrentStartDateForNmeaWithDate() throws Exception {
        FileInputStream source = new FileInputStream(new File(SAMPLE_PATH + "startdate-with-date.nmea"));
        Calendar startDate = Calendar.getInstance();
        ParserContext<NmeaRoute> context = new ParserContextImpl<NmeaRoute>();
        new NmeaFormat().read(source, fromCalendar(startDate), context);
        List<NmeaRoute> routes = context.getRoutes();
        checkPositions(routes);
    }

    @Test
    public void testNullStartDateForNmeaWithDate() throws Exception {
        List<NmeaRoute> routes = readSampleNmeaFile("startdate-with-date.nmea", false);
        checkPositions(routes);
    }

    @Test
    public void testFileStartDateForNmeaWithoutDate() throws Exception {
        File source = new File(SAMPLE_PATH + "startdate-without-date.nmea");
        Calendar startDate = Calendar.getInstance();
        startDate.setTimeInMillis(source.lastModified());
        ParserContext<NmeaRoute> context = new ParserContextImpl<NmeaRoute>();
        new NmeaFormat().read(new FileInputStream(source), fromCalendar(startDate), context);
        List<NmeaRoute> routes = context.getRoutes();
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testCurrentStartDateForNmeaWithoutDate() throws Exception {
        FileInputStream source = new FileInputStream(new File(SAMPLE_PATH + "startdate-without-date.nmea"));
        Calendar startDate = Calendar.getInstance();
        ParserContext<NmeaRoute> context = new ParserContextImpl<NmeaRoute>();
        new NmeaFormat().read(source, fromCalendar(startDate), context);
        List<NmeaRoute> routes = context.getRoutes();
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testNullStartDateForNmeaWithoutDate() throws Exception {
        List<NmeaRoute> routes = readSampleNmeaFile("startdate-without-date.nmea", false);
        Calendar startDate = Calendar.getInstance();
        startDate.set(1970, JANUARY, 1);
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testFileStartDateForGopalTrackWithoutDate() throws Exception {
        File source = new File(SAMPLE_PATH + "startdate-without-date.trk");
        Calendar startDate = Calendar.getInstance();
        startDate.setTimeInMillis(source.lastModified());
        ParserContext<SimpleRoute> context = new ParserContextImpl<SimpleRoute>();
        new GoPalTrackFormat().read(new FileInputStream(source), fromCalendar(startDate), context);
        List<SimpleRoute> routes = context.getRoutes();
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testCurrentStartDateForGopalTrackWithoutDate() throws Exception {
        FileInputStream source = new FileInputStream(new File(SAMPLE_PATH + "startdate-without-date.trk"));
        Calendar startDate = Calendar.getInstance();
        ParserContext<SimpleRoute> context = new ParserContextImpl<SimpleRoute>();
        new GoPalTrackFormat().read(source, fromCalendar(startDate), context);
        List<SimpleRoute> routes = context.getRoutes();
        checkPositionsWithDate(routes, startDate);
    }

    @Test
    public void testNullStartDateForGopalTrackWithoutDate() throws Exception {
        List<SimpleRoute> routes = readSampleGopalTrackFile("startdate-without-date.trk", false);
        Calendar startDate = Calendar.getInstance();
        startDate.set(1970, JANUARY, 1);
        checkPositionsWithDate(routes, startDate);
    }
}
TOP

Related Classes of slash.navigation.base.StartDateIT

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.