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
18
19
20
21
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 }