1
2
3
4
5
6 package org.weda.model;
7
8 import org.weda.ObjectStoreTestCase;
9 import org.weda.domain.Company;
10 import org.weda.store.ObjectSource;
11 import org.weda.store.ObjectSourceRegistry;
12 import org.weda.store.actions.ObjectSourceRefreshAction;
13
14 /**
15 *
16 * @author Mikhail Titov
17 */
18 public class PageableTableModelTest extends ObjectStoreTestCase {
19
20 public PageableTableModelTest(String name) throws Exception {
21 super(name);
22 }
23
24 public void test() throws Exception {
25 checkPageableTableModel("pageable-company-view");
26 }
27
28 public void test1() throws Exception {
29 checkPageableTableModel("p_company2-view");
30 }
31
32 private void checkPageableTableModel(String pageableTableModelName)
33 throws Exception
34 {
35 store.deleteAll(Company.class);
36 TableModelRegistry modelReg =
37 (TableModelRegistry)registry.getService(
38 TableModelRegistry.class);
39 TableModel tableModel = modelReg.getTableModel(pageableTableModelName);
40 assertTrue(tableModel instanceof PageableTableModel);
41 PageableTableModel model = (PageableTableModel)tableModel;
42 TableModel model2 = modelReg.getTableModel("company2-view");
43 assertNotNull(model);
44 model.close();
45 model.setPageSize(5);
46 model.open();
47 PageableTableModelData data = model.getData();
48 assertEquals(0, data.getPageCount());
49 assertFalse(data.hasSummaryRow());
50 assertEquals(0, data.getRowCount());
51 assertEquals(0, data.getPageNumber());
52 data.setPageNumber(-1);
53 assertEquals(0, data.getPageNumber());
54 data.setPageNumber(1);
55 assertEquals(0, data.getPageNumber());
56
57 Company comp;
58 for (int i=0; i<5; ++i){
59 comp = new Company();
60 comp.setName("company "+i);
61 comp.setEmployeCount(1);
62 store.save(comp);
63 }
64 model.close();
65 model.open();
66 data = model.getData();
67 assertEquals(1, data.getPageCount());
68 assertTrue(data.hasSummaryRow());
69 assertEquals(5, data.getRowCount());
70 assertEquals(0, data.getPageNumber());
71 assertEquals(5l, data.getSummaryValueAt(3));
72 data.setPageNumber(-1);
73 assertEquals(0, data.getPageNumber());
74 data.setPageNumber(1);
75 assertEquals(0, data.getPageNumber());
76
77 comp = new Company();
78 comp.setName("company 5");
79 comp.setEmployeCount(1);
80 store.save(comp);
81
82 model.close();
83 model.open();
84 data = model.getData();
85 assertEquals(2, data.getPageCount());
86 assertFalse(data.hasSummaryRow());
87 assertEquals(5, data.getRowCount());
88 assertEquals(0, data.getPageNumber());
89 data.setPageNumber(-1);
90 assertEquals(0, data.getPageNumber());
91
92 data.setPageNumber(1);
93 assertEquals(1, data.getPageNumber());
94 assertEquals(1, data.getRowCount());
95 assertEquals(6l, data.getSummaryValueAt(3));
96
97 ObjectSourceRegistry osReg =
98 (ObjectSourceRegistry)
99 registry.getService(ObjectSourceRegistry.class);
100 ObjectSource os = osReg.getObjectSource("company2");
101 os.createNewRow();
102 os.getSelectedObjectSet().setValue("name", "company 6");
103 os.saveModification();
104 assertEquals(0, data.getPageNumber());
105
106
107 data.setPageNumber(0);
108 TableModelData data2 = model2.getData();
109 for (int i=0; i<5; ++i)
110 assertSame(data2.getValueAt(i, 0), data.getValueAt(i, 0));
111 data.setPageNumber(1);
112 assertSame(data2.getValueAt(5, 0), data.getValueAt(0, 0));
113 }
114
115 }