SWF-752 - FacesMessage.SEVERITY_FATAL does not propagate through FlowFacesContext
This commit is contained in:
@@ -38,6 +38,7 @@ import org.springframework.core.style.ToStringCreator;
|
||||
* </code>
|
||||
* </p>
|
||||
* @author Keith Donald
|
||||
* @author Jeremy Grelle
|
||||
*/
|
||||
public class MessageBuilder {
|
||||
|
||||
@@ -78,6 +79,15 @@ public class MessageBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Records that the message being built is a fatal message.
|
||||
* @return this, for fluent API usage
|
||||
*/
|
||||
public MessageBuilder fatal() {
|
||||
severity = Severity.FATAL;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Records that the message being built is against the provided source.
|
||||
* @param source the source generating the message
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.springframework.core.enums.StaticLabeledEnum;
|
||||
* Enum exposing supported message severities.
|
||||
*
|
||||
* @author Keith Donald
|
||||
* @author Jeremy Grelle
|
||||
* @see Message
|
||||
*/
|
||||
public class Severity extends StaticLabeledEnum {
|
||||
@@ -37,10 +38,15 @@ public class Severity extends StaticLabeledEnum {
|
||||
public static final Severity WARNING = new Severity(1, "Warning");
|
||||
|
||||
/**
|
||||
* THe "Error" severity. Used to indicate a significant problem like a business rule violation.
|
||||
* The "Error" severity. Used to indicate a significant problem like a business rule violation.
|
||||
*/
|
||||
public static final Severity ERROR = new Severity(2, "Error");
|
||||
|
||||
/**
|
||||
* The "Fatal" severity. Used to indicate a fatal problem like a system error.
|
||||
*/
|
||||
public static final Severity FATAL = new Severity(3, "Fatal");
|
||||
|
||||
private Severity(int code, String label) {
|
||||
super(code, label);
|
||||
}
|
||||
|
||||
@@ -26,6 +26,14 @@ public class MessageBuilderTests extends TestCase {
|
||||
assertNull(message.getSource());
|
||||
}
|
||||
|
||||
public void testBuildFatal() {
|
||||
MessageResolver resolver = builder.fatal().defaultText("foo").build();
|
||||
Message message = resolver.resolveMessage(messageSource, locale);
|
||||
assertEquals("foo", message.getText());
|
||||
assertEquals(Severity.FATAL, message.getSeverity());
|
||||
assertNull(message.getSource());
|
||||
}
|
||||
|
||||
public void testBuildError() {
|
||||
MessageResolver resolver = builder.error().defaultText("foo").build();
|
||||
Message message = resolver.resolveMessage(messageSource, locale);
|
||||
|
||||
@@ -120,9 +120,12 @@ public class FlowFacesContext extends FacesContext {
|
||||
} else if (message.getSeverity() == FacesMessage.SEVERITY_WARN) {
|
||||
summaryResolver = new MessageBuilder().source(summarySource).defaultText(summaryText.toString()).warning()
|
||||
.build();
|
||||
} else {
|
||||
} else if (message.getSeverity() == FacesMessage.SEVERITY_ERROR) {
|
||||
summaryResolver = new MessageBuilder().source(summarySource).defaultText(summaryText.toString()).error()
|
||||
.build();
|
||||
} else {
|
||||
summaryResolver = new MessageBuilder().source(summarySource).defaultText(summaryText.toString()).fatal()
|
||||
.build();
|
||||
}
|
||||
context.getMessageContext().addMessage(summaryResolver);
|
||||
|
||||
@@ -138,9 +141,12 @@ public class FlowFacesContext extends FacesContext {
|
||||
} else if (message.getSeverity() == FacesMessage.SEVERITY_WARN) {
|
||||
detailResolver = new MessageBuilder().source(detailSource).defaultText(detailText.toString()).warning()
|
||||
.build();
|
||||
} else {
|
||||
} else if (message.getSeverity() == FacesMessage.SEVERITY_ERROR) {
|
||||
detailResolver = new MessageBuilder().source(detailSource).defaultText(detailText.toString()).error()
|
||||
.build();
|
||||
} else {
|
||||
detailResolver = new MessageBuilder().source(detailSource).defaultText(detailText.toString()).fatal()
|
||||
.build();
|
||||
}
|
||||
context.getMessageContext().addMessage(detailResolver);
|
||||
|
||||
@@ -168,7 +174,7 @@ public class FlowFacesContext extends FacesContext {
|
||||
if (message.getSeverity().getOrdinal() > max.getOrdinal()) {
|
||||
max = message.getSeverity();
|
||||
}
|
||||
if (max.getOrdinal() == FacesMessage.SEVERITY_ERROR.getOrdinal())
|
||||
if (max.getOrdinal() == FacesMessage.SEVERITY_FATAL.getOrdinal())
|
||||
break;
|
||||
}
|
||||
return max;
|
||||
@@ -281,8 +287,10 @@ public class FlowFacesContext extends FacesContext {
|
||||
return new FacesMessage(FacesMessage.SEVERITY_INFO, summaryMessage.getText(), detailMessage.getText());
|
||||
} else if (summaryMessage.getSeverity() == Severity.WARNING) {
|
||||
return new FacesMessage(FacesMessage.SEVERITY_WARN, summaryMessage.getText(), detailMessage.getText());
|
||||
} else {
|
||||
} else if (summaryMessage.getSeverity() == Severity.ERROR) {
|
||||
return new FacesMessage(FacesMessage.SEVERITY_ERROR, summaryMessage.getText(), detailMessage.getText());
|
||||
} else {
|
||||
return new FacesMessage(FacesMessage.SEVERITY_FATAL, summaryMessage.getText(), detailMessage.getText());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ public class FlowFacesContextTests extends TestCase {
|
||||
assertNotNull(i.next());
|
||||
iterationCount++;
|
||||
}
|
||||
assertEquals("There should be 4 messages to iterate", 4, iterationCount);
|
||||
assertEquals("There should be 5 messages to iterate", 5, iterationCount);
|
||||
}
|
||||
|
||||
public final void testGetMessagesByClientId_ForComponent() {
|
||||
@@ -158,7 +158,7 @@ public class FlowFacesContextTests extends TestCase {
|
||||
EasyMock.expect(requestContext.getMessageContext()).andStubReturn(messageContext);
|
||||
EasyMock.replay(new Object[] { requestContext });
|
||||
|
||||
assertEquals(FacesMessage.SEVERITY_ERROR, facesContext.getMaximumSeverity());
|
||||
assertEquals(FacesMessage.SEVERITY_FATAL, facesContext.getMaximumSeverity());
|
||||
}
|
||||
|
||||
private void setupMessageContext() {
|
||||
@@ -177,6 +177,8 @@ public class FlowFacesContextTests extends TestCase {
|
||||
.build());
|
||||
prepopulatedMessageContext.addMessage(new MessageBuilder().source("null_detail").defaultText("baz").error()
|
||||
.build());
|
||||
prepopulatedMessageContext.addMessage(new MessageBuilder().defaultText("Subzero Wins - Fatality").fatal()
|
||||
.build());
|
||||
}
|
||||
|
||||
private class TestGetMessagesContext implements MessageContext {
|
||||
|
||||
Reference in New Issue
Block a user