[jboss-cvs] jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test ...
Peter Muir
peter at bleepbleep.org.uk
Mon Oct 8 07:48:37 EDT 2007
User: pmuir
Date: 07/10/08 07:48:37
Modified: examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test
testng.xml BaseData.xml
Added: examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test
EditArtistTest.java DisplayDiscTest.java
LoginTest.java TestStrings.java
DisplayArtistTest.java EditDiscTest.java
Removed: examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test
EditTest.java DisplayTest.java
Log:
Second pass at Seamdiscs tests
Revision Changes Path
1.2 +25 -3 jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/testng.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: testng.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/testng.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- testng.xml 8 Oct 2007 10:34:08 -0000 1.1
+++ testng.xml 8 Oct 2007 11:48:37 -0000 1.2
@@ -1,12 +1,34 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SeamDiscs" verbose="2" parallel="false">
- <test name="SeamDiscs: Functional Tests">
+ <test name="SeamDiscs: Artist 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" />
+ <class name="org.jboss.seam.example.seamdiscs.test.DisplayArtistTest" />
+ <class name="org.jboss.seam.example.seamdiscs.test.EditArtistTest" />
</classes>
+
+ </test>
+
+ <test name="SeamDiscs: Disc Tests">
+
+ <parameter name="datasourceJndiName" value="java:/seamdiscsDatasource"/>
+
+ <classes>
+ <class name="org.jboss.seam.example.seamdiscs.test.DisplayDiscTest" />
+ <class name="org.jboss.seam.example.seamdiscs.test.EditDiscTest" />
+ </classes>
+
+ </test>
+
+ <test name="SeamDiscs: Login Test">
+
+ <parameter name="datasourceJndiName" value="java:/seamdiscsDatasource"/>
+
+ <classes>
+ <class name="org.jboss.seam.example.seamdiscs.test.LoginTest" />
+ </classes>
+
</test>
</suite>
1.2 +1 -1 jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/BaseData.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: BaseData.xml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/BaseData.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- BaseData.xml 8 Oct 2007 10:34:09 -0000 1.1
+++ BaseData.xml 8 Oct 2007 11:48:37 -0000 1.2
@@ -49,7 +49,7 @@
<DISC
id="4"
- name="The Freewheein' Bob Dylan"
+ name="The Freewheelin' Bob Dylan"
artist_id="3" />
<DISC
1.1 date: 2007/10/08 11:48:37; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/EditArtistTest.java
Index: EditArtistTest.java
===================================================================
/**
*
*/
package org.jboss.seam.example.seamdiscs.test;
import javax.el.PropertyNotFoundException;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
/**
* @author Pete Muir
*
*/
public class EditArtistTest 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 11:48:37; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/DisplayDiscTest.java
Index: DisplayDiscTest.java
===================================================================
package org.jboss.seam.example.seamdiscs.test;
import javax.faces.model.DataModel;
import org.jboss.seam.example.seamdiscs.model.Disc;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
public class DisplayDiscTest extends DBUnitSeamTest
{
@Override
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/example/seamdiscs/test/BaseData.xml")
);
}
@Test
public void testDisplayDiscs() throws Exception
{
new FacesRequest("/discs.xhtml")
{
@Override
protected void renderResponse() throws Exception
{
Object discs = getValue("#{discs.dataModel}");
assert discs instanceof DataModel;
DataModel dataModel = (DataModel) discs;
// Check for the correct number of results
assert dataModel.getRowCount() == 6;
// Check for correct ordering
assertDisc(dataModel, 0, "Blood on the Tracks", "Bob Dylan");
assertDisc(dataModel, 1, "Chavez Ravine", "Ry Cooder");
assertDisc(dataModel, 2, "Dark Side of the Moon", "Pink Floyd");
assertDisc(dataModel, 3, "Liege and Lief", "Fairport Convention");
assertDisc(dataModel, 4, "The Freewheelin' Bob Dylan", "Bob Dylan");
assertDisc(dataModel, 5, "The Wall", "Pink Floyd");
}
}.run();
}
@Test
public void testDisplayDisc() throws Exception
{
// TODO Test navigation, but need a MockNavigationHandler
new NonFacesRequest("/discs.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("actionOutcome", "disc");
setParameter("discId", "3");
}
@Override
protected void renderResponse() throws Exception
{
assert ((Integer) 3).equals(getValue("#{discHome.id}"));
Object object = null;
object = getValue("#{disc}");
assert object instanceof Disc;
Disc disc1 = (Disc) object;
assert "The Wall".equals(disc1.getName());
}
}.run();
}
private void assertDisc(DataModel dataModel, int row, String discName, String artistName)
{
dataModel.setRowIndex(row);
Object rowData = dataModel.getRowData();
assert rowData instanceof Disc;
Disc disc = (Disc) rowData;
assert discName.equals(disc.getName());
assert artistName.equals(disc.getArtist().getName());
}
}
1.1 date: 2007/10/08 11:48:37; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/LoginTest.java
Index: LoginTest.java
===================================================================
/**
*
*/
package org.jboss.seam.example.seamdiscs.test;
import static org.jboss.seam.example.seamdiscs.test.TestStrings.*;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
/**
* @author Pete Muir
*
*/
public class LoginTest extends DBUnitSeamTest {
@Override
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/example/seamdiscs/test/BaseData.xml")
);
}
@Test
public void testLogin() throws Exception
{
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", USERNAME);
setValue("#{identity.password}", PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert (Boolean) getValue("#{identity.loggedIn}");
}
}.run();
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", USERNAME);
setValue("#{identity.password}", WRONG_PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert !((Boolean) getValue("#{identity.loggedIn}"));
}
}.run();
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", WRONG_USERNAME);
setValue("#{identity.password}", PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert !((Boolean) getValue("#{identity.loggedIn}"));
}
}.run();
new FacesRequest("/login.xhtml")
{
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", WRONG_USERNAME);
setValue("#{identity.password}", WRONG_PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert !((Boolean) getValue("#{identity.loggedIn}"));
}
}.run();
}
}
1.1 date: 2007/10/08 11:48:37; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/TestStrings.java
Index: TestStrings.java
===================================================================
/**
*
*/
package org.jboss.seam.example.seamdiscs.test;
/**
* @author Pete Muir
*
*/
public class TestStrings {
public static final String USERNAME = "administrator";
public static final String PASSWORD = "administrator";
public static final String WRONG_USERNAME = "wrongUsername";
public static final String WRONG_PASSWORD = "wrongPassword";
public static final String DISC4_NAME = "The Freewheelin' Bob Dylan";
public static final String DISC4_NEW_DESCRIPTION = "A classic album";
public static final String NEW_DISC_NAME = "Pete Muir's Debut Album";
}
1.1 date: 2007/10/08 11:48:37; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/DisplayArtistTest.java
Index: DisplayArtistTest.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 DisplayArtistTest 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());
}
}
1.1 date: 2007/10/08 11:48:37; author: pmuir; state: Exp;jboss-seam/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/EditDiscTest.java
Index: EditDiscTest.java
===================================================================
/**
*
*/
package org.jboss.seam.example.seamdiscs.test;
import javax.el.PropertyNotFoundException;
import javax.faces.model.DataModel;
import static org.jboss.seam.example.seamdiscs.test.TestStrings.*;
import org.jboss.seam.example.seamdiscs.model.Disc;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
/**
* @author Pete Muir
*
*/
public class EditDiscTest extends DBUnitSeamTest{
@Override
protected void prepareDBUnitOperations() {
beforeTestOperations.add(
new DataSetOperation("org/jboss/seam/example/seamdiscs/test/BaseData.xml")
);
}
@Test
public void testEditDisc() throws Exception
{
final String cid = new FacesRequest("/disc.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("discId", "4");
setParameter("conversationPropagation", "join");
}
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", USERNAME);
setValue("#{identity.password}", PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert (Boolean) getValue("#{identity.loggedIn}");
assert ((Integer) 4).equals(getValue("#{discHome.id}"));
assert DISC4_NAME.equals(getValue("#{disc.name}"));
assert getValue("#{disc.description}") == null;
assert isLongRunningConversation();
assert (Boolean) getValue("#{discHome.managed}");
}
}.run();
new FacesRequest("/disc.xhtml", cid)
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{disc.description}", DISC4_NEW_DESCRIPTION);
assert isLongRunningConversation();
assert cid.equals(getConversationId());
}
@Override
protected void invokeApplication() throws Exception
{
assert "updated".equals(invokeAction("#{discHome.update}"));
}
@Override
protected void renderResponse() throws Exception
{
assert DISC4_NEW_DESCRIPTION.equals(getValue("#{disc.description"));
assert isLongRunningConversation();
}
}.run();
}
@Test
public void testAddDisc() throws Exception
{
final String cid = new FacesRequest("/disc.xhtml")
{
@Override
protected void beforeRequest()
{
setParameter("conversationPropagation", "join");
}
@Override
protected void updateModelValues() throws Exception {
setValue("#{identity.username}", USERNAME);
setValue("#{identity.password}", PASSWORD);
}
@Override
protected void invokeApplication() throws Exception
{
invokeAction("#{identity.login}");
}
@Override
protected void renderResponse() throws Exception
{
assert (Boolean) getValue("#{identity.loggedIn}");
assert null == getValue("#{discHome.id}");
assert null == getValue("#{disc.name}");
assert isLongRunningConversation();
assert (!(Boolean) getValue("#{discHome.managed}"));
}
}.run();
new FacesRequest("/disc.xhtml", cid)
{
@Override
protected void updateModelValues() throws Exception
{
setValue("#{disc.name}", NEW_DISC_NAME);
assert isLongRunningConversation();
}
@Override
protected void invokeApplication() throws Exception
{
assert "persisted".equals(invokeAction("#{discHome.persist}"));
}
@Override
protected void renderResponse() throws Exception
{
assert NEW_DISC_NAME.equals(getValue("#{disc.name}"));
}
}.run();
new FacesRequest("/discs.xhtml", cid)
{
@Override
protected void renderResponse() throws Exception
{
assert new Long("7").equals(getValue("#{discs.resultCount}"));
assertDisc((DataModel) getValue("#{discs.dataModel}"), 4, NEW_DISC_NAME);
assertDisc((DataModel) getValue("#{discs.dataModel}"), 5, DISC4_NAME);
}
}.run();
}
private void assertDisc(DataModel dataModel, int row, String discName)
{
dataModel.setRowIndex(row);
Object rowData = dataModel.getRowData();
assert rowData instanceof Disc;
Disc disc = (Disc) rowData;
assert discName.equals(disc.getName());
}
}
More information about the jboss-cvs-commits
mailing list