@Test(expected = IllegalStateException.class) public void testWriteNoOutput() { ImageWriter writer = createImageWriter(); try { writer.write(getTestData(0)); } catch (IOException e) { fail(e.getMessage()); } }
@Test public void testWrite() throws IOException { ImageWriter writer = createImageWriter(); for (RenderedImage testData : getTestData()) { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); try (ImageOutputStream stream = ImageIO.createImageOutputStream(buffer)) { writer.setOutput(stream); writer.write(drawSomething((BufferedImage) testData)); } catch (IOException e) { fail(e.getMessage()); } assertTrue("No image data written", buffer.size() > 0); } }
@Test public void testSetOutput() throws IOException { // Should just pass with no exceptions ImageWriter writer = createImageWriter(); assertNotNull(writer); writer.setOutput(ImageIO.createImageOutputStream(new ByteArrayOutputStream())); }
protected final RenderedImage getTestData(final int index) { return getTestData().get(index); }
@Test public void testAddIIOWriteProgressListener() { ImageWriter writer = createImageWriter(); writer.addIIOWriteProgressListener(mock(IIOWriteProgressListener.class)); }
@Test public void testRemoveAllIIOWriteProgressListeners() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); writer.removeAllIIOWriteProgressListeners(); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // Should not have called any methods... verifyZeroInteractions(listener); }
@Test public void testRemoveIIOWriteProgressListenerNone() { ImageWriter writer = createImageWriter(); writer.removeIIOWriteProgressListener(mock(IIOWriteProgressListener.class)); }
@Test public void testRemoveIIOWriteProgressListener() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); writer.removeIIOWriteProgressListener(listener); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // Should not have called any methods... verifyZeroInteractions(listener); }
@SuppressWarnings("ConstantConditions") @Test public void testWriteNull() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); try { writer.write((RenderedImage) null); } catch(IllegalArgumentException ignore) { } catch (IOException e) { fail(e.getMessage()); } assertTrue("Image data written", buffer.size() == 0); }
@Test public void testAddIIOWriteProgressListenerCallbacks() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener); ordered.verify(listener).imageStarted(writer, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listener).imageComplete(writer); }
@Test public void testSetOutputNull() { // Should just pass with no exceptions ImageWriter writer = createImageWriter(); assertNotNull(writer); writer.setOutput(null); }
@Test public void testRemoveAllIIOWriteProgressListenersMultiple() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); IIOWriteProgressListener listenerToo = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listenerToo); writer.removeAllIIOWriteProgressListeners(); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // Should not have called any methods... verifyZeroInteractions(listener); verifyZeroInteractions(listenerToo); } }
@Test public void testRemoveIIOWriteProgressListenerNull() { ImageWriter writer = createImageWriter(); writer.removeIIOWriteProgressListener(null); }
@Test public void testRemoveIIOWriteProgressListenerMultiple() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); IIOWriteProgressListener listenerToo = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listenerToo); writer.removeIIOWriteProgressListener(listener); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // Should not have called any methods... verifyZeroInteractions(listener); // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listenerToo); ordered.verify(listenerToo).imageStarted(writer, 0); ordered.verify(listenerToo, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listenerToo).imageComplete(writer); }
@Test public void testAddIIOWriteProgressListenerNull() { ImageWriter writer = createImageWriter(); writer.addIIOWriteProgressListener(null); }
@Test public void testMultipleAddIIOWriteProgressListenerCallbacks() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); writer.setOutput(ImageIO.createImageOutputStream(buffer)); IIOWriteProgressListener listener = mock(IIOWriteProgressListener.class); IIOWriteProgressListener listenerToo = mock(IIOWriteProgressListener.class); IIOWriteProgressListener listenerThree = mock(IIOWriteProgressListener.class); writer.addIIOWriteProgressListener(listener); writer.addIIOWriteProgressListener(listenerToo); writer.addIIOWriteProgressListener(listenerThree); try { writer.write(getTestData(0)); } catch (IOException e) { fail("Could not write image"); } // At least imageStarted and imageComplete, plus any number of imageProgress InOrder ordered = inOrder(listener, listenerToo, listenerThree); ordered.verify(listener).imageStarted(writer, 0); ordered.verify(listenerToo).imageStarted(writer, 0); ordered.verify(listenerThree).imageStarted(writer, 0); ordered.verify(listener, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listenerToo, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listenerThree, atLeastOnce()).imageProgress(eq(writer), anyInt()); ordered.verify(listener).imageComplete(writer); ordered.verify(listenerToo).imageComplete(writer); ordered.verify(listenerThree).imageComplete(writer); }
@Test public void testGetDefaultWriteParam() { ImageWriter writer = createImageWriter(); ImageWriteParam param = writer.getDefaultWriteParam(); assertNotNull("Default ImageWriteParam is null", param); }