package org.jboss.seam.example.seamspace.test; import static org.junit.Assert.*; 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.mock.JUnitSeamTest; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(Arquillian.class) public class BlogTest extends JUnitSeamTest { @Deployment(name="BlogTest") @OverProtocol("Servlet 3.0") public static Archive<?> createDeployment() { EnterpriseArchive er = Deployments.seamSpaceDeployment(); WebArchive web = er.getAsType(WebArchive.class, "seamspace-web.war"); web.addClasses(BlogTest.class); return er; } @Test public void testCreateBlog() throws Exception { // Log in first new FacesRequest() { @Override protected void invokeApplication() throws Exception { setValue("#{identity.username}", "demo"); setValue("#{identity.password}", "demo"); invokeAction("#{identity.login}"); assertTrue((Boolean)getValue("#{identity.loggedIn}")); } }.run(); String cid = new FacesRequest() { @Override protected void invokeApplication() throws Exception { assertNull(invokeAction("#{blog.createEntry}")); } }.run(); new FacesRequest("/createBlog.xhtml", cid) { @Override protected void updateModelValues() throws Exception { setValue("#{selectedBlog.title}", "A new blog entry"); setValue("#{selectedBlog.text}", "A very very very long section of text. " + "This text should be long enough to simulate a typical blog entry. " + "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed interdum " + "felis non arcu. Phasellus sodales pharetra dui. Suspendisse felis turpis, " + "ultricies a, ullamcorper sed, nonummy id, nulla. Ut quis orci. Mauris diam " + "pede, condimentum et, tempor vitae, facilisis non, sem. Mauris quam ipsum, " + "laoreet non, ultricies in, aliquet nec, metus. Morbi dui. Vestibulum " + "ullamcorper, tellus non hendrerit consequat, libero erat laoreet metus, " + "quis facilisis arcu diam vel orci. Fusce tempor erat eget odio. Aliquam urna " + "dui, dignissim id, pretium in, congue quis, est. Phasellus nec erat ac arcu " + "porttitor rhoncus. Pellentesque habitant morbi tristique senectus et netus et " + "malesuada fames ac turpis egestas. Nulla sed massa ut est sodales ultrices. " + "Sed vitae nulla eu tellus fringilla sagittis. Nunc convallis, mi at lobortis " + "rhoncus, neque turpis ullamcorper odio, quis scelerisque est dolor non velit. Integer vulputate."); } @Override protected void invokeApplication() throws Exception { assertNull(invokeAction("#{blog.saveEntry}")); } }.run(); new FacesRequest() { @Override protected void invokeApplication() throws Exception { invokeAction("#{identity.logout}"); assertFalse((Boolean)getValue("#{identity.loggedIn}")); } }.run(); } //@Test public void testCreateComment() throws Exception { new FacesRequest() { @Override protected void invokeApplication() throws Exception { setValue("#{identity.username}", "demo"); setValue("#{identity.password}", "demo"); invokeAction("#{identity.login}"); assertTrue((Boolean)getValue("#{identity.loggedIn}")); } }.run(); String cid = new FacesRequest("/comment.xhtml") { @Override protected void beforeRequest() { setParameter("name", "Mr_Smiley"); setParameter("blogId", "1"); } @Override protected void renderResponse() throws Exception { assertNotNull(getValue("#{selectedBlog}")); assertEquals(1, getValue("#{selectedBlog.blogId}")); } }.run(); new FacesRequest("/comment.xhtml", cid) { @Override protected void invokeApplication() throws Exception { assertNull(invokeAction("#{blog.createComment}")); assertNotNull(getValue("#{comment}")); assertNotNull(getValue("#{comment.blog}")); } }.run(); new FacesRequest("/comment.xhtml", cid) { @Override protected void updateModelValues() throws Exception { setValue("#{comment.comment}", "I totally disagree with your blog entry!"); } @Override protected void invokeApplication() throws Exception { assertNull(invokeAction("#{blog.saveComment}")); } }.run(); new FacesRequest() { @Override protected void invokeApplication() throws Exception { invokeAction("#{identity.logout}"); assertFalse((Boolean)getValue("#{identity.loggedIn}")); } }.run(); } }