/** * */ package org.activejpa.enhancer; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import java.lang.instrument.IllegalClassFormatException; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; /** * @author ganeshs * */ public class DomainClassFileTransformerTest { private DomainClassEnhancer enhancer; @BeforeMethod public void setup() { enhancer = mock(DomainClassEnhancer.class); } @Test public void shouldTransform() throws IllegalClassFormatException { ClassLoader loader = mock(ClassLoader.class); DomainClassFileTransformer transformer = new DomainClassFileTransformer(enhancer); transformer.transform(loader, DomainClassEnhancer.class.getName(), null, null, null); verify(enhancer).enhance(loader, DomainClassEnhancer.class.getName()); } @Test public void shouldNotTransformIgnoredPackageClasses() throws IllegalClassFormatException { ClassLoader loader = mock(ClassLoader.class); DomainClassFileTransformer transformer = new DomainClassFileTransformer(enhancer); transformer.transform(loader, "javax/test", null, null, null); transformer.transform(loader, "java/lang/String", null, null, null); transformer.transform(loader, "com/sun/test", null, null, null); transformer.transform(loader, "sun/test", null, null, null); verify(enhancer, never()).enhance(eq(loader), anyString()); } }