[jboss-cvs] jboss-seam/src/test/integration/src/org/jboss/seam/test/integration ...

Peter Muir peter at bleepbleep.org.uk
Tue Nov 20 08:42:59 EST 2007


  User: pmuir   
  Date: 07/11/20 08:42:59

  Modified:    src/test/integration/src/org/jboss/seam/test/integration  
                        testng.xml
  Added:       src/test/integration/src/org/jboss/seam/test/integration  
                        SeamMockELResolverTest.java
  Log:
  JBSEAM-2174
  
  Revision  Changes    Path
  1.10      +6 -0      jboss-seam/src/test/integration/src/org/jboss/seam/test/integration/testng.xml
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: testng.xml
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/test/integration/src/org/jboss/seam/test/integration/testng.xml,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -b -r1.9 -r1.10
  --- testng.xml	20 Nov 2007 12:38:54 -0000	1.9
  +++ testng.xml	20 Nov 2007 13:42:59 -0000	1.10
  @@ -57,4 +57,10 @@
      		    <class name="org.jboss.seam.test.integration.MessagingTest" />
           </classes>
       </test>
  +    
  +    <test name="Seam Core - Integration: Mocks">
  +        <classes>
  +          <class name="org.jboss.seam.test.integration.SeamMockELResolverTest" />
  +        </classes>
  +    </test>
   </suite>
  
  
  
  1.1      date: 2007/11/20 13:42:59;  author: pmuir;  state: Exp;jboss-seam/src/test/integration/src/org/jboss/seam/test/integration/SeamMockELResolverTest.java
  
  Index: SeamMockELResolverTest.java
  ===================================================================
  package org.jboss.seam.test.integration;
  
  import java.beans.FeatureDescriptor;
  import java.util.Iterator;
  
  import javax.el.ELContext;
  import javax.el.ELException;
  import javax.el.ELResolver;
  import javax.el.PropertyNotFoundException;
  import javax.el.PropertyNotWritableException;
  
  import org.jboss.seam.mock.SeamTest;
  import org.testng.annotations.Test;
  
  /**
   * Test for adding EL resolvers to Seam MockFacesContext
   * 
   * @author Pete Muir
   * 
   */
  public class SeamMockELResolverTest extends SeamTest
  {
     
     private static final String property = "customELResolverTest";
  
     @Override
     protected ELResolver[] getELResolvers()
     {
        ELResolver[] resolvers = new ELResolver[2];
        resolvers[0] = new ELResolver()
        {
  
           @Override
           public Class<?> getCommonPropertyType(ELContext arg0, Object arg1)
           {
              return null;
           }
  
           @Override
           public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext arg0, Object arg1)
           {
              return null;
           }
  
           @Override
           public Class<?> getType(ELContext arg0, Object base, Object property)
                    throws NullPointerException, PropertyNotFoundException, ELException
           {
              return null;
           }
  
           @Override
           public Object getValue(ELContext context, Object base, Object property)
                    throws NullPointerException, PropertyNotFoundException, ELException
           {
              if (SeamMockELResolverTest.property.equals(property))
              {
                 context.setPropertyResolved(true);
                 return "found";
              }
              return null;
           }
  
           @Override
           public boolean isReadOnly(ELContext arg0, Object base, Object property)
                    throws NullPointerException, PropertyNotFoundException, ELException
           {
              if (SeamMockELResolverTest.property.equals(property))
              {
                 return false;
              }
              return false;
           }
  
           @Override
           public void setValue(ELContext context, Object base, Object property, Object value)
                    throws NullPointerException, PropertyNotFoundException,
                    PropertyNotWritableException, ELException
           {
              if (SeamMockELResolverTest.property.equals(property))
              {
                 throw new PropertyNotWritableException();
              }
           }
  
        };
        resolvers[1] = new ELResolver() {
  
            @Override
            public Class<?> getCommonPropertyType(ELContext arg0, Object arg1)
            {
               return null;
            }
  
            @Override
            public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext arg0, Object arg1)
            {
               return null;
            }
  
            @Override
            public Class<?> getType(ELContext arg0, Object base, Object property)
                     throws NullPointerException, PropertyNotFoundException, ELException
            {
               return null;
            }
  
            @Override
            public Object getValue(ELContext context, Object base, Object property)
                     throws NullPointerException, PropertyNotFoundException, ELException
            {
               if (base != null && "className".equals(property))
               {
                  context.setPropertyResolved(true);
                  return base.getClass().getSimpleName();
               }
               return null;
            }
  
            @Override
            public boolean isReadOnly(ELContext arg0, Object base, Object property)
                     throws NullPointerException, PropertyNotFoundException, ELException
            {
               return true;
            }
  
            @Override
            public void setValue(ELContext context, Object base, Object property, Object value)
                     throws NullPointerException, PropertyNotFoundException,
                     PropertyNotWritableException, ELException
            {
               throw new PropertyNotWritableException();
            }
        };
        return resolvers;
     }
  
     @Test
     public void testCustomELResolver() throws Exception
     {
        new FacesRequest()
        {
           @Override
           protected void invokeApplication() throws Exception
           {
              assert "found".equals(getValue("#{" + property + "}"));
              assert "String".equals(getValue("#{" + property + ".className}"));
           }
        }.run();
     }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list