package org.jboss.seam.example.excel.test; import java.io.File; import java.io.ByteArrayInputStream; import jxl.Sheet; import jxl.Workbook; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.jboss.shrinkwrap.api.importer.ZipImporter; import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.container.test.api.OverProtocol; import org.jboss.arquillian.junit.Arquillian; import org.jboss.seam.contexts.Contexts; import org.jboss.seam.document.ByteArrayDocumentData; import org.jboss.seam.document.DocumentData; import org.jboss.seam.faces.Renderer; import org.jboss.seam.mock.JUnitSeamTest; import org.junit.runner.RunWith; import org.junit.Test; /** * @author Daniel Roth * * Really small test. Renders an jxl excel file from jsf tags and * verifies the content. * */ @RunWith(Arquillian.class) public class RenderTest extends JUnitSeamTest { @Deployment(name="RenderTest") @OverProtocol("Servlet 3.0") public static Archive<?> createDeployment() { EnterpriseArchive er = ShrinkWrap.create(ZipImporter.class, "seam-excel.ear").importFrom(new File("../excel-ear/target/seam-excel.ear")) .as(EnterpriseArchive.class); WebArchive web = er.getAsType(WebArchive.class, "excel-web.war"); web.addAsWebInfResource(new StringAsset("org.jboss.seam.mock.MockFacesContextFactory"), "classes/META-INF/services/javax.faces.context.FacesContextFactory"); web.addClasses(RenderTest.class); return er; } @Test public void testSimple() throws Exception { new FacesRequest() { @Override protected void updateModelValues() throws Exception { } @Override protected void invokeApplication() throws Exception { Renderer.instance().render("/simple.xhtml"); DocumentData data = (DocumentData) Contexts.getEventContext().get("testExport"); Workbook workbook = Workbook.getWorkbook(new ByteArrayInputStream(((ByteArrayDocumentData)data).getData())); Sheet sheet = workbook.getSheet("Developers"); assert sheet != null; assert "Daniel Roth".equals(sheet.getCell(0, 0).getContents()); assert "Nicklas Karlsson".equals(sheet.getCell(0, 1).getContents()); } }.run(); } public static void main(String[] args) { RenderTest t = new RenderTest(); try { t.testSimple(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }