/*
* 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: 30-Nov-2008
*/
package uk.me.parabola.mkgmap.osmstyle;
import java.io.FileNotFoundException;
import java.io.OutputStreamWriter;
import uk.me.parabola.mkgmap.reader.osm.Style;
import uk.me.parabola.mkgmap.reader.osm.StyleInfo;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Tests for reading in a complete style.
*/
public class StyleImplTest {
private static final String STYLE_LOC = "classpath:teststyles";
@Test
public void testGetInfo() throws FileNotFoundException {
StyleImpl style = new StyleImpl(STYLE_LOC, "simple");
printStyle(style);
StyleInfo info = style.getInfo();
assertEquals("version", "2.2", info.getVersion());
assertEquals("version", "A simple test style with just one example of most things", info.getSummary());
assertEquals("version", "This style is used for testing.", info.getLongDescription());
}
@Test
public void testGetOption() throws FileNotFoundException {
StyleImpl style = new StyleImpl(STYLE_LOC, "simple");
String val = style.getOption("levels");
assertEquals("option levels", "0:24\n1:20", val);
}
@Test
public void testEmptyFiles() throws FileNotFoundException {
StyleImpl style = new StyleImpl(STYLE_LOC, "empty");
assertNotNull("read style ok", style);
}
/**
* The case when a style name does not exist. This has always worked in
* the way you would expect - there is an error if it does not exist.
* @throws FileNotFoundException This should be thrown.
*/
@Test(expected = FileNotFoundException.class)
public void testBadStyleName() throws FileNotFoundException {
Style style = new StyleImpl(STYLE_LOC, "no-such-style");
if (style != null) style= null; // pseudo use the value to calm down FindBugs
}
/**
* This tests the case when a style-file is given but does not exist.
* This has always worked as expected, ie given an error.
* @throws FileNotFoundException This should be thrown by the test as the
* style does not exist.
*/
@Test(expected = FileNotFoundException.class)
public void testBadStyleFileOnClasspath() throws FileNotFoundException {
Style style = new StyleImpl("classpath:no-such-place", "default");
if (style != null) style= null; // pseudo use the value to calm down FindBugs
}
/**
* Test the case where a style file location is given that does not exist.
* Previously it used to default to classpath:styles if it did not exist
* which was confusing.
* @throws FileNotFoundException Should be thrown as the style-file
* location does not exist.
*/
@Test(expected = FileNotFoundException.class)
public void testBadStyleFileOnFilesystem() throws FileNotFoundException {
Style style = new StyleImpl("/no-such-place/hopefully", "default");
if (style != null) style= null; // pseudo use the value to calm down FindBugs
}
private void printStyle(StyleImpl in) {
in.dumpToFile(new OutputStreamWriter(System.out));
}
}