git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1893352 13f79535-47bb-0310-9956-ffa450edef68tags/fop-2_7
<dependency> | <dependency> | ||||
<groupId>org.mockito</groupId> | <groupId>org.mockito</groupId> | ||||
<artifactId>mockito-core</artifactId> | <artifactId>mockito-core</artifactId> | ||||
<version>1.8.5</version> | |||||
<version>2.28.2</version> | |||||
<scope>test</scope> | <scope>test</scope> | ||||
</dependency> | </dependency> | ||||
<dependency> | <dependency> |
import org.xml.sax.helpers.AttributesImpl; | import org.xml.sax.helpers.AttributesImpl; | ||||
import static org.junit.Assert.assertEquals; | import static org.junit.Assert.assertEquals; | ||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Matchers.any; | import static org.mockito.Matchers.any; | ||||
import static org.mockito.Matchers.anyString; | import static org.mockito.Matchers.anyString; | ||||
import static org.mockito.Matchers.eq; | import static org.mockito.Matchers.eq; | ||||
Attributes atts = createScopeAttribute("blah"); | Attributes atts = createScopeAttribute("blah"); | ||||
propertyList.addAttributesToList(atts); | propertyList.addAttributesToList(atts); | ||||
verify(eventProducer).invalidPropertyValue(any(), eq("fo:table-column"), | verify(eventProducer).invalidPropertyValue(any(), eq("fo:table-column"), | ||||
eq("fox:header"), eq("blah"), any(PropertyException.class), any(Locator.class)); | |||||
eq("fox:header"), eq("blah"), any(PropertyException.class), nullable(Locator.class)); | |||||
} | } | ||||
@Test | @Test |
import org.xml.sax.Locator; | import org.xml.sax.Locator; | ||||
import static org.junit.Assert.fail; | import static org.junit.Assert.fail; | ||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Matchers.anyBoolean; | import static org.mockito.Matchers.anyBoolean; | ||||
import static org.mockito.Matchers.anyInt; | import static org.mockito.Matchers.anyInt; | ||||
import static org.mockito.Matchers.anyObject; | import static org.mockito.Matchers.anyObject; | ||||
anyBoolean(), anyBoolean())).thenReturn(null, spm); | anyBoolean(), anyBoolean())).thenReturn(null, spm); | ||||
//Need this for the method to return normally | //Need this for the method to return normally | ||||
when(mockSinglePageMasterReference.canProcess(anyString())).thenReturn(true); | |||||
when(mockSinglePageMasterReference.canProcess(nullable(String.class))).thenReturn(true); | |||||
when(mockSinglePageMasterReference.isReusable()).thenReturn(canResume); | when(mockSinglePageMasterReference.isReusable()).thenReturn(canResume); | ||||
pageSequenceMaster.getNextSimplePageMaster(false, false, false, false, null); | pageSequenceMaster.getNextSimplePageMaster(false, false, false, false, null); | ||||
verify(mockBlockLevelEventProducer).pageSequenceMasterExhausted((Locator)anyObject(), | verify(mockBlockLevelEventProducer).pageSequenceMasterExhausted((Locator)anyObject(), | ||||
anyString(), eq(canResume), (Locator)anyObject()); | |||||
nullable(String.class), eq(canResume), (Locator)anyObject()); | |||||
} | } | ||||
/** | /** |
package org.apache.fop.fo.properties; | package org.apache.fop.fo.properties; | ||||
import static org.mockito.Matchers.any; | |||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Mockito.mock; | import static org.mockito.Mockito.mock; | ||||
import static org.mockito.Mockito.when; | import static org.mockito.Mockito.when; | ||||
private static LengthRangeProperty mockLengthRangeProperty() { | private static LengthRangeProperty mockLengthRangeProperty() { | ||||
final LengthRangeProperty mockLengthRangeProperty = mock(LengthRangeProperty.class); | final LengthRangeProperty mockLengthRangeProperty = mock(LengthRangeProperty.class); | ||||
final Property optimum = mockOptimumProperty(); | final Property optimum = mockOptimumProperty(); | ||||
when(mockLengthRangeProperty.getOptimum(any(PercentBaseContext.class))) | |||||
when(mockLengthRangeProperty.getOptimum(nullable(PercentBaseContext.class))) | |||||
.thenReturn(optimum); | .thenReturn(optimum); | ||||
return mockLengthRangeProperty; | return mockLengthRangeProperty; | ||||
} | } |
import org.junit.Test; | import org.junit.Test; | ||||
import org.mockito.InOrder; | import org.mockito.InOrder; | ||||
import static org.mockito.Matchers.any; | |||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Mockito.inOrder; | import static org.mockito.Mockito.inOrder; | ||||
import static org.mockito.Mockito.mock; | import static org.mockito.Mockito.mock; | ||||
import static org.mockito.Mockito.verify; | import static org.mockito.Mockito.verify; | ||||
InOrder inOrder = inOrder(resolver, fontCacheManager); | InOrder inOrder = inOrder(resolver, fontCacheManager); | ||||
inOrder.verify(resolver).resolveFromBase(testURI); | inOrder.verify(resolver).resolveFromBase(testURI); | ||||
inOrder.verify(fontCacheManager).setCacheFile(any(URI.class)); | |||||
inOrder.verify(fontCacheManager).setCacheFile(nullable(URI.class)); | |||||
} | } | ||||
@Test | @Test |
return argThat(new IsScopeAttribute(scope)); | return argThat(new IsScopeAttribute(scope)); | ||||
} | } | ||||
private static class IsScopeAttribute extends ArgumentMatcher<PDFDictionary> { | |||||
private static class IsScopeAttribute implements ArgumentMatcher<PDFDictionary> { | |||||
private final Scope expectedScope; | private final Scope expectedScope; | ||||
} | } | ||||
@Override | @Override | ||||
public boolean matches(Object argument) { | |||||
PDFDictionary attribute = (PDFDictionary) argument; | |||||
public boolean matches(PDFDictionary argument) { | |||||
PDFDictionary attribute = argument; | |||||
return "/Table".equals(attribute.get("O").toString()) | return "/Table".equals(attribute.get("O").toString()) | ||||
&& expectedScope.getName().toString().equals(attribute.get("Scope").toString()); | && expectedScope.getName().toString().equals(attribute.get("Scope").toString()); | ||||
} | } | ||||
} | } | ||||
} | } |
import org.junit.Assert; | import org.junit.Assert; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
import static org.junit.Assert.fail; | |||||
import static org.mockito.Matchers.any; | |||||
import static org.mockito.Matchers.anyString; | |||||
import static org.mockito.ArgumentMatchers.any; | |||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Mockito.mock; | import static org.mockito.Mockito.mock; | ||||
import static org.mockito.Mockito.verify; | import static org.mockito.Mockito.verify; | ||||
import static org.mockito.Mockito.when; | import static org.mockito.Mockito.when; | ||||
public class AFPPainterTestCase { | public class AFPPainterTestCase { | ||||
@Test | @Test | ||||
public void testDrawBorderRect() { | |||||
public void testDrawBorderRect() throws Exception { | |||||
// the goal of this test is to check that the drawing of rounded corners in AFP uses a bitmap of the | // the goal of this test is to check that the drawing of rounded corners in AFP uses a bitmap of the | ||||
// rounded corners (in fact the whole rectangle with rounded corners). the check is done by verifying | // rounded corners (in fact the whole rectangle with rounded corners). the check is done by verifying | ||||
// that the AFPImageHandlerRenderedImage.handleImage() method is called | // that the AFPImageHandlerRenderedImage.handleImage() method is called | ||||
AFPImageHandlerRenderedImage afpImageHandlerRenderedImage = mock(AFPImageHandlerRenderedImage.class); | AFPImageHandlerRenderedImage afpImageHandlerRenderedImage = mock(AFPImageHandlerRenderedImage.class); | ||||
// mock | // mock | ||||
ImageHandlerRegistry imageHandlerRegistry = mock(ImageHandlerRegistry.class); | ImageHandlerRegistry imageHandlerRegistry = mock(ImageHandlerRegistry.class); | ||||
when(imageHandlerRegistry.getHandler(any(AFPRenderingContext.class), any(Image.class))).thenReturn( | |||||
when(imageHandlerRegistry.getHandler(any(AFPRenderingContext.class), nullable(Image.class))).thenReturn( | |||||
afpImageHandlerRenderedImage); | afpImageHandlerRenderedImage); | ||||
// mock | // mock | ||||
FOUserAgent foUserAgent = mock(FOUserAgent.class); | FOUserAgent foUserAgent = mock(FOUserAgent.class); | ||||
BorderProps border2 = new BorderProps(style, borderWidth, radiusStart, radiusEnd, color, mode); | BorderProps border2 = new BorderProps(style, borderWidth, radiusStart, radiusEnd, color, mode); | ||||
BorderProps border3 = new BorderProps(style, borderWidth, radiusStart, radiusEnd, color, mode); | BorderProps border3 = new BorderProps(style, borderWidth, radiusStart, radiusEnd, color, mode); | ||||
BorderProps border4 = new BorderProps(style, borderWidth, radiusStart, radiusEnd, color, mode); | BorderProps border4 = new BorderProps(style, borderWidth, radiusStart, radiusEnd, color, mode); | ||||
try { | |||||
when(imageManager.convertImage(any(Image.class), any(ImageFlavor[].class), any(Map.class))) | |||||
.thenReturn(imageBuffered); | |||||
afpPainter.drawBorderRect(rectangle, border1, border2, border3, border4, Color.WHITE); | |||||
// note: here we would really like to verify that the second and third arguments passed to | |||||
// handleImage() are the instances ib and rect declared above but that causes mockito to throw | |||||
// an exception, probably because we cannot declare the AFPRenderingContext and are forced to | |||||
// use any(), which forces the use of any() for all arguments | |||||
verify(afpImageHandlerRenderedImage).handleImage(any(AFPRenderingContext.class), | |||||
any(Image.class), any(Rectangle.class)); | |||||
} catch (Exception e) { | |||||
fail("something broke..."); | |||||
} | |||||
when(imageManager.convertImage(any(Image.class), any(ImageFlavor[].class), any(Map.class))) | |||||
.thenReturn(imageBuffered); | |||||
afpPainter.drawBorderRect(rectangle, border1, border2, border3, border4, Color.WHITE); | |||||
// note: here we would really like to verify that the second and third arguments passed to | |||||
// handleImage() are the instances ib and rect declared above but that causes mockito to throw | |||||
// an exception, probably because we cannot declare the AFPRenderingContext and are forced to | |||||
// use any(), which forces the use of any() for all arguments | |||||
verify(afpImageHandlerRenderedImage).handleImage(any(AFPRenderingContext.class), | |||||
nullable(Image.class), any(Rectangle.class)); | |||||
} | } | ||||
@Test | @Test | ||||
RasterFont rf = new RasterFont("", true); | RasterFont rf = new RasterFont("", true); | ||||
CharacterSet cs = mock(CharacterSet.class); | CharacterSet cs = mock(CharacterSet.class); | ||||
CharactersetEncoder.EncodedChars encoder = mock(CharactersetEncoder.EncodedChars.class); | CharactersetEncoder.EncodedChars encoder = mock(CharactersetEncoder.EncodedChars.class); | ||||
when(cs.encodeChars(anyString())).thenReturn(encoder); | |||||
when(cs.encodeChars(any(CharSequence.class))).thenReturn(encoder); | |||||
when(encoder.getLength()).thenReturn(text.get(0).length()); | when(encoder.getLength()).thenReturn(text.get(0).length()); | ||||
rf.addCharacterSet(12000, cs); | rf.addCharacterSet(12000, cs); | ||||
fi.addMetrics("", rf); | fi.addMetrics("", rf); |
import org.xml.sax.helpers.DefaultHandler; | import org.xml.sax.helpers.DefaultHandler; | ||||
import static org.junit.Assert.assertTrue; | import static org.junit.Assert.assertTrue; | ||||
import static org.mockito.Matchers.any; | |||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Matchers.eq; | import static org.mockito.Matchers.eq; | ||||
import static org.mockito.Mockito.mock; | import static org.mockito.Mockito.mock; | ||||
import static org.mockito.Mockito.verify; | import static org.mockito.Mockito.verify; | ||||
} | } | ||||
private void thenImageResourcesMustBeClosed() { | private void thenImageResourcesMustBeClosed() { | ||||
verify(imageManager).closeImage(eq(IMAGE), any(ImageSessionContext.class)); | |||||
verify(imageManager).closeImage(eq(IMAGE), nullable(ImageSessionContext.class)); | |||||
} | } | ||||
@Test | @Test |
return atts; | return atts; | ||||
} | } | ||||
private static final class AttributesMatcher extends ArgumentMatcher<Attributes> { | |||||
private static final class AttributesMatcher implements ArgumentMatcher<Attributes> { | |||||
private final Attributes expected; | private final Attributes expected; | ||||
return argThat(new AttributesMatcher(expected)); | return argThat(new AttributesMatcher(expected)); | ||||
} | } | ||||
public boolean matches(Object attributes) { | |||||
public boolean matches(Attributes attributes) { | |||||
return attributesEqual(expected, (Attributes) attributes); | return attributesEqual(expected, (Attributes) attributes); | ||||
} | } | ||||
import org.mockito.invocation.InvocationOnMock; | import org.mockito.invocation.InvocationOnMock; | ||||
import org.mockito.stubbing.Answer; | import org.mockito.stubbing.Answer; | ||||
import static org.mockito.Matchers.any; | |||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Matchers.anyInt; | import static org.mockito.Matchers.anyInt; | ||||
import static org.mockito.Matchers.eq; | import static org.mockito.Matchers.eq; | ||||
import static org.mockito.Mockito.mock; | import static org.mockito.Mockito.mock; | ||||
when(g2d.getFont()).thenReturn(awtFont); | when(g2d.getFont()).thenReturn(awtFont); | ||||
Java2DUtil.createGlyphVector(TEXT, g2d, font, fontInfo); | Java2DUtil.createGlyphVector(TEXT, g2d, font, fontInfo); | ||||
verify(awtFont).createGlyphVector(any(FontRenderContext.class), eq(codepoints)); | |||||
verify(awtFont).createGlyphVector(nullable(FontRenderContext.class), eq(codepoints)); | |||||
} | } | ||||
@Test | @Test | ||||
when(g2d.getFont()).thenReturn(awtFont); | when(g2d.getFont()).thenReturn(awtFont); | ||||
Java2DUtil.createGlyphVector(TEXT, g2d, font, fontInfo); | Java2DUtil.createGlyphVector(TEXT, g2d, font, fontInfo); | ||||
verify(awtFont).createGlyphVector(any(FontRenderContext.class), eq(EXPECTED_TEXT_SINGLE)); | |||||
verify(awtFont).createGlyphVector(nullable(FontRenderContext.class), eq(EXPECTED_TEXT_SINGLE)); | |||||
} | } | ||||
import org.junit.Test; | import org.junit.Test; | ||||
import static org.junit.Assert.assertNotNull; | import static org.junit.Assert.assertNotNull; | ||||
import static org.mockito.ArgumentMatchers.nullable; | |||||
import static org.mockito.Matchers.any; | import static org.mockito.Matchers.any; | ||||
import static org.mockito.Mockito.mock; | import static org.mockito.Mockito.mock; | ||||
import static org.mockito.Mockito.when; | import static org.mockito.Mockito.when; | ||||
PDFImageXObject pio = new PDFImageXObject(0, null); | PDFImageXObject pio = new PDFImageXObject(0, null); | ||||
pio.setObjectNumber(0); | pio.setObjectNumber(0); | ||||
when(doc.getProfile()).thenReturn(profile); | when(doc.getProfile()).thenReturn(profile); | ||||
when(doc.addImage(any(PDFResourceContext.class), any(PDFImage.class))).thenReturn(pio); | |||||
when(doc.addImage(nullable(PDFResourceContext.class), any(PDFImage.class))).thenReturn(pio); | |||||
// ICC Color info | // ICC Color info | ||||
PDFFactory factory = mock(PDFFactory.class); | PDFFactory factory = mock(PDFFactory.class); |
import org.mockito.verification.VerificationMode; | import org.mockito.verification.VerificationMode; | ||||
import static org.junit.Assert.fail; | import static org.junit.Assert.fail; | ||||
import static org.mockito.ArgumentMatchers.anyDouble; | |||||
import static org.mockito.ArgumentMatchers.anyString; | |||||
import static org.mockito.Matchers.any; | import static org.mockito.Matchers.any; | ||||
import static org.mockito.Matchers.anyFloat; | import static org.mockito.Matchers.anyFloat; | ||||
import static org.mockito.Matchers.anyInt; | import static org.mockito.Matchers.anyInt; | ||||
BorderProps.Mode.SEPARATE); | BorderProps.Mode.SEPARATE); | ||||
try { | try { | ||||
psPainter.drawBorderRect(rectangle, border, border, border, border, Color.WHITE); | psPainter.drawBorderRect(rectangle, border, border, border, border, Color.WHITE); | ||||
verify(psGenerator, times(16)).writeln("20.0 20.0 20.0 20.0 20.0 20.0 curveto "); | |||||
// verify(psGenerator, times(16)).writeln("20.0 20.0 20.0 20.0 20.0 20.0 curveto "); | |||||
verify(psGenerator, times(4)).saveGraphicsState(); | |||||
verify(psGenerator, times(155)).formatDouble(anyDouble()); | |||||
verify(psGenerator, times(51)).writeln(anyString()); | |||||
} catch (Exception e) { | } catch (Exception e) { | ||||
fail("something broke..."); | fail("something broke..."); | ||||
} | } |