package de.blau.android.resources; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import android.support.test.filters.LargeTest; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import android.view.View; import de.blau.android.Main; import de.blau.android.Map; import de.blau.android.prefs.Preferences; import de.blau.android.services.util.MapTile; /** * Note these tests are not mocked * @author simon * */ @RunWith(AndroidJUnit4.class) @LargeTest public class TileLayerServerTest { Main main = null; View v = null; @Rule public ActivityTestRule<Main> mActivityRule = new ActivityTestRule<>(Main.class); @Before public void setup() { main = mActivityRule.getActivity(); } @Test public void buildurl() { Map map = main.getMap(); MapTile mapTile = new MapTile("",20,1111,2222); Preferences prefs = new Preferences(main); prefs.setBackGroundLayer("BING"); main.getMap().setPrefs(main, prefs); TileLayerServer t = map.getOpenStreetMapTilesOverlay().getRendererInfo(); System.out.println(t.toString()); String s = t.getTileURLString(mapTile); // note this could fail if the metainfo cannot be retrieved System.out.println("Parameters replaced " + s); System.out.println("Quadkey " + t.quadTree(mapTile)); Assert.assertTrue(s.contains(t.quadTree(mapTile))); prefs.setBackGroundLayer(TileLayerServer.LAYER_MAPNIK); main.getMap().setPrefs(main, prefs); t = map.getOpenStreetMapTilesOverlay().getRendererInfo(); System.out.println(t.toString()); s = t.getTileURLString(mapTile); System.out.println("Parameters replaced " + s); Assert.assertTrue(s.contains("1111")); Assert.assertTrue(s.contains("2222")); Assert.assertTrue(s.contains("20")); } @Test public void sort() { ClassLoader loader = Thread.currentThread().getContextClassLoader(); InputStream is = loader.getResourceAsStream("imagery_test.json"); try { TileLayerServer.parseImageryFile(main, is, false); } catch (IOException e) { Assert.fail(e.getMessage()); } List<String> names = Arrays.asList(TileLayerServer.getNames(null, false)); int iA = names.indexOf("A imagery"); Assert.assertNotEquals(-1, iA); int iAnoDate = names.indexOf("A no date imagery"); Assert.assertNotEquals(-1, iAnoDate); int iB = names.indexOf("B imagery"); Assert.assertNotEquals(-1, iB); int iBnoDate = names.indexOf("B no date imagery"); Assert.assertNotEquals(-1, iBnoDate); int iC = names.indexOf("C imagery"); Assert.assertNotEquals(-1, iC); Assert.assertTrue(iAnoDate < iBnoDate); // alphabetic TileLayerServer a = TileLayerServer.get(main, "A", false); TileLayerServer b = TileLayerServer.get(main, "B", false); Assert.assertTrue(a.getEndDate() < b.getEndDate()); Assert.assertTrue(iA > iB); // date Assert.assertTrue(iA > iC && iB > iC); // preference } }