SWF-1187 Applied patch attached to JIRA issue, polished unit test a little, and did some testing.

This commit is contained in:
Rossen Stoyanchev
2010-04-07 18:52:27 +00:00
parent 59a9067634
commit 5c5d1c322f
2 changed files with 69 additions and 2 deletions

View File

@@ -1,5 +1,10 @@
package org.springframework.faces.webflow;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -176,6 +181,41 @@ public class FlowFacesContextTests extends TestCase {
assertEquals(3, iterationCount);
}
public final void testMessagesAreSerializable() throws Exception {
DefaultMessageContext messageContext = new DefaultMessageContext();
EasyMock.expect(requestContext.getMessageContext()).andStubReturn(messageContext);
EasyMock.replay(new Object[] { requestContext });
facesContext.addMessage("TESTID", new FacesMessage("summary1"));
FacesMessage sourceMessage = (FacesMessage) facesContext.getMessages("TESTID").next();
sourceMessage.setSummary("summary2");
sourceMessage.setSeverity(FacesMessage.SEVERITY_FATAL);
Serializable mementoWrite = messageContext.createMessagesMemento();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(mementoWrite);
oos.flush();
byte[] byteArray = bos.toByteArray();
oos.close();
ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
ObjectInputStream ois = new ObjectInputStream(bis);
Serializable mementoRead = (Serializable) ois.readObject();
ois.close();
messageContext.restoreMessages(mementoRead);
EasyMock.reset(new Object[] { requestContext });
EasyMock.expect(requestContext.getMessageContext()).andStubReturn(messageContext);
EasyMock.replay(new Object[] { requestContext });
FacesContext newFacesContext = new FlowFacesContext(requestContext, jsf.facesContext());
assertSame(FacesContext.getCurrentInstance(), newFacesContext);
FacesMessage gotMessage = (FacesMessage) newFacesContext.getMessages("TESTID").next();
assertEquals("summary2", gotMessage.getSummary());
assertEquals(FacesMessage.SEVERITY_FATAL, gotMessage.getSeverity());
}
public final void testGetMaximumSeverity() {
messageContext = prepopulatedMessageContext;
EasyMock.expect(requestContext.getMessageContext()).andStubReturn(messageContext);