1 package org.weda.model;
2
3 import org.weda.ObjectStoreTestCase;
4 import org.weda.domain.Address;
5 import org.weda.domain.Company;
6 import org.weda.domain.Contract;
7 import org.weda.model.impl.ObjectSourceEditorModelGroup;
8 import org.weda.model.impl.ObjectSetEditorModel;
9 import org.weda.store.ObjectSource;
10 import org.weda.store.ObjectSourceRegistry;
11
12 /**
13 *
14 * @author tim
15 */
16 public class ObjectSourceEditorModelFactoryTest extends ObjectStoreTestCase {
17 EditorModelFactory fab;
18
19 public ObjectSourceEditorModelFactoryTest(String name) throws Exception {
20 super(name);
21 }
22
23 public void setUp() throws Exception{
24 super.setUp();
25 fab =
26 (EditorModelFactory)registry
27 .getService(
28 "org.weda.model.ObjectSourceEditorModelFactory"
29 , EditorModelFactory.class);
30 }
31
32 public void test_registry() throws Exception {
33 fab =
34 (EditorModelFactory)registry
35 .getService(
36 "org.weda.model.ObjectSourceEditorModelFactory"
37 , EditorModelFactory.class);
38 assertNotNull(fab);
39 ObjectSourceEditorModelGroup group = (ObjectSourceEditorModelGroup)
40 fab.getEditorModelGroups().get(0);
41 assertNotNull(group);
42 assertEquals("company", group.getName());
43
44 ObjectSetEditorModel model =
45 (ObjectSetEditorModel)group.getEditorModel("name");
46 assertNotNull(model);
47 assertEquals("name", model.getName());
48 assertEquals("name", model.getPropertyPath());
49 }
50
51 public void test_work() throws Exception {
52 ObjectSourceEditorModelGroup group = (ObjectSourceEditorModelGroup)
53 fab.getEditorModelGroups().get(0);
54 EditorModel model = group.getEditorModel("name");
55 }
56
57 public void test_valuesList() throws Exception {
58 ObjectSourceEditorModelGroup group = (ObjectSourceEditorModelGroup)
59 fab.getEditorModelGroups().get(0);
60 EditorModel model = group.getEditorModel("address");
61 assertNotNull(model);
62
63 ObjectSourceRegistry objectSourceReg =
64 (ObjectSourceRegistry)registry
65 .getService(ObjectSourceRegistry.class);
66 ObjectSource objectSource = objectSourceReg.getObjectSource("company2");
67 Company comp = new Company();
68 comp.setName("comp1");
69 store.save(comp);
70 objectSource.refresh();
71 objectSource.selectRow(0);
72 objectSource.beginModification();
73 assertTrue(model.hasValuesList());
74 assertEquals(1, model.getValuesList().length);
75
76 Address addr = new Address();
77 addr.setStreet("street");
78 store.save(addr);
79 assertEquals(1, model.getValuesList().length);
80 model.resetValuesList();
81 assertEquals(2, model.getValuesList().length);
82
83 addr = new Address();
84 addr.setStreet("street2");
85 store.save(addr);
86 assertEquals(2, model.getValuesList().length);
87 model.refreshValuesList();
88 assertEquals(3, model.getValuesList().length);
89
90 objectSource.saveModification();
91 }
92
93 public void test_detailObjectSources() throws Exception {
94 Company comp = new Company();
95 comp.setName("company1");
96 store.save(comp);
97 Contract cont = new Contract();
98 cont.setCompany(comp);
99 cont.setNum("#1 (company1)");
100 store.save(cont);
101 cont = new Contract();
102 cont.setCompany(comp);
103 cont.setNum("#2 (company1)");
104 store.save(cont);
105
106 Company comp2 = new Company();
107 comp2.setName("company2");
108 store.save(comp2);
109 cont = new Contract();
110 cont.setCompany(comp2);
111 cont.setNum("#1 (company2)");
112 store.save(cont);
113
114 ObjectSourceRegistry osReg =
115 (ObjectSourceRegistry)registry.getService(
116 ObjectSourceRegistry.class);
117 ObjectSource osCheck = osReg.getObjectSource("check2");
118 ObjectSource osCont = osReg.getObjectSource("contract");
119 EditorModelRegistry reg =
120 (EditorModelRegistry)registry.getService(
121 EditorModelRegistry.class);
122 EditorModelGroup group = reg.getEditorModelGroup("check2");
123 assertNotNull(group);
124 EditorModel companyModel = group.getEditorModel("company");
125
126 osCont.refresh();
127 assertEquals(3, osCont.getRowCount());
128
129 osCheck.createNewRow();
130 companyModel.getValue();
131 osCont.refresh();
132 assertEquals(3, osCont.getRowCount());
133
134 companyModel.setValue(comp);
135 osCont.refresh();
136 assertEquals(2, osCont.getRowCount());
137 group.clearModelValues();
138 osCont.refresh();
139 assertEquals(3, osCont.getRowCount());
140 osCheck.saveModification();
141
142 osCheck.refresh();
143 assertEquals(1, osCheck.getRowCount());
144 osCheck.selectRow(0);
145 osCheck.beginModification();
146 osCont.refresh();
147 assertEquals(3, osCont.getRowCount());
148
149 companyModel.getValue();
150 osCont.refresh();
151 assertEquals(2, osCont.getRowCount());
152
153 companyModel.setValue(comp2);
154 osCont.refresh();
155 assertEquals(1, osCont.getRowCount());
156 osCheck.saveModification();
157 group.clearModelValues();
158
159 osCont.refresh();
160 assertEquals(3, osCont.getRowCount());
161
162 }
163
164 }