Index: trunk/test/unit/org/openstreetmap/josm/data/imagery/vectortile/mapbox/style/LayersTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/imagery/vectortile/mapbox/style/LayersTest.java	(revision 18574)
+++ trunk/test/unit/org/openstreetmap/josm/data/imagery/vectortile/mapbox/style/LayersTest.java	(revision 18578)
@@ -62,7 +62,8 @@
     void testFill() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
+        JsonObject emptyFill = Json.createObjectBuilder()
           .add("type", Layers.Type.FILL.name())
-          .add("id", "Empty Fill").build()));
+          .add("id", "Empty Fill").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptyFill));
 
         // Test an empty fill layer
@@ -118,7 +119,8 @@
     void testLine() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
-          .add("type", Layers.Type.LINE.name())
-          .add("id", "Empty Line").build()));
+        JsonObject emptyLine = Json.createObjectBuilder()
+          .add("type", Layers.Type.RASTER.name())
+          .add("id", "Empty Raster").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptyLine));
 
         JsonObject allLayoutProperties = Json.createObjectBuilder()
@@ -173,7 +175,8 @@
     void testSymbol() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
-          .add("type", Layers.Type.SYMBOL.name())
-          .add("id", "Empty Symbol").build()));
+        JsonObject emptySymbol = Json.createObjectBuilder()
+          .add("type", Layers.Type.RASTER.name())
+          .add("id", "Empty Raster").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptySymbol));
 
         JsonObject allPaintProperties = Json.createObjectBuilder()
@@ -306,7 +309,8 @@
     void testRaster() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
+        JsonObject emptyRaster = Json.createObjectBuilder()
           .add("type", Layers.Type.RASTER.name())
-          .add("id", "Empty Raster").build()));
+          .add("id", "Empty Raster").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptyRaster));
 
         JsonObject allPaintProperties = Json.createObjectBuilder()
@@ -349,7 +353,8 @@
     void testCircle() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
+        JsonObject emptyCircle = Json.createObjectBuilder()
           .add("type", Layers.Type.CIRCLE.name())
-          .add("id", "Empty Circle").build()));
+          .add("id", "Empty Circle").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptyCircle));
 
         JsonObject allPaintProperties = Json.createObjectBuilder()
@@ -400,7 +405,8 @@
     void testFillExtrusion() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
+        JsonObject emptyFillExtrusion = Json.createObjectBuilder()
           .add("type", Layers.Type.FILL_EXTRUSION.name())
-          .add("id", "Empty Fill Extrusion").build()));
+          .add("id", "Empty Fill Extrusion").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptyFillExtrusion));
 
         JsonObject allPaintProperties = Json.createObjectBuilder()
@@ -439,7 +445,8 @@
     void testHeatmap() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
+        JsonObject emptyHeatmap = Json.createObjectBuilder()
           .add("type", Layers.Type.HEATMAP.name())
-          .add("id", "Empty Heatmap").build()));
+          .add("id", "Empty Heatmap").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptyHeatmap));
 
         JsonObject allPaintProperties = Json.createObjectBuilder()
@@ -476,7 +483,8 @@
     void testHillshade() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
+        JsonObject emptyHillshade = Json.createObjectBuilder()
           .add("type", Layers.Type.HILLSHADE.name())
-          .add("id", "Empty Hillshade").build()));
+          .add("id", "Empty Hillshade").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptyHillshade));
 
         JsonObject allPaintProperties = Json.createObjectBuilder()
@@ -516,7 +524,8 @@
     void testSky() {
         // Test a layer without a source (should fail)
-        assertThrows(NullPointerException.class, () -> new Layers(Json.createObjectBuilder()
+        JsonObject emptySky = Json.createObjectBuilder()
           .add("type", Layers.Type.SKY.name())
-          .add("id", "Empty Sky").build()));
+          .add("id", "Empty Sky").build();
+        assertThrows(NullPointerException.class, () -> new Layers(emptySky));
 
         JsonObject allPaintProperties = Json.createObjectBuilder()
@@ -580,9 +589,9 @@
           .add("maxzoom", 24)
           .build());
-        assertEquals(MessageFormat.format(baseString, "|z-24"), maxZoomLayer.toString());
+        assertEquals(MessageFormat.format(baseString, "|z-23"), maxZoomLayer.toString());
 
         Layers minMaxZoomLayer = new Layers(Json.createObjectBuilder(baseInformation)
           .add("minzoom", 1)
-          .add("maxzoom", 2)
+          .add("maxzoom", 3)
           .build());
         assertEquals(MessageFormat.format(baseString, "|z1-2"), minMaxZoomLayer.toString());
@@ -593,4 +602,8 @@
           .build());
         assertEquals(MessageFormat.format(baseString, "|z2"), sameMinMaxZoomLayer.toString());
+        Layers zeroMaxZoom = new Layers(Json.createObjectBuilder(baseInformation)
+                .add("maxzoom", 0)
+                .build());
+        assertEquals(MessageFormat.format(baseString, "|z-0"), zeroMaxZoom.toString());
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/data/vector/VectorWayTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/vector/VectorWayTest.java	(revision 18574)
+++ trunk/test/unit/org/openstreetmap/josm/data/vector/VectorWayTest.java	(revision 18578)
@@ -87,9 +87,11 @@
         assertFalse(way.isClosed());
         assertEquals(OsmPrimitiveType.WAY, way.getType());
+        assertEquals(OsmPrimitiveType.WAY, way.getDisplayType());
         List<VectorNode> nodes = new ArrayList<>(way.getNodes());
         nodes.add(nodes.get(0));
         way.setNodes(nodes);
         assertTrue(way.isClosed());
-        assertEquals(OsmPrimitiveType.CLOSEDWAY, way.getType());
+        assertEquals(OsmPrimitiveType.WAY, way.getType());
+        assertEquals(OsmPrimitiveType.CLOSEDWAY, way.getDisplayType());
     }
 
