package com.kennycason.kumo; import com.kennycason.kumo.bg.RectangleBackground; import org.junit.Test; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import java.awt.*; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Arrays; import java.util.Iterator; import java.util.List; import static org.junit.Assert.*; public class WordCloudTest { public static final List<WordFrequency> WORD_FREQUENCIES = Arrays.asList(new WordFrequency("apple", 22), new WordFrequency("baby", 3), new WordFrequency("back", 15), new WordFrequency("bear", 9), new WordFrequency("boy", 26)); @Test public void testWriteToStreamAsPNG() throws IOException { final Dimension dimension = new Dimension(200, 200); final WordCloud wordCloud = new WordCloud(dimension, CollisionMode.PIXEL_PERFECT); wordCloud.build(WORD_FREQUENCIES); wordCloud.setPadding(2); wordCloud.setBackground(new RectangleBackground(dimension)); final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); wordCloud.writeToStreamAsPNG(byteArrayOutputStream); final byte[] bytes = byteArrayOutputStream.toByteArray(); assertNotEquals(0, bytes.length); final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); final ImageInputStream imageInputStream = ImageIO.createImageInputStream(byteArrayInputStream); final Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(imageInputStream); assertTrue(imageReaders.hasNext()); final ImageReader imageReader = imageReaders.next(); assertEquals("png", imageReader.getFormatName()); } }