package org.jboss.seam.example.contactlist.test;
import java.util.List;
import org.jboss.seam.example.contactlist.Contact;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
public class ContactListTest extends SeamTest
{
@Test
public void testList() throws Exception
{
new NonFacesRequest("/search.xhtml")
{
@Override
protected void renderResponse() throws Exception
{
List<Contact> contacts = (List<Contact>) getValue("#{contacts.resultList}");
assert contacts.size()==5;
}
}.run();
}
@Test
public void testSearch() throws Exception
{
new FacesRequest("/search.xhtml")
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{exampleContact.firstName}", "Norman");
}
@Override
protected void invokeApplication() throws Exception
{
setOutcome("/search.xhtml");
}
@Override
protected void afterRequest()
{
assert !isRenderResponseBegun();
}
}.run();
new NonFacesRequest("/search.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("firstName", "Norman");
}
@Override
protected void renderResponse() throws Exception
{
List<Contact> contacts = (List<Contact>) getValue("#{contacts.resultList}");
assert contacts.size()==1;
}
}.run();
new FacesRequest("/search.xhtml")
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{exampleContact.lastName}", "King");
}
@Override
protected void invokeApplication() throws Exception
{
setOutcome("/search.xhtml");
}
@Override
protected void afterRequest()
{
assert !isRenderResponseBegun();
}
}.run();
new NonFacesRequest("/search.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("lastName", "King");
}
@Override
protected void renderResponse() throws Exception
{
List<Contact> contacts = (List<Contact>) getValue("#{contacts.resultList}");
assert contacts.size()==1;
}
}.run();
}
String contactId;
@Test
public void testCreateDeleteContact() throws Exception
{
new FacesRequest("/editContact.xhtml")
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{contact.firstName}", "Emmanuel");
setValue("#{contact.lastName}", "Bernard");
setValue("#{contact.city}", "Paris");
}
@Override
protected void invokeApplication() throws Exception
{
assert invokeMethod("#{contactHome.persist}").equals("persisted");
contactId = getValue("#{contactHome.id}").toString();
}
}.run();
new NonFacesRequest("/viewContact.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("contactId", contactId);
}
@Override
protected void renderResponse() throws Exception
{
assert getValue("#{contact.firstName}").equals("Emmanuel");
assert getValue("#{contact.lastName}").equals("Bernard");
assert getValue("#{contact.city}").equals("Paris");
}
}.run();
new FacesRequest("/viewContact.xhtml")
{
@Override
protected void beforeRequest()
{
setPageParameter( "contactId", new Long(contactId) );
}
@Override
protected void invokeApplication() throws Exception
{
assert invokeMethod("#{contactHome.remove}").equals("removed");
}
}.run();
}
}