1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.binding.value.swing;
17
18 import org.springframework.binding.support.TestPropertyChangeListener;
19 import org.springframework.binding.value.ValueModel;
20 import org.springframework.binding.value.support.ValueHolder;
21 import org.springframework.richclient.test.SpringRichTestCase;
22
23
24
25
26
27
28 public class FocusLostTextComponentAdapterTests extends SpringRichTestCase {
29
30 private ValueModel valueModel;
31
32 private TestPropertyChangeListener valueListener;
33
34 private TestableJTextComponent comp;
35
36 public void doSetUp() throws Exception {
37 valueModel = new ValueHolder("");
38 valueListener = new TestPropertyChangeListener(ValueModel.VALUE_PROPERTY);
39 valueModel.addValueChangeListener(valueListener);
40 comp = new TestableJTextComponent();
41 new FocusLostTextComponentAdapter(comp, valueModel);
42 }
43
44 public void testComponentChangeDoesNotUpdateValueModel() {
45 comp.setText("newValue");
46 assertTrue(!valueModel.getValue().equals("newValue"));
47 assertEquals(0, valueListener.eventCount());
48 }
49
50 public void testValueModelChangeUpdatesComponent() {
51 valueModel.setValue("newValue");
52 assertEquals("newValue", comp.getText());
53 assertEquals(1, valueListener.eventCount());
54 }
55
56 public void testFocusChangeUpdatesValueModel() {
57 comp.typeText("a");
58 assertEquals("", valueModel.getValue());
59 assertEquals(0, valueListener.eventCount());
60
61 comp.gainFocus();
62 comp.typeText("b");
63 assertEquals("", valueModel.getValue());
64 assertEquals(0, valueListener.eventCount());
65
66 comp.loseFocus();
67 assertEquals("ab", valueModel.getValue());
68 assertEquals(1, valueListener.eventCount());
69 }
70 }