1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.el;
20
21 import static org.easymock.EasyMock.eq;
22 import static org.easymock.EasyMock.expect;
23
24 import java.beans.FeatureDescriptor;
25 import java.util.ArrayList;
26 import java.util.Collections;
27 import java.util.Iterator;
28 import java.util.List;
29
30 import javax.el.ELContext;
31 import javax.el.ELResolver;
32
33 import org.easymock.IAnswer;
34 import org.easymock.classextension.EasyMock;
35 import org.easymock.classextension.IMocksControl;
36 import org.junit.Assert;
37 import org.junit.Before;
38 import org.junit.Test;
39
40
41
42
43
44 public class CompositeELResolverTest
45 {
46 private IMocksControl _mocksControl;
47 private ELContext _elContext;
48 private CompositeELResolver _testImpl;
49
50 @Before
51 public void setup()
52 {
53 _mocksControl = EasyMock.createControl();
54 _elContext = _mocksControl.createMock(ELContext.class);
55 _testImpl = new CompositeELResolver();
56 }
57
58 @Test
59 public void testFeatureDescriptorsIterator()
60 {
61 ELResolver notnullFDResolver = _mocksControl.createMock(ELResolver.class);
62 ELResolver emptyFDResolver = _mocksControl.createMock(ELResolver.class);
63 Object base = new Object();
64
65 _testImpl.add(notnullFDResolver);
66 _testImpl.add(emptyFDResolver);
67 _testImpl.add(notnullFDResolver);
68
69 final List<FeatureDescriptor> fds = new ArrayList<FeatureDescriptor>();
70 fds.add(new FeatureDescriptor());
71 fds.add(null);
72 fds.add(new FeatureDescriptor());
73 fds.add(null);
74 expect(notnullFDResolver.getFeatureDescriptors(eq(_elContext), eq(base))).andAnswer(
75 new IAnswer<Iterator<FeatureDescriptor>>()
76 {
77 public Iterator<FeatureDescriptor> answer() throws Throwable
78 {
79 return fds.iterator();
80 }
81 }).anyTimes();
82
83 List<FeatureDescriptor> emptyList = Collections.emptyList();
84 expect(emptyFDResolver.getFeatureDescriptors(eq(_elContext), eq(base))).andReturn(emptyList.iterator());
85
86 _mocksControl.replay();
87
88 Iterator<FeatureDescriptor> descriptors = _testImpl.getFeatureDescriptors(_elContext, base);
89
90 Assert.assertNotNull(descriptors);
91 Assert.assertEquals(true, descriptors.hasNext());
92 Assert.assertEquals(fds.get(0), descriptors.next());
93 Assert.assertEquals(true, descriptors.hasNext());
94 Assert.assertEquals(fds.get(2), descriptors.next());
95 Assert.assertEquals(true, descriptors.hasNext());
96 Assert.assertEquals(fds.get(0), descriptors.next());
97 Assert.assertEquals(true, descriptors.hasNext());
98 Assert.assertEquals(fds.get(2), descriptors.next());
99 Assert.assertEquals(false, descriptors.hasNext());
100
101 }
102 }