1   /*
2    * FilterEditorModelTest.java
3    * Created on 12 Июль 2006 г., 11:41
4    */
5   
6   package org.weda.model;
7   
8   import org.weda.ObjectStoreTestCase;
9   import org.weda.domain.Company;
10  import org.weda.enhance.InjectHivemindObject;
11  import org.weda.store.ObjectSource;
12  import org.weda.store.ObjectSourceRegistry;
13  
14  /**
15   *
16   * @author Mikhail Titov
17   */
18  public class FilterEditorModelTest extends ObjectStoreTestCase {
19      
20      public FilterEditorModelTest(String name) throws Exception {
21          super(name);
22      }
23      
24      public void test() throws Exception {
25          checkFilterGroup("company-filter");
26      }
27      
28      public void test_withNamesList() throws Exception {
29          checkFilterGroup("company-filter2");
30      }
31      
32      private void checkFilterGroup(String groupName) throws Exception{
33          ObjectSourceRegistry objectSourceRegistry = 
34                  (ObjectSourceRegistry)registry.getService(
35                      ObjectSourceRegistry.class);
36          EditorModelRegistry groupRegistry = 
37                  (EditorModelRegistry)registry.getService(
38                      EditorModelRegistry.class);
39          EditorModelGroup group = 
40                  groupRegistry.getEditorModelGroup(groupName);
41          assertNotNull(group);
42          EditorModel model = group.getEditorModel("name");
43          assertNotNull(model);
44          //
45          Company comp  = new Company();
46          comp.setName("comp1");
47          comp.setEmployeCount(10);
48          store.save(comp);
49          //
50          comp  = new Company();
51          comp.setName("comp2");
52          comp.setEmployeCount(100);
53          store.save(comp);
54          //
55          comp  = new Company();
56          comp.setName("comp3");
57          comp.setEmployeCount(100);
58          store.save(comp);
59          //
60          ObjectSource objectSource = 
61                  objectSourceRegistry.getObjectSource("company2");
62          objectSource.getQueryFilter().clearFiltersExpressions();
63          objectSource.refresh();
64          assertEquals(3, objectSource.getRowCount());
65          //
66          model.setValue("comp1");
67          objectSource.refresh();
68          assertEquals(1, objectSource.getRowCount());
69          assertEquals("comp1", model.getValue());
70          //
71          model.setValue(null);
72          objectSource.refresh();
73          assertEquals(3, objectSource.getRowCount());
74          //
75          EditorModel model2 = group.getEditorModel("employeCount");
76          assertNotNull(model2);
77          model2.setValue(10);
78          objectSource.refresh();
79          assertEquals(1, objectSource.getRowCount());
80          assertEquals(10, model2.getValue());
81          //
82          model2.setValue(">10");
83          objectSource.refresh();
84          assertEquals(2, objectSource.getRowCount());
85          model.setValue("comp2");
86          objectSource.refresh();
87          assertEquals(1, objectSource.getRowCount());                
88      }
89      
90  }