1 7 8 package org.netbeans.modules.web.jsf.xdm.model; 9 10 import java.io.File ; 11 import java.net.URI ; 12 import java.net.URL ; 13 import java.util.Collection ; 14 import java.util.Iterator ; 15 import java.util.List ; 16 import java.util.logging.Level ; 17 import java.util.logging.Logger ; 18 import junit.framework.*; 19 import org.netbeans.junit.NbTestCase; 20 import org.netbeans.modules.web.jsf.api.facesmodel.Converter; 21 import org.netbeans.modules.web.jsf.api.facesmodel.FacesConfig; 22 import org.netbeans.modules.web.jsf.api.facesmodel.JSFConfigComponentFactory; 23 import org.netbeans.modules.web.jsf.api.facesmodel.JSFConfigModel; 24 import org.netbeans.modules.web.jsf.api.facesmodel.JSFConfigModel; 25 import org.netbeans.modules.web.jsf.api.facesmodel.JSFConfigModelFactory; 26 import org.netbeans.modules.web.jsf.api.facesmodel.JSFVersion; 27 import org.netbeans.modules.web.jsf.api.facesmodel.ManagedBean; 28 import org.netbeans.modules.web.jsf.api.facesmodel.NavigationCase; 29 import org.netbeans.modules.web.jsf.api.facesmodel.NavigationRule; 30 import org.netbeans.modules.web.jsf.impl.facesmodel.JSFConfigModelImpl; 31 import org.netbeans.modules.xml.xam.ModelSource; 32 import org.netbeans.modules.xml.xam.dom.AbstractDocumentModel; 33 import org.netbeans.modules.xml.xam.dom.DocumentModel; 34 import org.openide.filesystems.FileObject; 35 import org.openide.filesystems.FileUtil; 36 37 41 public class JSFConfigModelTest extends NbTestCase { 42 43 public JSFConfigModelTest(String testName) { 44 super(testName); 45 } 46 47 48 @Override 49 protected Level logLevel() { 50 return Level.INFO; 51 } 52 53 protected void setUp() throws Exception { 54 Logger.getLogger(JSFConfigModelImpl.class.getName()).setLevel(Level.FINEST); 55 } 56 57 protected void tearDown() throws Exception { 58 } 59 60 public static Test suite() { 61 TestSuite suite = new TestSuite(JSFConfigModelTest.class); 62 return suite; 63 } 64 65 public void testReadJSFVersion1_1() throws Exception { 66 JSFConfigModel model = Util.loadRegistryModel("faces-config-01.xml"); 67 FacesConfig facesConfig = model.getRootComponent(); 68 assertNotNull(facesConfig); 69 System.out.println("facesConfig: " + facesConfig); 70 Collection <ManagedBean> managedBeans = facesConfig.getManagedBeans(); 71 for (ManagedBean elem : managedBeans) { 72 System.out.println(elem.getManagedBeanName() + ", " + elem.getManagedBeanClass() + ", " + elem.getManagedBeanScope()); 73 } 74 } 75 76 public void testReadJSFJPAExample() throws Exception { 77 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 78 FacesConfig facesConfig = model.getRootComponent(); 79 assertNotNull(facesConfig); 80 Collection <ManagedBean> managedBeans = facesConfig.getManagedBeans(); 82 assertEquals("Number of managed beans ", 1, managedBeans.size()); 83 ManagedBean managedBean = managedBeans.iterator().next(); 84 assertEquals("ManagedBean name ", "usermanager", managedBean.getManagedBeanName()); 85 assertEquals("ManagedBean class ", "enterprise.jsf_jpa_war.UserManager", managedBean.getManagedBeanClass()); 86 assertEquals("ManagedBean scope ", "request", managedBean.getManagedBeanScope()); 87 Collection <NavigationRule> navigationRules = facesConfig.getNavigationRules(); 89 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 90 NavigationRule navigationRule = navigationRules.iterator().next(); 91 assertNull("Rule description ", navigationRule.getDescription()); 92 assertNull("Rule from-view-id ", navigationRule.getFromViewId()); 93 Collection <NavigationCase> navigationCases = navigationRule.getNavigationCases(); 94 assertEquals("Number of navigation cases ", 3, navigationCases.size()); 95 Iterator <NavigationCase> it = navigationCases.iterator(); 96 NavigationCase navigationCase = it.next(); 97 assertEquals("login", navigationCase.getFromOutcome()); 98 assertEquals("/login.jsp", navigationCase.getToViewId()); 99 assertTrue(navigationCase.isRedirected()); 100 assertNull(navigationCase.getDescription()); 101 assertNull(navigationCase.getFromAction()); 102 navigationCase = it.next(); 103 assertEquals("create", navigationCase.getFromOutcome()); 104 assertEquals("/create.jsp", navigationCase.getToViewId()); 105 assertFalse(navigationCase.isRedirected()); 106 assertNull(navigationCase.getDescription()); 107 assertNull(navigationCase.getFromAction()); 108 navigationCase = it.next(); 109 assertEquals("app-main", navigationCase.getFromOutcome()); 110 assertEquals("/welcomeJSF.jsp", navigationCase.getToViewId()); 111 assertTrue(navigationCase.isRedirected()); 112 assertNull(navigationCase.getDescription()); 113 assertNull(navigationCase.getFromAction()); 114 } 115 116 final String newDescription = "Some text.\n Test description\nnew line\n\nnew second line."; 117 final String newFromViewID = "/haha.jsp"; 118 public void testChangeNavigationRuleJSFJPAExample() throws Exception { 119 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 120 FacesConfig facesConfig = model.getRootComponent(); 121 assertNotNull(facesConfig); 122 Collection <NavigationRule> navigationRules = facesConfig.getNavigationRules(); 123 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 124 NavigationRule navigationRule = navigationRules.iterator().next(); 125 assertNull("Rule description ", navigationRule.getDescription()); 126 assertNull("Rule from-view-id ", navigationRule.getFromViewId()); 127 128 model.startTransaction(); 130 navigationRule.setDescription(newDescription); 131 navigationRule.setFromViewId(newFromViewID); 132 model.endTransaction(); 133 134 navigationRules = facesConfig.getNavigationRules(); 136 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 137 navigationRule = navigationRules.iterator().next(); 138 assertEquals(newDescription, navigationRule.getDescription()); 139 assertEquals(newFromViewID, navigationRule.getFromViewId()); 140 141 dumpModelToFile(model, "test-config-01.xml"); 143 navigationRules = model.getRootComponent().getNavigationRules(); 144 navigationRule = navigationRules.iterator().next(); 145 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 146 assertEquals(newDescription, navigationRule.getDescription()); 147 assertEquals(newFromViewID, navigationRule.getFromViewId()); 148 149 model.startTransaction(); 151 navigationRule.setDescription(null); 152 navigationRule.setFromViewId(null); 153 model.endTransaction(); 154 155 navigationRules = model.getRootComponent().getNavigationRules(); 156 navigationRule = navigationRules.iterator().next(); 157 assertNull(navigationRule.getDescription()); 158 assertNull(navigationRule.getFromViewId()); 159 dumpModelToFile(model, "test-config-02.xml"); 160 } 161 162 public void testAddRemoveNavigationRuleJSFJPAExample() throws Exception { 163 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 164 FacesConfig facesConfig = model.getRootComponent(); 165 assertNotNull(facesConfig); 166 167 Collection <NavigationRule> navigationRules = facesConfig.getNavigationRules(); 168 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 169 170 NavigationRule newRule = model.getFactory().createNavigationRule(); 171 newRule.setDescription(newDescription); 172 newRule.setFromViewId(newFromViewID); 173 174 model.startTransaction(); 175 facesConfig.addNavigationRule(newRule); 176 model.endTransaction(); 177 178 dumpModelToFile(model, "test-config-03.xml"); 180 navigationRules = model.getRootComponent().getNavigationRules(); 181 assertEquals("Number of navigation rules ", 2, navigationRules.size()); 182 Iterator <NavigationRule> iterator = navigationRules.iterator(); 183 iterator.next(); 184 newRule = iterator.next(); 185 assertEquals(newDescription, newRule.getDescription()); 186 assertEquals(newFromViewID, newRule.getFromViewId()); 187 188 model.startTransaction(); 189 model.getRootComponent().removeNavigationRule(newRule); 190 model.endTransaction(); 191 192 dumpModelToFile(model, "test-config-04.xml"); 193 navigationRules = model.getRootComponent().getNavigationRules(); 194 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 195 } 196 197 public void testChangeNavigationCase() throws Exception { 198 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 199 FacesConfig facesConfig = model.getRootComponent(); 200 assertNotNull(facesConfig); 201 202 Collection <NavigationRule> navigationRules = facesConfig.getNavigationRules(); 203 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 204 NavigationRule navigationRule = navigationRules.iterator().next(); 205 Collection <NavigationCase> navigationCases = navigationRule.getNavigationCases(); 206 assertEquals("Number of navigation cases ", 3, navigationCases.size()); 207 NavigationCase navigationCase = navigationCases.iterator().next(); 208 209 model.startTransaction(); 210 navigationCase.setDescription("Test Description"); 211 navigationCase.setFromAction("hahatest"); 212 navigationCase.setToViewId("welcomme.test"); 213 navigationCase.setRedirected(false); 214 model.endTransaction(); 215 216 dumpModelToFile(model, "test-config-01.xml"); 217 218 model.startTransaction(); 219 navigationCase.setRedirected(true); 220 model.endTransaction(); 221 dumpModelToFile(model, "test-config-02.xml"); 222 223 } 224 225 public void testAddRemoveNavigationCaseJSFJPAExample() throws Exception { 226 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 227 FacesConfig facesConfig = model.getRootComponent(); 228 assertNotNull(facesConfig); 229 230 Collection <NavigationRule> navigationRules = facesConfig.getNavigationRules(); 231 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 232 NavigationRule navigationRule = navigationRules.iterator().next(); 233 Collection <NavigationCase> navigationCases = navigationRule.getNavigationCases(); 234 assertEquals("Number of navigation cases ", 3, navigationCases.size()); 235 NavigationCase newCase = model.getFactory().createNavigationCase(); 236 newCase.setDescription("Test case description"); 237 newCase.setFromOutcome("/fromOutcame.jsp"); 238 newCase.setToViewId("/toviewide.jsp"); 239 240 navigationRule.getModel().startTransaction(); 241 navigationRule.addNavigationCase(newCase); 242 navigationRule.getModel().endTransaction(); 243 244 System.out.println("pridam case"); 245 navigationRules = model.getRootComponent().getNavigationRules(); 248 assertEquals("Number of navigation rules ", 1, navigationRules.size()); 249 navigationRule = navigationRules.iterator().next(); 250 navigationCases = navigationRule.getNavigationCases(); 251 assertEquals("Number of navigation cases ", 4, navigationCases.size()); 252 253 } 254 255 public void testJSFVersion() throws Exception { 256 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 257 assertEquals(JSFVersion.JSF_1_2, model.getVersion()); 258 model = Util.loadRegistryModel("faces-config-01.xml"); 259 assertEquals(JSFVersion.JSF_1_1, model.getVersion()); 260 } 261 262 public void testComments() throws Exception { 263 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 264 FacesConfig facesConfig = model.getRootComponent(); 265 assertNotNull(facesConfig); 266 facesConfig.getPeer(); 267 268 } 269 270 public void testEditable() throws Exception { 271 File file = new File (getDataDir(), "faces-config1.xml"); 272 273 FileObject fileObject = FileUtil.toFileObject(file); 274 ModelSource model = TestCatalogModel.getDefault().createModelSource(fileObject, false); 275 assertFalse(model.isEditable()); 278 ModelSource model2 = TestCatalogModel.getDefault().createModelSource(fileObject, true); 279 assertTrue(model2.isEditable()); 282 } 283 284 private void dumpModelToFile (JSFConfigModel model, String fileName) throws Exception { 285 File file = new File (getWorkDir(), fileName); 286 System.out.println("workfile: " + file.getAbsolutePath()); 287 Util.dumpToFile(model, file); 288 } 289 290 public void testConverter() throws Exception { 291 JSFConfigModel model = Util.loadRegistryModel("faces-config-jsfjpa-example.xml"); 292 FacesConfig facesConfig = model.getRootComponent(); 293 assertNotNull(facesConfig); 294 295 List <Converter> converters = facesConfig.getConverters(); 296 assertEquals("Number of converters ", 1, converters.size()); 297 298 } 299 } 300 | Popular Tags |