/** * Creates a new mock request context with the provided flow execution context. To add request parameters to this * request, use the {@link #putRequestParameter(String, String)} method. * @param flowExecutionContext the flow execution context */ public MockRequestContext(FlowExecutionContext flowExecutionContext) { this.flowExecutionContext = flowExecutionContext; this.externalContext = new MockExternalContext(); this.messageContext = new DefaultMessageContext(); }
/** * Creates a new default message context. * @param messageSource the message source to resolve messages added to this context */ public DefaultMessageContext(MessageSource messageSource) { init(messageSource); }
private void init(MessageSource messageSource) { setMessageSource(messageSource); // create the 'null' source message list eagerly to ensure global messages are indexed first this.sourceMessages.get(null); }
public void testSaveRestoreMessages() { context.addMessage(new MessageBuilder().defaultText("Info").build()); context.addMessage(new MessageBuilder().error().defaultText("Error").build()); context.addMessage(new MessageBuilder().warning().source(this).code("message").build()); assertEquals(2, context.getMessagesBySource(null).length); assertEquals(1, context.getMessagesBySource(this).length); StateManageableMessageContext manageable = context; Serializable messages = manageable.createMessagesMemento(); context = new DefaultMessageContext(context.getMessageSource()); assertEquals(0, context.getAllMessages().length); manageable = context; manageable.restoreMessages(messages); assertEquals(2, context.getMessagesBySource(null).length); assertEquals(1, context.getMessagesBySource(this).length); }
public final void testMessagesAreSerializable() throws Exception { DefaultMessageContext messageContext = new DefaultMessageContext(); EasyMock.expect(this.requestContext.getMessageContext()).andStubReturn(messageContext); EasyMock.replay(this.requestContext); this.facesContext.addMessage("TESTID", new FacesMessage("summary1")); FacesMessage sourceMessage = this.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(this.requestContext); EasyMock.expect(this.requestContext.getMessageContext()).andStubReturn(messageContext); EasyMock.replay(this.requestContext); FacesContext newFacesContext = new FlowFacesContext(this.requestContext, this.jsf.facesContext()); assertSame(FacesContext.getCurrentInstance(), newFacesContext); FacesMessage gotMessage = newFacesContext.getMessages("TESTID").next(); assertEquals("summary2", gotMessage.getSummary()); assertEquals(FacesMessage.SEVERITY_FATAL, gotMessage.getSeverity()); }
public void testMessageSequencing() { context.addMessage(new MessageBuilder().defaultText("Info").build()); context.addMessage(new MessageBuilder().warning().source(this).code("message").build()); context.addMessage(new MessageBuilder().error().defaultText("Error").build()); Message[] messages = context.getAllMessages(); assertEquals("Info", messages[0].getText()); assertEquals("Error", messages[1].getText()); assertEquals("Hello world resolved!", messages[2].getText()); } }
public void testResolveMessage() { context.addMessage(new MessageBuilder().warning().source(this).code("message").build()); Message[] messages = context.getMessagesBySource(this); assertEquals(1, messages.length); assertEquals("Hello world resolved!", messages[0].getText()); assertEquals(Severity.WARNING, messages[0].getSeverity()); assertEquals(this, messages[0].getSource()); }
public void testNestedPath() { model = new BindingModel("nestedPathBean", new NestedPathBean(), expressionParser, conversionService, messages); model.pushNestedPath("nestedBean"); assertEquals("test", model.getFieldValue("datum1")); assertEquals("0", model.getFieldValue("datum2")); Class<?> clazz = model.getFieldType("datum2"); assertTrue(int.class.equals(clazz) || Integer.class.equals(clazz)); messages.addMessage(new MessageBuilder().source("nestedBean.datum2").error().defaultText("Error").build()); assertNotNull(model.getFieldErrors("datum2").get(0)); model.popNestedPath(); assertEquals("", model.getFieldValue("datum1")); }
public void testAddAllErrors() { MapBindingResult result = new MapBindingResult(new HashMap<>(), "object"); result.reject("bar", new Object[] { "boop" }, null); result.rejectValue("field", "bar", new Object[] { "boop" }, null); errors.addAllErrors(result); Message msg = context.getAllMessages()[0]; assertEquals(null, msg.getSource()); assertEquals("boop", msg.getText()); assertEquals(Severity.ERROR, msg.getSeverity()); msg = context.getAllMessages()[1]; assertEquals("field", msg.getSource()); assertEquals("boop", msg.getText()); assertEquals(Severity.ERROR, msg.getSeverity()); }
public void testCreateMessageContext() { context.addMessage(new MessageBuilder().defaultText("Hello world!").build()); Message[] messages = context.getAllMessages(); assertEquals(1, messages.length); assertEquals("Hello world!", messages[0].getText()); assertEquals(Severity.INFO, messages[0].getSeverity()); assertEquals(null, messages[0].getSource()); }
public void testResolveMessageWithMultipleCodes() { context.addMessage(new MessageBuilder().error().source(this).code("bogus").code("argmessage").arg("Keith") .defaultText("Hello world fallback!").build()); Message[] messages = context.getMessagesBySource(this); assertEquals(1, messages.length); assertEquals("Hello world Keith!", messages[0].getText()); assertEquals(Severity.ERROR, messages[0].getSeverity()); assertEquals(this, messages[0].getSource()); }
public void testGetFieldErrorsWildcard() { messages.addMessage(new MessageBuilder().source("datum2").error().defaultText("Error").build()); assertEquals(1, model.getFieldErrorCount("da*")); FieldError error = model.getFieldError("da*"); assertEquals(null, error.getCode()); assertEquals(null, error.getCodes()); assertEquals(null, error.getArguments()); assertEquals("Error", error.getDefaultMessage()); }
public void testGlobalError() { errors.rejectValue(null, "bar", new Object[] { "boop" }, null); Message msg = context.getAllMessages()[0]; assertEquals("", msg.getSource()); assertEquals("boop", msg.getText()); assertEquals(Severity.ERROR, msg.getSeverity()); }
/** * Convenience constructor that creates a new mock request context with the following defaults: * <ul> * <li>A mock flow execution context with a active session of flow "mockFlow" in state "mockState". * <li>A mock external context with the provided parameters set. * </ul> */ public MockRequestContext(ParameterMap requestParameterMap) { this.flowExecutionContext = new MockFlowExecutionContext(); this.externalContext = new MockExternalContext(requestParameterMap); this.messageContext = new DefaultMessageContext(); }
/** * Creates a new default message context. Defaults to a message source that simply resolves default text and cannot * resolve localized message codes. */ public DefaultMessageContext() { init(null); }
public void testResolveMessageDefaultText() { context.addMessage(new MessageBuilder().error().code("bogus").defaultText("Hello world fallback!").build()); Message[] messages = context.getAllMessages(); assertEquals(1, messages.length); assertEquals("Hello world fallback!", messages[0].getText()); assertEquals(Severity.ERROR, messages[0].getSeverity()); assertEquals(null, messages[0].getSource()); }
private void init(MessageSource messageSource) { setMessageSource(messageSource); // create the 'null' source message list eagerly to ensure global messages are indexed first this.sourceMessages.get(null); }
public void testGetFieldError() { messages.addMessage(new MessageBuilder().source("datum2").error().defaultText("Error").build()); assertEquals(1, model.getErrorCount()); assertEquals(1, model.getFieldErrorCount()); assertEquals(0, model.getGlobalErrorCount()); FieldError error = model.getFieldError("datum2"); assertEquals(null, error.getCode()); assertEquals(null, error.getCodes()); assertEquals(null, error.getArguments()); assertEquals("Error", error.getDefaultMessage()); // we dont track this assertEquals(null, error.getRejectedValue()); assertTrue(!error.isBindingFailure()); FieldError error2 = model.getFieldErrors().get(0); assertEquals(error, error2); }
public void testRejectValue() { errors.rejectValue("class", "foo"); errors.rejectValue("class", "bogus", "baz"); errors.rejectValue("class", "bar", new Object[] { "boop" }, null); Message msg = context.getAllMessages()[0]; assertEquals("class", msg.getSource()); assertEquals("bar", msg.getText()); assertEquals(Severity.ERROR, msg.getSeverity()); msg = context.getAllMessages()[1]; assertEquals("class", msg.getSource()); assertEquals("baz", msg.getText()); assertEquals(Severity.ERROR, msg.getSeverity()); msg = context.getAllMessages()[2]; assertEquals("class", msg.getSource()); assertEquals("boop", msg.getText()); assertEquals(Severity.ERROR, msg.getSeverity()); }
private MessageContext createMessageContext(MessageSource messageSource) { StateManageableMessageContext messageContext = new DefaultMessageContext(messageSource); Serializable messagesMemento = (Serializable) getFlashScope().extract("messagesMemento"); if (messagesMemento != null) { messageContext.restoreMessages(messagesMemento); } return messageContext; }