/* * ModeShape (http://www.modeshape.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.modeshape.sequencer.image; import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsNull.notNullValue; import static org.hamcrest.number.IsCloseTo.closeTo; import org.junit.After; import static org.junit.Assert.assertThat; import org.junit.Before; import org.junit.Test; import java.io.InputStream; /** * Unit test for {@link ImageMetadata}. * * @author Randall Hauch * @author Horia Chiorean */ public class ImageMetadataTest { private ImageMetadata image; private InputStream imageStream; @Before public void beforeEach() { this.image = new ImageMetadata(); } @After public void afterEach() throws Exception { if (imageStream != null) { try { imageStream.close(); } finally { imageStream = null; } } } protected InputStream getTestImage( String resourcePath ) { return this.getClass().getResourceAsStream("/" + resourcePath); } @Test public void shouldBeAbleToCreateWithDefaultConstructor() { assertThat(new ImageMetadata(), is(notNullValue())); } @Test public void shouldBeAbleToLoadPngImage() { // Get an input stream to a test file ... InputStream stream = getTestImage("caution.png"); image.setInput(stream); image.setDetermineImageNumber(true); image.setCollectComments(true); // Process the image ... assertThat(image.check(), is(true)); assertThat(image.getFormatName(), is("PNG")); assertThat(image.getMimeType(), is("image/png")); assertThat(image.getWidth(), is(48)); assertThat(image.getHeight(), is(48)); assertThat(image.getBitsPerPixel(), is(24)); assertThat(image.isProgressive(), is(false)); assertThat(image.getNumberOfImages(), is(1)); assertThat(image.getPhysicalWidthDpi(), is(-1)); assertThat(image.getPhysicalHeightDpi(), is(-1)); assertThat(image.getPhysicalWidthInch(), is(-1.0f)); assertThat(image.getPhysicalHeightInch(), is(-1.0f)); assertThat(image.getNumberOfComments(), is(0)); // assertThat(image.getComment(0), is("")); } @Test public void shouldBeAbleToLoadGifImage() { // Get an input stream to a test file ... InputStream stream = getTestImage("caution.gif"); image.setInput(stream); image.setDetermineImageNumber(true); image.setCollectComments(true); // Process the image ... assertThat(image.check(), is(true)); assertThat(image.getFormatName(), is("GIF")); assertThat(image.getMimeType(), is("image/gif")); assertThat(image.getWidth(), is(48)); assertThat(image.getHeight(), is(48)); assertThat(image.getBitsPerPixel(), is(8)); assertThat(image.isProgressive(), is(false)); assertThat(image.getNumberOfImages(), is(1)); assertThat(image.getPhysicalWidthDpi(), is(-1)); assertThat(image.getPhysicalHeightDpi(), is(-1)); assertThat(image.getPhysicalWidthInch(), is(-1.0f)); assertThat(image.getPhysicalHeightInch(), is(-1.0f)); assertThat(image.getNumberOfComments(), is(0)); // assertThat(image.getComment(0), is("")); } @Test public void shouldBeAbleToLoadJpegImage() { // Get an input stream to a test file ... InputStream stream = getTestImage("caution.jpg"); image.setInput(stream); image.setDetermineImageNumber(true); image.setCollectComments(true); // Process the image ... assertThat(image.check(), is(true)); assertThat(image.getFormatName(), is("JPEG")); assertThat(image.getMimeType(), is("image/jpeg")); assertThat(image.getWidth(), is(48)); assertThat(image.getHeight(), is(48)); assertThat(image.getBitsPerPixel(), is(24)); assertThat(image.isProgressive(), is(false)); assertThat(image.getNumberOfImages(), is(1)); assertThat(image.getPhysicalWidthDpi(), is(72)); assertThat(image.getPhysicalHeightDpi(), is(72)); assertThat((double)image.getPhysicalWidthInch(), is(closeTo(0.66666666d, 0.00001d))); assertThat((double)image.getPhysicalHeightInch(), is(closeTo(0.66666666d, 0.00001d))); assertThat(image.getNumberOfComments(), is(0)); // assertThat(image.getComment(0), is("")); } @Test public void shouldNotBeAbleToLoadPictImage() { // Get an input stream to a test file ... InputStream stream = getTestImage("caution.pict"); image.setInput(stream); image.setDetermineImageNumber(true); image.setCollectComments(true); // Process the image ... assertThat(image.check(), is(false)); } }