Package slash.common.io

Source Code of slash.common.io.FilesTest

/*
    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.common.io;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import slash.common.type.CompactCalendar;

import java.io.File;
import java.io.IOException;

import static java.io.File.createTempFile;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static slash.common.TestCase.calendar;
import static slash.common.io.Files.*;
import static slash.common.type.CompactCalendar.fromMillis;

public class FilesTest {
    private File file;

    @Before
    public void setUp() throws Exception {
        file = createTempFile("convert", ".tmp");
        File renamed = new File(file.getParentFile(), "convert.tmp");
        assertTrue(file.renameTo(renamed));
        file = renamed;
    }

    @After
    public void tearDown() throws Exception {
        assertTrue(file.delete());
    }

    @Test
    public void testNumberToString() throws IOException {
        assertEquals("5", numberToString(5, 9));
        assertEquals("05", numberToString(5, 10));
        assertEquals("005", numberToString(5, 100));
        assertEquals("0005", numberToString(5, 1000));
    }

    @Test
    public void testCalculateConvertFileName() throws IOException {
        int FILE_NAME_LENGTH = 18;

        assertEquals(new File(file.getParentFile(), "convert.itn").getAbsolutePath(),
                calculateConvertFileName(file, 0, 0, ".itn", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "convert1.itn").getAbsolutePath(),
                calculateConvertFileName(file, 1, 3, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert9.itn").getAbsolutePath(),
                calculateConvertFileName(file, 9, 9, ".itn", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "convert5.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5, 5, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert05.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5, 50, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert005.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5, 500, ".itn", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "convert10.bcr").getAbsolutePath(),
                calculateConvertFileName(file, 10, 10, ".bcr", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert99.bcr").getAbsolutePath(),
                calculateConvertFileName(file, 99, 99, ".bcr", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "convert50.itn").getAbsolutePath(),
                calculateConvertFileName(file, 50, 50, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert050.itn").getAbsolutePath(),
                calculateConvertFileName(file, 50, 500, ".itn", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "convert100.kml").getAbsolutePath(),
                calculateConvertFileName(file, 100, 100, ".kml", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert999.long").getAbsolutePath(),
                calculateConvertFileName(file, 999, 999, ".long", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "convert500.itn").getAbsolutePath(),
                calculateConvertFileName(file, 500, 500, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert500.itn").getAbsolutePath(),
                calculateConvertFileName(file, 500, 999, ".itn", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "convert5000.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5000, 5000, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "convert5000.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5000, 9999, ".itn", FILE_NAME_LENGTH));
    }

    @Test
    public void testCalculateConvertFileNameLimitedLength() throws IOException {
        int FILE_NAME_LENGTH = 4;

        assertEquals(new File(file.getParentFile(), "conv.itn").getAbsolutePath(),
                calculateConvertFileName(file, 0, 0, ".itn", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "con9.itn").getAbsolutePath(),
                calculateConvertFileName(file, 9, 9, ".itn", FILE_NAME_LENGTH));

        assertEquals(new File(file.getParentFile(), "con5.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5, 5, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "co05.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5, 50, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "c005.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5, 500, ".itn", FILE_NAME_LENGTH));
        assertEquals(new File(file.getParentFile(), "5000.itn").getAbsolutePath(),
                calculateConvertFileName(file, 5000, 5000, ".itn", FILE_NAME_LENGTH));
    }

    @Test
    public void testCalculateConvertFileNameMoreThanOneDot() throws IOException {
        File tempPath = createTempFile("test", "egal").getParentFile();
        assertEquals(new File(tempPath, "a.b.c.d.gpx").getAbsolutePath(),
                calculateConvertFileName(new File(tempPath, "a.b.c.d.e"), ".gpx", 255));
    }

    @Test
    public void testCalculateConvertFileNameThrowsException() throws IOException {
        try {
            calculateConvertFileName(file, 10000, 10000, "gpx", 64);
            assertTrue("IllegalArgumentException expected", false);
        } catch (IllegalArgumentException e) {
            // intentionally left empty
        }

        try {
            calculateConvertFileName(file, 5000, 10000, "gpx", 64);
            assertTrue("IllegalArgumentException expected", false);
        } catch (IllegalArgumentException e) {
            // intentionally left empty
        }

        try {
            calculateConvertFileName(file, 1001, 999, "gpx", 64);
            assertTrue("IllegalArgumentException expected", false);
        } catch (IllegalArgumentException e) {
            // intentionally left empty
        }
    }

    @Test
    public void testCreateGoPalFileName() {
        assertEquals("EIFELSTERN AACHEN", createGoPalFileName("Eifelstern-Aachen"));
        assertEquals("EIFELSTERN.XML", createGoPalFileName("Eifelstern.xml"));
    }

    @Test
    public void testShortenPath() {
        assertEquals("C:\\Documents and Settings\\RouteConverter...\\ShortenPath.java",
                shortenPath("C:\\Documents and Settings\\RouteConverter\\My Documents\\RouteConverter\\Sources\\Tests\\ShortenPath.java", 60));
        assertEquals("C:\\Documents and Settings\\RouteConverter\\...\\ShortenPath.java",
                shortenPath("C:\\Documents and Settings\\RouteConverter\\My Documents\\RouteConverter\\Sources\\Tests\\ShortenPath.java", 61));
        assertEquals("\\\\RouteConverter\\RouteConverter\\My Docum...\\ShortenPath.java",
                shortenPath("\\\\RouteConverter\\RouteConverter\\My Documents\\RouteConverter\\Sources\\Tests\\ShortenPath.java", 60));
        assertEquals("/home/routeconverter/RouteConverter/sour.../ShortenPath.java",
                shortenPath("/home/routeconverter/RouteConverter/sources/tests/ShortenPath.java", 60));
        assertEquals(60, shortenPath("/home/routeconverter/RouteConverter/sources/tests/ShortenPath.java", 60).length());
        assertEquals("...l=54.105307,13.490181&sspn=0.132448,0.318604&ie=UTF8&z=12",
                shortenPath("http://maps.google.de/maps?f=d&hl=de&geocode=14250095960720490931,54.083160,13.475246%3B13832872253745319564,54.096925,13.383573%3B4731465831403354564,54.114440,13.528310&saddr=54.096925,+13.383573&daddr=54.08316,13.475246+to:54.114440,+13.528310&mra=ps&mrcr=0,1&sll=54.105307,13.490181&sspn=0.132448,0.318604&ie=UTF8&z=12", 60));
    }

    @Test
    public void testLastPathFragment() {
        assertEquals("file.gpx", lastPathFragment("file.gpx", 60));
        assertEquals("file.gpx", lastPathFragment("../file.gpx", 60));
        assertEquals("file.gpx", lastPathFragment("c:\\bla\\bla\\file.gpx", 60));
        assertEquals("file.gpx", lastPathFragment("c:/bla/bla/file.gpx", 60));
        assertEquals("file.gpx", lastPathFragment("file:///c:/bla/bla/file.gpx", 60));
        assertEquals("file.gpx", lastPathFragment("http://www.blabla.com/bla/bla/file.gpx", 60));
        assertEquals("...file.gpx", lastPathFragment("superlongfilenameforfile.gpx", 11));
        assertEquals(11, lastPathFragment("superlongfilenameforfile.gpx", 11).length());
        assertEquals("...l=54.105307,13.490181&sspn=0.132448,0.318604&ie=UTF8&z=12",
                lastPathFragment("http://maps.google.de/maps?f=d&hl=de&geocode=14250095960720490931,54.0831601,13.475246%3B13832872253745319564,54.096925,13.383573%3B4731465831403354564,54.114440,13.528310&saddr=54.096925,+13.383573&daddr=54.08316,13.475246+to:54.114440,+13.528310&mra=ps&mrcr=0,1&sll=54.105307,13.490181&sspn=0.132448,0.318604&ie=UTF8&z=12", 60));
    }

    @Test
    public void testLastModified() throws IOException {
        CompactCalendar actual = getLastModified(file);
        assertEquals("UTC", actual.getTimeZoneId());
        assertEquals(fromMillis(file.lastModified()), actual);

        setLastModified(file, calendar(2010, 4, 12, 14, 41, 15, 0, "GMT+1"));
        CompactCalendar expected = calendar(2010, 4, 12, 13, 41, 15, 0, "UTC");
        assertEquals(expected, getLastModified(file));
        assertEquals(expected.getTimeInMillis(), file.lastModified());
    }
}
TOP

Related Classes of slash.common.io.FilesTest

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.