package com.codeaffine.extras.workingset.internal; import static java.lang.reflect.Modifier.isPublic; import static java.lang.reflect.Modifier.isStatic; import static org.junit.Assert.assertNotNull; import java.lang.reflect.Field; import java.util.LinkedList; import java.util.List; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.junit.Test; public class ImagesPDETest { @Test public void testRegisteredImages() throws IllegalAccessException { for( String constantValue : getConstantValues() ) { checkImageDescriptor( constantValue ); } } private static void checkImageDescriptor( String constantValue ) { ImageDescriptor descriptor = Images.getImageDescriptor( constantValue ); assertNotNull( "No image descriptor registered for: " + constantValue, descriptor ); Image image = descriptor.createImage( false ); assertNotNull( "Image descriptor does not return image: " + constantValue, image ); image.dispose(); } private static String[] getConstantValues() throws IllegalAccessException { List<String> constantValues = new LinkedList<>(); Field[] declaredFields = Images.class.getDeclaredFields(); for( Field declaredField : declaredFields ) { if( isStatic( declaredField.getModifiers() ) && isPublic( declaredField.getModifiers() ) ) { constantValues.add( ( String )declaredField.get( null ) ); } } return constantValues.toArray( new String[ constantValues.size() ] ); } }