1 package javax.faces.component;
2
3 import java.util.Arrays;
4 import java.util.Collection;
5 import java.util.Date;
6
7 import javax.faces.event.ActionListener;
8 import javax.faces.event.FacesListener;
9 import javax.faces.event.ValueChangeListener;
10
11 import static org.testng.Assert.*;
12
13 import org.testng.annotations.BeforeMethod;
14 import org.testng.annotations.Test;
15
16
17
18
19
20
21
22
23 public class UIComponentBaseFacesListenerTest extends AbstractUIComponentBaseTest
24 {
25 private ActionListener _actionListener;
26 private ValueChangeListener _valueChangeListener;
27
28 @Override
29 @BeforeMethod
30 protected void setUp() throws Exception
31 {
32 super.setUp();
33 _actionListener = _mocksControl.createMock(ActionListener.class);
34 _valueChangeListener = _mocksControl.createMock(ValueChangeListener.class);
35 }
36
37 @Test(expectedExceptions = {NullPointerException.class})
38 public void testArgNPE() throws Exception
39 {
40 _testImpl.getFacesListeners(null);
41 }
42
43 @Test(expectedExceptions = {IllegalArgumentException.class})
44 public void testInvalidListenerType() throws Exception
45 {
46 _testImpl.getFacesListeners(Date.class);
47 }
48
49 @Test
50 public void testEmptyListener() throws Exception
51 {
52 FacesListener[] listener = _testImpl.getFacesListeners(ActionListener.class);
53 assertNotNull(listener);
54 assertEquals(0, listener.length);
55 }
56
57 @Test
58 public void testGetFacesListeners()
59 {
60 _testImpl.addFacesListener(_actionListener);
61
62 FacesListener[] listener = _testImpl.getFacesListeners(ValueChangeListener.class);
63 assertNotNull(listener);
64 assertEquals(0, listener.length);
65 assertTrue(ValueChangeListener.class.equals(listener.getClass().getComponentType()));
66
67 _testImpl.addFacesListener(_valueChangeListener);
68
69 listener = _testImpl.getFacesListeners(FacesListener.class);
70 assertNotNull(listener);
71 assertEquals(2, listener.length);
72 Collection<FacesListener> col = Arrays.asList(listener);
73 assertTrue(col.contains(_actionListener));
74 assertTrue(col.contains(_valueChangeListener));
75 }
76
77 @Test(expectedExceptions = {NullPointerException.class})
78 public void testRemoveFacesListenerArgNPE() throws Exception
79 {
80 _testImpl.removeFacesListener(null);
81 }
82
83 @Test
84 public void testRemoveFacesListener() throws Exception
85 {
86 _testImpl.addFacesListener(_actionListener);
87 assertEquals(_actionListener, _testImpl.getFacesListeners(FacesListener.class)[0]);
88 _testImpl.removeFacesListener(_actionListener);
89 assertEquals(0, _testImpl.getFacesListeners(FacesListener.class).length);
90 }
91 }