package com.codeaffine.extras.imageviewer.internal;
import static org.assertj.core.api.Assertions.assertThat;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import com.codeaffine.eclipse.swt.test.util.DisplayHelper;
public class ImageViewerTest {
@Rule
public final DisplayHelper displayHelper = new DisplayHelper();
private ImageViewer imageViewer;
@Before
public void setUp() {
imageViewer = new ImageViewer( displayHelper.createShell() );
}
@Test
public void testGetInitialImageDatas() {
ImageData[] imageDatas = imageViewer.getImageDatas();
assertThat( imageDatas ).isNull();
}
@Test
public void testSetImageDatas() {
Image image = new Image( displayHelper.getDisplay(), 2, 2 );
ImageData imageData = image.getImageData();
imageViewer.setImageDatas( imageData );
assertThat( imageViewer.getImageDatas() ).containsOnly( imageData );
}
@Test
public void testSetImageDatasToNull() {
ImageData imageData = new Image( displayHelper.getDisplay(), 2, 2 ).getImageData();
imageViewer.setImageDatas( imageData );
Image previousImage = imageViewer.imageLabel.getImage();
imageViewer.setImageDatas( ( ImageData[] )null );
assertThat( previousImage.isDisposed() ).isTrue();
assertThat( imageViewer.imageLabel.getImage() ).isNull();
}
@Test
public void testDispose() {
ImageData imageData = new Image( displayHelper.getDisplay(), 2, 2 ).getImageData();
imageViewer.setImageDatas( imageData );
Image currentImage = imageViewer.imageLabel.getImage();
imageViewer.getControl().dispose();
assertThat( currentImage.isDisposed() ).isTrue();
}
}