Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryLayerTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryLayerTest.java	(revision 31797)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryLayerTest.java	(revision 31797)
@@ -0,0 +1,28 @@
+package org.openstreetmap.josm.plugins.mapillary;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import org.junit.Test;
+import org.openstreetmap.josm.data.imagery.ImageryInfo;
+import org.openstreetmap.josm.gui.layer.ImageryLayer;
+import org.openstreetmap.josm.gui.layer.Layer;
+
+public class MapillaryLayerTest extends AbstractTest {
+  private Layer dummyLayer = ImageryLayer.create(new ImageryInfo());
+
+  @Test
+  public void testGetIcon() {
+    assertEquals(MapillaryPlugin.ICON16, MapillaryLayer.getInstance().getIcon());
+  }
+
+  @Test
+  public void testIsMergable() {
+    assertFalse(MapillaryLayer.getInstance().isMergable(dummyLayer));
+  }
+
+  @Test(expected=UnsupportedOperationException.class)
+  public void testMergeFrom() {
+    MapillaryLayer.getInstance().mergeFrom(dummyLayer);
+  }
+}
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/cache/MapillaryCacheTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/cache/MapillaryCacheTest.java	(revision 31797)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/cache/MapillaryCacheTest.java	(revision 31797)
@@ -0,0 +1,30 @@
+package org.openstreetmap.josm.plugins.mapillary.cache;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+
+import org.junit.Test;
+import org.openstreetmap.josm.plugins.mapillary.AbstractTest;
+import org.openstreetmap.josm.plugins.mapillary.cache.MapillaryCache.Type;
+
+public class MapillaryCacheTest extends AbstractTest {
+
+  @Test
+  public void test() {
+    MapillaryCache cache = new MapillaryCache("00000", Type.FULL_IMAGE);
+    assertNotEquals(null, cache.getUrl());
+    assertNotEquals(null, cache.getCacheKey());
+
+    assertFalse(cache.isObjectLoadable());
+
+    cache = new MapillaryCache("00000", Type.THUMBNAIL);
+    assertNotEquals(null, cache.getCacheKey());
+    assertNotEquals(null, cache.getUrl());
+
+    cache = new MapillaryCache(null, null);
+    assertEquals(null, cache.getCacheKey());
+    assertEquals(null, cache.getUrl());
+  }
+
+}
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySequenceDownloadThreadTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySequenceDownloadThreadTest.java	(revision 31795)
+++ 	(revision )
@@ -1,71 +1,0 @@
-/**
- *
- */
-package org.openstreetmap.josm.plugins.mapillary.downloads;
-
-import static org.junit.Assert.assertTrue;
-
-import java.util.Locale;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import org.junit.Test;
-import org.openstreetmap.josm.data.Bounds;
-import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.plugins.mapillary.AbstractTest;
-import org.openstreetmap.josm.plugins.mapillary.MapillaryLayer;
-import org.openstreetmap.josm.plugins.mapillary.io.download.MapillaryDownloader;
-import org.openstreetmap.josm.plugins.mapillary.io.download.MapillarySequenceDownloadThread;
-
-/**
- *
- */
-public class MapillarySequenceDownloadThreadTest extends AbstractTest {
-
-  /**
-   * Test method for
-   * {@link org.openstreetmap.josm.plugins.mapillary.io.download.MapillarySequenceDownloadThread#run()}
-   * .
-   *
-   * This downloads a small area of mapillary-sequences where we know that
-   * images already exist. When the download-thread finishes, we check if the
-   * Mapillary-layer now contains one or more images.
-   *
-   * @throws InterruptedException
-   */
-  @Test
-  public void testRun() throws InterruptedException {
-    System.out.println("[JUnit] MapillarySequenceDownloadThreadTest.testRun()");
-    // Area around image UjEbeXZYIoyAKOsE-remlg (59.32125452° N 18.06166856° E)
-    LatLon minLatLon = new LatLon(59.3212545, 18.0616685);
-    LatLon maxLatLon = new LatLon(59.3212546, 18.0616686);
-
-    ExecutorService ex = Executors.newSingleThreadExecutor();
-    String queryString = String
-        .format(
-            Locale.UK,
-            "?max_lat=%.8f&max_lon=%.8f&min_lat=%.8f&min_lon=%.8f&limit=10&client_id=%s",
-            maxLatLon.lat(), maxLatLon.lon(), minLatLon.lat(), minLatLon.lon(),
-            MapillaryDownloader.CLIENT_ID);
-    MapillaryLayer.getInstance().getData().bounds.add(new Bounds(minLatLon,
-        maxLatLon));
-
-    int page = 1;
-    while (!ex.isShutdown()
-        && MapillaryLayer.getInstance().getData().getImages().size() <= 0
-        && page < 50) {
-      System.out.println("Sending sequence-request " + page
-          + " to Mapillary-servers…");
-      Thread downloadThread = new MapillarySequenceDownloadThread(ex,
-          queryString + "&page=" + page);
-      downloadThread.start();
-      downloadThread.join();
-      page++;
-      Thread.sleep(500);
-    }
-    assertTrue(MapillaryLayer.getInstance().getData().getImages().size() >= 1);
-    System.out
-        .println("One or more images were added to the MapillaryLayer within the given bounds.");
-  }
-
-}
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/history/MapillaryRecordTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/history/MapillaryRecordTest.java	(revision 31795)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/history/MapillaryRecordTest.java	(revision 31797)
@@ -2,4 +2,6 @@
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -266,10 +268,8 @@
 
     this.record.addCommand(cmd1);
-    assertEquals(false, MapillaryLayer.getInstance().getData().getImages()
-        .contains(this.img1));
+    assertFalse(MapillaryLayer.getInstance().getData().getImages().contains(this.img1));
     assertEquals(null, this.img2.previous());
     this.record.undo();
-    assertEquals(true, MapillaryLayer.getInstance().getData().getImages()
-        .contains(this.img1));
+    assertTrue(MapillaryLayer.getInstance().getData().getImages().contains(this.img1));
     this.record.redo();
     this.record.addCommand(cmd2);
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThreadTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThreadTest.java	(revision 31797)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/io/download/MapillarySequenceDownloadThreadTest.java	(revision 31797)
@@ -0,0 +1,71 @@
+/**
+ *
+ */
+package org.openstreetmap.josm.plugins.mapillary.io.download;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.Locale;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.junit.Test;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.plugins.mapillary.AbstractTest;
+import org.openstreetmap.josm.plugins.mapillary.MapillaryLayer;
+import org.openstreetmap.josm.plugins.mapillary.io.download.MapillaryDownloader;
+import org.openstreetmap.josm.plugins.mapillary.io.download.MapillarySequenceDownloadThread;
+
+/**
+ *
+ */
+public class MapillarySequenceDownloadThreadTest extends AbstractTest {
+
+  /**
+   * Test method for
+   * {@link org.openstreetmap.josm.plugins.mapillary.io.download.MapillarySequenceDownloadThread#run()}
+   * .
+   *
+   * This downloads a small area of mapillary-sequences where we know that
+   * images already exist. When the download-thread finishes, we check if the
+   * Mapillary-layer now contains one or more images.
+   *
+   * @throws InterruptedException
+   */
+  @Test
+  public void testRun() throws InterruptedException {
+    System.out.println("[JUnit] MapillarySequenceDownloadThreadTest.testRun()");
+    // Area around image UjEbeXZYIoyAKOsE-remlg (59.32125452° N 18.06166856° E)
+    LatLon minLatLon = new LatLon(59.3212545, 18.0616685);
+    LatLon maxLatLon = new LatLon(59.3212546, 18.0616686);
+
+    ExecutorService ex = Executors.newSingleThreadExecutor();
+    String queryString = String
+        .format(
+            Locale.UK,
+            "?max_lat=%.8f&max_lon=%.8f&min_lat=%.8f&min_lon=%.8f&limit=10&client_id=%s",
+            maxLatLon.lat(), maxLatLon.lon(), minLatLon.lat(), minLatLon.lon(),
+            MapillaryDownloader.CLIENT_ID);
+    MapillaryLayer.getInstance().getData().bounds.add(new Bounds(minLatLon,
+        maxLatLon));
+
+    int page = 1;
+    while (!ex.isShutdown()
+        && MapillaryLayer.getInstance().getData().getImages().size() <= 0
+        && page < 50) {
+      System.out.println("Sending sequence-request " + page
+          + " to Mapillary-servers…");
+      Thread downloadThread = new MapillarySequenceDownloadThread(ex,
+          queryString + "&page=" + page);
+      downloadThread.start();
+      downloadThread.join();
+      page++;
+      Thread.sleep(500);
+    }
+    assertTrue(MapillaryLayer.getInstance().getData().getImages().size() >= 1);
+    System.out
+        .println("One or more images were added to the MapillaryLayer within the given bounds.");
+  }
+
+}
