View Javadoc

1   package javax.faces.component;
2   
3   import java.lang.reflect.Method;
4   import java.util.Collection;
5   
6   import javax.el.ValueExpression;
7   import javax.faces.el.ValueBinding;
8   
9   import org.easymock.EasyMock;
10  import static org.easymock.EasyMock.*;
11  import org.easymock.IAnswer;
12  import static org.testng.Assert.*;
13  import org.testng.annotations.BeforeMethod;
14  import org.testng.annotations.Test;
15  
16  /**
17   * Created by IntelliJ IDEA.
18   * User: mathias
19   * Date: 18.03.2007
20   * Time: 01:22:43
21   * To change this template use File | Settings | File Templates.
22   */
23  public class UIComponentBaseValueBindingTest extends AbstractUIComponentBaseTest
24  {
25      private ValueBinding _valueBinding;
26  
27      @Override
28      @BeforeMethod(alwaysRun = true)
29      protected void setUp() throws Exception
30      {
31          super.setUp();
32          _valueBinding = _mocksControl.createMock(ValueBinding.class);
33      }
34  
35      @Override
36      protected Collection<Method> getMockedMethods() throws Exception
37      {
38          Collection<Method> mockedMethods = super.getMockedMethods();
39          mockedMethods.add(UIComponent.class.getDeclaredMethod("getValueExpression", new Class[]{String.class}));
40          mockedMethods.add(UIComponent.class.getDeclaredMethod("setValueExpression", new Class[]{String.class,
41                  ValueExpression.class}));
42          return mockedMethods;
43      }
44  
45      @Test
46      public void testGetValueBindingWOValueExpression() throws Exception
47      {
48          expect(_testImpl.getValueExpression(EasyMock.eq("xxx"))).andReturn(null);
49          _mocksControl.replay();
50          assertNull(_testImpl.getValueBinding("xxx"));
51      }
52  
53      @Test
54      public void testSetValueBinding() throws Exception
55      {
56          _testImpl.setValueExpression(EasyMock.eq("xxx"), EasyMock.isA(_ValueBindingToValueExpression.class));
57          expectLastCall().andAnswer(new IAnswer<Object>()
58          {
59              public Object answer() throws Throwable
60              {
61                  _ValueBindingToValueExpression ve = (_ValueBindingToValueExpression) EasyMock.getCurrentArguments()[1];
62                  assertEquals(_valueBinding, ve.getValueBinding());
63                  return null;
64              }
65          });
66          _mocksControl.replay();
67          _testImpl.setValueBinding("xxx", _valueBinding);
68      }
69  
70      @Test
71      public void testSetValueBindingWNullValue() throws Exception
72      {
73          _testImpl.setValueExpression(EasyMock.eq("xxx"), (ValueExpression) EasyMock.isNull());
74          _mocksControl.replay();
75          _testImpl.setValueBinding("xxx", null);
76      }
77  
78      @Test
79      public void testGetValueBindingWithVBToVE() throws Exception
80      {
81          ValueExpression valueExpression = new _ValueBindingToValueExpression(_valueBinding);
82          expect(_testImpl.getValueExpression(EasyMock.eq("xxx"))).andReturn(valueExpression);
83          _mocksControl.replay();
84          assertEquals(_valueBinding, _testImpl.getValueBinding("xxx"));
85      }
86  
87      @Test
88      public void testGetValueBindingFromVE() throws Exception
89      {
90          ValueExpression valueExpression = _mocksControl.createMock(ValueExpression.class);
91          expect(_testImpl.getValueExpression(EasyMock.eq("xxx"))).andReturn(valueExpression);
92          _mocksControl.replay();
93          ValueBinding valueBinding = _testImpl.getValueBinding("xxx");
94          assertNotNull(valueBinding);
95          assertTrue(valueBinding instanceof _ValueExpressionToValueBinding);
96          assertEquals(valueExpression, ((_ValueExpressionToValueBinding) valueBinding).getValueExpression());
97      }
98  }