package org.syzygy.gps;
import junit.framework.TestCase;
import org.syzygy.gps.mappers.OpenStreetMapper;
public class TestPanningZoomingMapper extends TestCase
{
private CoordinateMapper coords;
private PanningZoomingMapper panning;
private Location location;
private CoordinateMapper.Tile start;
protected void setUp()
{
coords = new OpenStreetMapper();
panning = new PanningZoomingMapper(coords, 12);
location = new Location();
location.setLatitude(53.267);
location.setLongitude(-6.25);
start = panning.fromLocation(location);
}
public void testNoPanningOrZooming()
{
assertEquals(start, coords.getTile(location.getLatitude(), location.getLongitude(), start.getZoom()));
}
public void testPanByNothing()
{
assertEquals(start, panning.pan(0, 0));
assertFalse(panning.isPanning());
}
public void testImplicitPanningAndUnpanning()
{
assertFalse(start.equals(panning.pan(1, 1)));
assertEquals(start, panning.pan(-1, -1));
assertFalse(panning.isPanning());
}
public void testPanningAndUnpanning()
{
assertFalse(start.equals(panning.pan(1, 1)));
assertEquals(start, panning.panOff());
assertFalse(panning.isPanning());
}
public void testPanningZoomingAndUnpanning()
{
assertFalse(start.equals(panning.pan(-1, 1)));
assertTrue(panning.isPanning());
assertFalse(start.equals(panning.zoomOut()));
assertFalse(start.equals(panning.zoomIn()));
assertEquals(start, panning.pan(1, -1));
assertFalse(panning.isPanning());
}
}