package com.itextpdf.text.pdf;
import java.io.ByteArrayOutputStream;
import org.junit.Test;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.exceptions.IllegalPdfSyntaxException;
public class UnbalancedOperatorsTest {
private Document document;
private PdfWriter writer;
private void initializeDocument() throws DocumentException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
document = new Document();
writer = PdfWriter.getInstance(document, baos);
document.open();
}
@Test
public void testBasicDocument() throws Exception {
initializeDocument();
writer.getDirectContent().saveState();
document.add(new Paragraph("Hello World"));
writer.getDirectContent().restoreState();
document.close();
}
@Test
public void testNewPage() throws Exception {
initializeDocument();
writer.getDirectContent().saveState();
document.add(new Paragraph("Hello World"));
writer.getDirectContent().restoreState();
document.newPage();
document.add(new Paragraph("Hello World"));
document.close();
}
@Test(expected=IllegalPdfSyntaxException.class)
public void testUnbalancedRestoreState() throws Exception {
initializeDocument();
document.add(new Paragraph("Hello World"));
writer.getDirectContent().restoreState();
document.close();
}
@Test(expected=IllegalPdfSyntaxException.class)
public void testUnbalancedSaveStateOnClose() throws Exception {
initializeDocument();
writer.getDirectContent().saveState();
document.add(new Paragraph("Hello World"));
document.close();
}
@Test(expected=IllegalPdfSyntaxException.class)
public void testUnbalancedSaveStateOnNewPage() throws Exception {
initializeDocument();
writer.getDirectContent().saveState();
document.add(new Paragraph("Hello World"));
document.newPage();
document.add(new Paragraph("Hello World"));
document.close();
}
}