[jboss-cvs] jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test ...
Peter Muir
peter at bleepbleep.org.uk
Mon Oct 8 06:34:09 EDT 2007
User: pmuir
Date: 07/10/08 06:34:09
Added: examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test
testng.xml BaseData.xml EditTest.java
DisplayTest.java
Log:
First pass at tests for SeamDiscs
Revision Changes Path
1.1 date: 2007/10/08 10:34:08; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/testng.xml
Index: testng.xml
===================================================================
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SeamDiscs" verbose="2" parallel="false">
<test name="SeamDiscs: Functional Tests">
<parameter name="datasourceJndiName" value="java:/seamdiscsDatasource"/>
<classes>
<class name="org.jboss.seam.example.seamdiscs.test.DisplayTest" />
<class name="org.jboss.seam.example.seamdiscs.test.EditTest" />
</classes>
</test>
</suite>
1.1 date: 2007/10/08 10:34:09; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/BaseData.xml
Index: BaseData.xml
===================================================================
<?xml version="1.0"?>
<dataset>
<ARTIST
id="1"
dtype="Band"
name="Pink Floyd" />
<ARTIST
id="2"
dtype="Band"
name="Fairport Convention" />
<ARTIST
id="3"
dtype="Artist"
name="Bob Dylan" />
<ARTIST
id="4"
dtype="Band"
name="Led Zepplin" />
<ARTIST
id="5"
dtype="Artist"
name="Ry Cooder" />
<ARTIST
id="6"
dtype="Artist"
name="Richard Thompson" />
<DISC
id="1"
name="Dark Side of the Moon"
artist_id="1" />
<DISC
id="2"
name="Liege and Lief"
artist_id="2" />
<DISC
id="3"
name="The Wall"
artist_id="1" />
<DISC
id="4"
name="The Freewheein' Bob Dylan"
artist_id="3" />
<DISC
id="5"
name="Blood on the Tracks"
artist_id="3" />
<DISC
id="6"
name="Chavez Ravine"
artist_id="5" />
<BANDMEMBER
id="1"
name="Syd Barett"
band_id="1" />
<BANDMEMBER
id="2"
name="David Gilmour"
band_id="1" />
<BANDMEMBER
id="3"
name="Roger Waters"
band_id="1" />
<USER
id="1"
username="administrator"
password="administrator" />
</dataset>
1.1 date: 2007/10/08 10:34:09; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/EditTest.java
Index: EditTest.java
===================================================================
/**
*
*/
package org.jboss.seam.example.seamdiscs.test;
import javax.el.PropertyNotFoundException;
import org.jboss.seam.framework.EntityHome;
import org.jboss.seam.framework.Home;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
/**
* @author Pete Muir
*
*/
public class EditTest extends DBUnitSeamTest{
private static final String NEW_DESCRIPTION_1 = "A great band";
@Override
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/example/seamdiscs/test/BaseData.xml")
);
}
@Test
public void testEditArtist() throws Exception
{
final String cid = new FacesRequest("/artist.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("artistId", "1");
setParameter("conversationPropagation", "join");
}
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", "administrator");
setValue("#{identity.password}", "administrator");
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert (Boolean) getValue("#{identity.loggedIn}");
assert ((Integer) 1).equals(getValue("#{artistHome.id}"));
assert "Pink Floyd".equals(getValue("#{artist.name}"));
assert getValue("#{artist.description}") == null;
assert isLongRunningConversation();
assert (Boolean) getValue("#{artistHome.managed}");
}
}.run();
new FacesRequest("/artist.xhtml", cid)
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{artist.description}", NEW_DESCRIPTION_1);
assert isLongRunningConversation();
assert cid.equals(getConversationId());
}
@Override
protected void invokeApplication() throws Exception
{
assert "updated".equals(invokeAction("#{artistHome.update}"));
}
@Override
protected void renderResponse() throws Exception
{
assert NEW_DESCRIPTION_1.equals(getValue("#{artist.description"));
assert isLongRunningConversation();
}
}.run();
}
@Test
public void testAddArtist() throws Exception
{
final String cid = new FacesRequest("/artist.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("conversationPropagation", "join");
}
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", "administrator");
setValue("#{identity.password}", "administrator");
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert (Boolean) getValue("#{identity.loggedIn}");
assert null == getValue("#{artistHome.id}");
assert null == getValue("#{artist.name}");
assert isLongRunningConversation();
assert (!(Boolean) getValue("#{artistHome.managed}"));
}
}.run();
new FacesRequest("/artist.xhtml", cid)
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{artist.name}", "Pete Muir");
assert isLongRunningConversation();
}
@Override
protected void invokeApplication() throws Exception
{
assert "persisted".equals(invokeAction("#{artistHome.persist}"));
}
@Override
protected void renderResponse() throws Exception
{
assert "Pete Muir".equals(getValue("#{artist.name}"));
}
}.run();
new FacesRequest("/artists.xhtml", cid)
{
@Override
protected void renderResponse() throws Exception
{
assert new Long("7").equals(getValue("#{artists.resultCount}"));
assert "Pete Muir".equals(getValue("#{artists.resultList[3].name}"));
assert "Led Zepplin".equals(getValue("#{artists.resultList[4].name}"));
}
}.run();
}
@Test
public void testAddBand() throws Exception
{
final String cid = new FacesRequest("/artist.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("conversationPropagation", "join");
}
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", "administrator");
setValue("#{identity.password}", "administrator");
setValue("#{artistHome.type}", "band");
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert (Boolean) getValue("#{identity.loggedIn}");
assert null == getValue("#{artistHome.id}");
assert null == getValue("#{artist.name}");
try
{
assert ((Integer) 0).equals(getValue("#{artist.bandMembers.size}"));
}
catch (PropertyNotFoundException e)
{
assert false;
}
assert isLongRunningConversation();
assert (!(Boolean) getValue("#{artistHome.managed}"));
}
}.run();
new FacesRequest("/artist.xhtml", cid)
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{artist.name}", "Pete Muir's Band");
assert isLongRunningConversation();
}
@Override
protected void invokeApplication() throws Exception
{
assert "persisted".equals(invokeAction("#{artistHome.persist}"));
}
@Override
protected void renderResponse() throws Exception
{
assert "Pete Muir's Band".equals(getValue("#{artist.name}"));
assert ((Integer) 0).equals("#{artist.bandMembers.size}");
}
}.run();
new FacesRequest("/artists.xhtml", cid)
{
@Override
protected void renderResponse() throws Exception
{
assert new Long("7").equals(getValue("#{artists.resultCount}"));
assert "Pete Muir's Band".equals(getValue("#{artists.resultList[3].name}"));
assert "Led Zepplin".equals(getValue("#{artists.resultList[4].name}"));
}
}.run();
}
@Test
public void testAddBandMember() throws Exception
{
final String cid = new FacesRequest("/artist.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("artistId", "1");
setParameter("conversationPropagation", "join");
}
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", "administrator");
setValue("#{identity.password}", "administrator");
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert "Pink Floyd".equals(getValue("#{artist.name}"));
assert ((Integer) 3).equals(getValue("#{artist.bandMembers.size}"));
}
}.run();
new FacesRequest("/artist.xhtml", cid)
{
@Override
protected void invokeApplication() throws Exception
{
assert null == invokeAction("#{artistHome.addBandMember}");
}
@Override
protected void renderResponse() throws Exception
{
assert ((Integer) 4).equals(getValue("#{artist.bandMembers.size}"));
}
}.run();
new FacesRequest("/artist.xhtml", cid)
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{artist.bandMembers[3].name}", "Pete Muir");
}
@Override
protected void invokeApplication() throws Exception
{
assert "updated" == invokeAction("#{artistHome.update}");
}
@Override
protected void renderResponse() throws Exception
{
assert ((Integer) 4).equals(getValue("#{artist.size}"));
assert "Pete Muir".equals(getValue("#{artist.bandMembers[3].name}"));
}
}.run();
}
}
1.1 date: 2007/10/08 10:34:09; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/DisplayTest.java
Index: DisplayTest.java
===================================================================
package org.jboss.seam.example.seamdiscs.test;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.DataModel;
import org.apache.myfaces.trinidad.model.CollectionModel;
import org.apache.myfaces.trinidad.model.SortCriterion;
import org.jboss.seam.example.seamdiscs.model.Artist;
import org.jboss.seam.example.seamdiscs.model.Band;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
public class DisplayTest extends DBUnitSeamTest
{
@Override
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/example/seamdiscs/test/BaseData.xml")
);
}
@Test
public void testDisplayArtists() throws Exception
{
new FacesRequest("/artists.xhtml")
{
@Override
protected void renderResponse() throws Exception
{
Object artists = getValue("#{artists.dataModel}");
assert artists instanceof DataModel;
DataModel artistsDataModel = (DataModel) artists;
// Check for the correct number of results
assert artistsDataModel.getRowCount() == 6;
// Check for correct ordering
assertArtist(artistsDataModel, 0, "Ry Cooder");
assertArtist(artistsDataModel, 1, "Richard Thompson");
assertArtist(artistsDataModel, 2, "Pink Floyd");
assertArtist(artistsDataModel, 3, "Led Zepplin");
assertArtist(artistsDataModel, 4, "Fairport Convention");
assertArtist(artistsDataModel, 5, "Bob Dylan");
}
}.run();
}
@Test
public void testSeamCollectionModel() throws Exception
{
new FacesRequest("/artists.xhtml")
{
@Override
protected void renderResponse() throws Exception
{
Object artists = getValue("#{artists.dataModel}");
assert artists instanceof CollectionModel;
CollectionModel collectionModel = (CollectionModel) artists;
// Reorder the list
List<SortCriterion> criteria = new ArrayList<SortCriterion>();
criteria.add(new SortCriterion("artist.name", true));
collectionModel.setSortCriteria(criteria);
// Check for correct ordering
assertArtist(collectionModel, 5, "Ry Cooder");
assertArtist(collectionModel, 4, "Richard Thompson");
assertArtist(collectionModel, 3, "Pink Floyd");
assertArtist(collectionModel, 2, "Led Zepplin");
assertArtist(collectionModel, 1, "Fairport Convention");
assertArtist(collectionModel, 0, "Bob Dylan");
}
}.run();
}
@Test
public void testDisplayArtist() throws Exception
{
// TODO Test navigation, but need a MockNavigationHandler
new NonFacesRequest("/artists.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("actionOutcome", "artist");
setParameter("artistId", "1");
}
@Override
protected void renderResponse() throws Exception
{
assert ((Integer) 1).equals(getValue("#{artistHome.id}"));
Object object = null;
object = getValue("#{artist}");
assert object instanceof Band;
Band artist1 = (Band) object;
assert "Pink Floyd".equals(artist1.getName());
assert artist1.getBandMembers().size() == 3;
}
}.run();
}
private void assertArtist(DataModel dataModel, int row, String name)
{
dataModel.setRowIndex(row);
Object rowData = dataModel.getRowData();
assert rowData instanceof Artist;
Artist artist = (Artist) rowData;
assert name.equals(artist.getName());
}
}
More information about the jboss-cvs-commits
mailing list