Package org.crank.web.message.jsf.support

Source Code of org.crank.web.message.jsf.support.JSFMessageProcessorTest

package org.crank.web.message.jsf.support;

import javax.faces.application.FacesMessage;

import org.apache.shale.testng.base.AbstractJsfTestCase;
import org.crank.metadata.ErrorHandlerData;
import org.crank.metadata.Severity;
import org.crank.web.message.jsf.support.JSFMessageProcessor;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.AssertJUnit.*;

public class JSFMessageProcessorTest extends AbstractJsfTestCase {
  private JSFMessageProcessor messageProcessorTest;
  private ErrorHandlerData errorHandler;

  @BeforeMethod
  protected void setUpObjectUnderTest() throws Exception {
    messageProcessorTest = new JSFMessageProcessor();
    errorHandler  = new ErrorHandlerData();
  }

  @Test
  public void testHandleExceptionForGlobalExceptions() {
    messageProcessorTest.handleException(new Exception("HELLO"), errorHandler);
    assertNotNull(facesContext.getMessages());
    FacesMessage facesMessage = (FacesMessage) facesContext.getMessages().next();
    assertEquals("HELLO", facesMessage.getDetail());
  }

  @DataProvider(name = "allSeverities")
  public Object[][] generateDivideData() {
   return new Object[][] {
                                           // useExcep, unsupported, useBundle, useBundle for args       
     { Severity.ERROR, FacesMessage.SEVERITY_ERROR,  true,  false, false, false},
     { Severity.FATAL, FacesMessage.SEVERITY_FATAL,  false, false, false, false},
     { Severity.INFO,  FacesMessage.SEVERITY_INFO,   true,  false, false, false},
     { Severity.WARN,  FacesMessage.SEVERITY_WARN,   false, false, false, false},
     { Severity.WARN,  FacesMessage.SEVERITY_WARN,   false, true,  true,  false},
     { Severity.WARN,  FacesMessage.SEVERITY_WARN,   false, true,  true,  false},
     { Severity.WARN,  FacesMessage.SEVERITY_WARN,   false, true,  false, true},
    
   };
 

  @Test(dataProvider="allSeverities")
  public void testSeverities(Severity crankSeverity, FacesMessage.Severity facesSeverity,
      boolean useExceptionMessage, boolean unsupported, boolean useMessageBundleForMessage,
      boolean useMessageBundleForArgs) {
   
    try {
      errorHandler.setSeverity(crankSeverity);
      errorHandler.setUseExceptionForDetail(useExceptionMessage);
      errorHandler.setUseMessageBundleForMessage(useMessageBundleForMessage);
      errorHandler.setUseMessageBundleForArgs(useMessageBundleForArgs);
      errorHandler.setId("foo");
      messageProcessorTest.handleException(new Exception("HELLO"), errorHandler);
      assertNotNull(facesContext.getMessages("foo"));
      FacesMessage facesMessage = (FacesMessage) facesContext.getMessages("foo").next();
      if (useExceptionMessage) {
        assertEquals("HELLO", facesMessage.getDetail());
      }else {
        assertEquals("Problem", facesMessage.getDetail());
      }
      //It seems the shale mock framework is broken or there is an issue with JSF RI.
      //Or I missed something.
      //assertEquals(facesSeverity, facesMessage.getSeverity());
    } catch (UnsupportedOperationException uoe) {
      assertTrue(unsupported);
    }
  }
 

}
TOP

Related Classes of org.crank.web.message.jsf.support.JSFMessageProcessorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.