1 package org.springframework.richclient.form;
2
3 import java.text.Collator;
4
5 import java.util.Collections;
6 import java.util.Map;
7
8 import junit.framework.TestCase;
9
10 import org.springframework.richclient.form.binding.swing.ComboBoxBinder;
11
12 public class DefaultFormUIProviderTests extends TestCase {
13 private SimplePanel panel;
14 private Map context;
15
16 public void testGetComponent() {
17 DefaultFormUIProvider formUIProvider = new DefaultFormUIProvider(panel);
18
19 assertSame(panel, formUIProvider.getControl());
20 assertEquals(panel.getStringField(), formUIProvider.getComponent("stringProperty"));
21 assertEquals(panel.getComboBox(), formUIProvider.getComponent("comboProperty"));
22 assertEquals(panel.getCheckBox(), formUIProvider.getComponent("booleanProperty"));
23
24
25 assertEquals(panel.getNestedField(), formUIProvider.getComponent("nestedField"));
26 }
27
28 public void testBind() {
29 DefaultFormUIProvider formUIProvider = new DefaultFormUIProvider(panel);
30
31 TestableBindingFactory bindingFactory = new TestableBindingFactory();
32
33 String[] properties = { "stringProperty", "comboProperty", "booleanProperty" };
34 formUIProvider.setProperties(properties);
35
36 formUIProvider.setContext("comboProperty", context);
37
38 formUIProvider.bind(bindingFactory, null);
39 assertEquals(3, bindingFactory.getBindControlCount());
40
41
42 assertEquals("stringProperty", bindingFactory.getPropertyPaths().get(0));
43 assertEquals(panel.getStringField(), bindingFactory.getControls().get(0));
44 assertEquals(Collections.EMPTY_MAP, bindingFactory.getContexts().get(0));
45
46
47 assertEquals("comboProperty", bindingFactory.getPropertyPaths().get(1));
48 assertEquals(panel.getComboBox(), bindingFactory.getControls().get(1));
49 assertEquals(context, bindingFactory.getContexts().get(1));
50
51
52 assertEquals("booleanProperty", bindingFactory.getPropertyPaths().get(2));
53 assertEquals(panel.getCheckBox(), bindingFactory.getControls().get(2));
54 assertEquals(Collections.EMPTY_MAP, bindingFactory.getContexts().get(2));
55 }
56
57 protected void setUp() throws Exception {
58 panel = new SimplePanel();
59
60 context = Collections.singletonMap(ComboBoxBinder.COMPARATOR_KEY, Collator.getInstance());
61 }
62
63 public void testSetAndGetContext() {
64 DefaultFormUIProvider formUIProvider = new DefaultFormUIProvider(panel);
65
66 formUIProvider.setContext("comboProperty", context);
67
68 assertEquals(context, formUIProvider.getContext("comboProperty"));
69
70 assertNotNull("if no context provided, must return empty map", formUIProvider.getContext("stringProperty"));
71 assertTrue("if no context provided, must return empty map",
72 formUIProvider.getContext("stringProperty").isEmpty());
73 }
74 }