@Test public void copyCtorHandlesEmtpyViewport() { MapViewport vp = new MapViewport(); MapViewport copy = new MapViewport(vp); assertViewportsEqual(vp, copy); }
@Test public void boundsCtorSetNullScreenToWorld() { MapViewport vp = new MapViewport(WORLD_1_1); assertNull(vp.getScreenToWorld()); }
@Test public void newViewportIsEditableByDefault() { MapViewport vp = new MapViewport(); assertTrue(vp.isEditable()); }
@Test public void copyCtor() { MapViewport vp = new MapViewport(WORLD_1_1, true); vp.setScreenArea(SCREEN_1_1); vp.setEditable(false); MapViewport copy = new MapViewport(vp); assertTrue(copy.isEditable()); assertViewportsEqual(vp, copy); }
@Test public void boundsCtorSetsNullWorldToScreen() { MapViewport vp = new MapViewport(WORLD_1_1); assertNull(vp.getWorldToScreen()); }
private void assertAspectCorrection(Rectangle screenArea, ReferencedEnvelope expectedBounds) { MapViewport vp = new MapViewport(WORLD_1_1, true); vp.setScreenArea(screenArea); assertTrue(expectedBounds.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void noArgCtorThenSetBoundsGivesNullWorldToScreen() { MapViewport vp = new MapViewport(); vp.setBounds(WORLD_1_1); assertNull(vp.getWorldToScreen()); }
@Test public void noArgCtorThenSetBoundsGivesNullScreenToWorld() { MapViewport vp = new MapViewport(); vp.setBounds(WORLD_1_1); assertNull(vp.getWorldToScreen()); }
@Test public void setBoundsNoAspectCorrection() { MapViewport vp = new MapViewport(); vp.setScreenArea(SCREEN_2_1); vp.setBounds(WORLD_1_1); assertTrue(WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void callSetScreenAreaWhenNonEditable() throws Exception { MapViewport vp = new MapViewport(); vp.setScreenArea(SCREEN_1_1); vp.setEditable(false); grabLogger(); vp.setScreenArea(SCREEN_2_1); String s = getLogOutput(); assertTrue(s.contains("Ignored call to setScreenArea")); assertEquals(SCREEN_1_1, vp.getScreenArea()); releaseLogger(); }
@Test public void setAndRetrieveEditableStatus() { MapViewport vp = new MapViewport(); vp.setEditable(false); assertFalse(vp.isEditable()); vp.setEditable(true); assertTrue(vp.isEditable()); }
@Test public void callSetMatchingAspectRatioWhenNonEditable() throws Exception { MapViewport vp = new MapViewport(); boolean original = vp.isMatchingAspectRatio(); vp.setEditable(false); grabLogger(); vp.setMatchingAspectRatio(!original); String s = getLogOutput(); assertTrue(s.contains("Ignored call to setMatchingAspectRatio")); assertEquals(original, vp.isMatchingAspectRatio()); releaseLogger(); } }
@Test public void newBoundsAreHonoured_NoAspectMatching() { MapViewport vp = new MapViewport(false); vp.setScreenArea(SCREEN_1_1); vp.setBounds(WORLD_1_1); vp.setBounds(BIG_WORLD_1_1); assertTrue(BIG_WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void newBoundsAreHonoured_AspectMatching() { MapViewport vp = new MapViewport(true); vp.setScreenArea(SCREEN_1_1); vp.setBounds(WORLD_1_1); vp.setBounds(BIG_WORLD_1_1); assertTrue(BIG_WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void crsIsNotAutoSetIfViewportIsNotEditable() { MapViewport viewport = new MapViewport(); viewport.setEditable(false); mapContent.setViewport(viewport); Layer layerWithCRS = new MockLayer(WORLD); mapContent.addLayer(layerWithCRS); assertNull(mapContent.getCoordinateReferenceSystem()); }
@Test public void callSetBoundsWhenNonEditable() throws Exception { MapViewport vp = new MapViewport(); vp.setBounds(WORLD_1_1); vp.setEditable(false); grabLogger(); vp.setBounds(BIG_WORLD_1_1); String s = getLogOutput(); assertTrue(s.contains("Ignored call to setBounds")); assertTrue(WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); releaseLogger(); }
@Test public void setNewViewportAndCheckBounds() { mapContent.addLayer(new MockLayer(WORLD)); MapViewport newViewport = new MapViewport(); newViewport.setBounds(SMALL_WORLD); mapContent.setViewport(newViewport); ReferencedEnvelope bounds = mapContent.getBounds(); assertTrue(SMALL_WORLD.boundsEquals2D(bounds, TOL)); }
@Test public void booleanCtor() { MapViewport vp = new MapViewport(true); assertTrue(vp.isEmpty()); assertTrue(vp.isMatchingAspectRatio()); assertTrue(vp.getBounds().isEmpty()); assertTrue(vp.getScreenArea().isEmpty()); }
@Test public void fullCtor() { MapViewport vp = new MapViewport(WORLD_1_1, true); assertTrue(vp.isEmpty()); assertTrue(vp.isMatchingAspectRatio()); assertTrue(vp.getScreenArea().isEmpty()); assertTrue(WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void defaultCtor() { MapViewport vp = new MapViewport(); assertFalse(vp.isMatchingAspectRatio()); assertTrue(vp.isEmpty()); assertTrue(vp.getBounds().isEmpty()); assertTrue(vp.getScreenArea().isEmpty()); assertNull(vp.getCoordinateReferenceSystem()); }