1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.grinder.console.swingui;
23
24 import java.util.Enumeration;
25
26 import javax.swing.event.ChangeEvent;
27 import javax.swing.event.ChangeListener;
28 import javax.swing.text.AttributeSet;
29 import javax.swing.text.DefaultStyledDocument;
30
31 import junit.framework.TestCase;
32 import net.grinder.testutility.RandomStubFactory;
33
34
35
36
37
38
39
40 public class TestIntegerField extends TestCase {
41
42 public void testBadConstruction() throws Exception {
43 try {
44 new IntegerField(11, 10);
45 fail("Expected IllegalArgumentException");
46 }
47 catch (IllegalArgumentException e) {
48 }
49
50 try {
51 new IntegerField(1, 0);
52 fail("Expected IllegalArgumentException");
53 }
54 catch (IllegalArgumentException e) {
55 }
56
57 try {
58 new IntegerField(3, -1);
59 fail("Expected IllegalArgumentException");
60 }
61 catch (IllegalArgumentException e) {
62 }
63 }
64
65 public void testGetAndSet() throws Exception {
66 final IntegerField field = new IntegerField(3, 7);
67
68 assertEquals(3, field.getValue());
69
70 try {
71 field.setValue(2);
72 fail("Expected IllegalArgumentException");
73 }
74 catch (IllegalArgumentException e) {
75 }
76
77 try {
78 field.setValue(8);
79 fail("Expected IllegalArgumentException");
80 }
81 catch (IllegalArgumentException e) {
82 }
83
84
85 field.setValue(7);
86 assertEquals(7, field.getValue());
87
88
89 field.setValue(3);
90 assertEquals(3, field.getValue());
91
92
93 field.setValue(4);
94 assertEquals(4, field.getValue());
95
96
97 final IntegerField field2 = new IntegerField(-1, 0);
98 assertEquals(-1, field2.getValue());
99 }
100
101 public void testNumberOfColumns() throws Exception {
102 assertEquals(1, new IntegerField(0, 1).getColumns());
103 assertEquals(1, new IntegerField(0, 9).getColumns());
104 assertEquals(2, new IntegerField(0, 10).getColumns());
105 assertEquals(2, new IntegerField(98, 99).getColumns());
106 assertEquals(3, new IntegerField(98, 100).getColumns());
107 assertEquals(5, new IntegerField(-1010, 1000).getColumns());
108 }
109
110 public void testSetText() throws Exception {
111 final IntegerField field = new IntegerField(10, 15);
112
113 field.setText("abc");
114 assertEquals(10, field.getValue());
115
116
117 field.setText("14");
118 assertEquals(14, field.getValue());
119 assertEquals("14", field.getText());
120
121
122 field.setText("20");
123 assertEquals("", field.getText());
124
125
126 field.setText("-");
127 assertEquals("", field.getText());
128 assertEquals(10, field.getValue());
129
130
131 final IntegerField field2 = new IntegerField(-10, 10);
132 field2.setText("-");
133 assertEquals("-", field2.getText());
134 assertEquals(-10, field2.getValue());
135
136 field2.setText("10");
137 assertEquals("10", field2.getText());
138 assertEquals(10, field2.getValue());
139 }
140
141 public void testChangeListener() throws Exception {
142 final IntegerField field = new IntegerField(0, 15);
143
144 final RandomStubFactory<ChangeListener> listenerStubFactory =
145 RandomStubFactory.create(ChangeListener.class);
146 field.addChangeListener(listenerStubFactory.getStub());
147
148
149 field.setText("10");
150 listenerStubFactory.assertSuccess("stateChanged", ChangeEvent.class);
151 listenerStubFactory.assertNoMoreCalls();
152
153
154 field.getDocument().remove(0, 1);
155 listenerStubFactory.assertSuccess("stateChanged", ChangeEvent.class);
156 listenerStubFactory.assertNoMoreCalls();
157
158
159
160
161 final IntegerField field2 = new IntegerField(0, 10);
162 final DefaultStyledDocument styledDocument = new DefaultStyledDocument();
163 field2.setDocument(styledDocument);
164 field2.addChangeListener(listenerStubFactory.getStub());
165 listenerStubFactory.assertNoMoreCalls();
166
167 final RandomStubFactory<AttributeSet> attributeSetStubFactory =
168 RandomStubFactory.create(AttributeSet.class);
169
170 attributeSetStubFactory.setResult("getAttributeNames",
171 new Enumeration<String>() {
172 public boolean hasMoreElements() { return false; }
173 public String nextElement() { return null; }
174 } );
175
176 styledDocument.setCharacterAttributes(
177 0, 1, attributeSetStubFactory.getStub(), false);
178 listenerStubFactory.assertSuccess("stateChanged", ChangeEvent.class);
179
180 listenerStubFactory.assertNoMoreCalls();
181 }
182 }