View Javadoc

1   /*
2    * Copyright 2007 The Apache Software Foundation.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.myfaces.config.impl.digister;
17  
18  import java.util.List;
19  
20  import junit.framework.TestCase;
21  
22  import org.apache.myfaces.config.impl.digester.DigesterFacesConfigUnmarshallerImpl;
23  import org.apache.myfaces.config.element.Application;
24  import org.apache.myfaces.config.element.FacesConfig;
25  import org.apache.myfaces.config.element.FacesConfigNameSlot;
26  import org.apache.myfaces.config.element.LocaleConfig;
27  import org.apache.myfaces.config.element.OrderSlot;
28  
29  /**
30   * @author Mathias Broekelmann (latest modification by $Author: struberg $)
31   * @version $Revision: 1188694 $ $Date: 2011-10-25 10:07:44 -0500 (Tue, 25 Oct 2011) $
32   */
33  public class DigesterFacesConfigUnmarshallerImplTest extends TestCase
34  {
35      private DigesterFacesConfigUnmarshallerImpl _impl;
36  
37      protected void setUp() throws Exception
38      {
39          _impl = new DigesterFacesConfigUnmarshallerImpl(null);
40      }
41  
42      public void testEmptyConfig() throws Exception
43      {
44          FacesConfig cfg = _impl.getFacesConfig(getClass().getResourceAsStream(
45                  "empty-config.xml"), "empty-config.xml");
46          assertNotNull(cfg);
47          assertTrue(cfg.getApplications().isEmpty());
48          assertTrue(cfg.getComponents().isEmpty());
49          assertTrue(cfg.getConverters().isEmpty());
50          assertTrue(cfg.getFactories().isEmpty());
51          assertTrue(cfg.getLifecyclePhaseListener().isEmpty());
52          assertTrue(cfg.getManagedBeans().isEmpty());
53          assertTrue(cfg.getNavigationRules().isEmpty());
54          assertTrue(cfg.getRenderKits().isEmpty());
55          assertTrue(cfg.getValidators().isEmpty());
56      }
57  
58      public void testApplicationConfig() throws Exception
59      {
60          FacesConfig cfg = _impl.getFacesConfig(getClass().getResourceAsStream(
61                  "application-config.xml"), "application-config.xml");
62          assertNotNull(cfg);
63          assertEquals(1, cfg.getApplications().size());
64          Application app = cfg.getApplications().get(0);
65          assertEquals(2, app.getActionListener().size());
66          assertEquals("action-listener1", app.getActionListener().get(0));
67          assertEquals("action-listener2", app.getActionListener().get(1));
68          assertEquals(1, app.getDefaultRenderkitId().size());
69          assertEquals("default-render-kit-id", app.getDefaultRenderkitId()
70                  .get(0));
71          assertLocaleConfig(app.getLocaleConfig());
72          assertEquals(1, app.getMessageBundle().size());
73          assertEquals("message-bundle", app.getMessageBundle().get(0));
74          assertEquals(1, app.getNavigationHandler().size());
75          assertEquals("navigation-handler", app.getNavigationHandler().get(0));
76          assertEquals(1, app.getPropertyResolver().size());
77          assertEquals("property-resolver", app.getPropertyResolver().get(0));
78  
79          assertEquals(1, app.getStateManager().size());
80          assertEquals("state-manager", app.getStateManager().get(0));
81  
82          assertEquals(1, app.getVariableResolver().size());
83          assertEquals("variable-resolver", app.getVariableResolver().get(0));
84  
85          assertEquals(1, app.getViewHandler().size());
86          assertEquals("view-handler", app.getViewHandler().get(0));
87  
88          assertEquals(1, app.getElResolver().size());
89          assertEquals("el-resolver", app.getElResolver().get(0));
90  
91          assertEquals(1, app.getResourceBundle().size());
92          assertEquals("base-name", app.getResourceBundle().get(0).getBaseName());
93          assertEquals("var", app.getResourceBundle().get(0).getVar());
94      }
95  
96      /**
97       * @param localeConfig
98       */
99      private void assertLocaleConfig(List<LocaleConfig> localeConfig)
100     {
101         assertEquals(1, localeConfig.size());
102         LocaleConfig cfg = localeConfig.get(0);
103         assertEquals("aa", cfg.getDefaultLocale());
104         assertEquals(2, cfg.getSupportedLocales().size());
105         assertEquals("aa", cfg.getSupportedLocales().get(0));
106         assertEquals("bb", cfg.getSupportedLocales().get(1));
107     }
108     
109     public void testAbsoluteOrderingConfig() throws Exception
110     {
111         FacesConfig cfg = _impl.getFacesConfig(getClass().getResourceAsStream(
112                 "absolute-ordering-config.xml"), "absolute-ordering-config.xml");
113         assertNotNull(cfg);
114         assertEquals("true", cfg.getMetadataComplete());
115         assertEquals("a",cfg.getName());
116 
117         List<OrderSlot> orderList = cfg.getAbsoluteOrdering().getOrderList();
118         
119         assertEquals("b", ((FacesConfigNameSlot) orderList.get(0)).getName());
120         assertEquals("c", ((FacesConfigNameSlot) orderList.get(1)).getName());
121         assertEquals(org.apache.myfaces.config.impl.digester.elements.ConfigOthersSlot.class, orderList.get(2).getClass());
122         assertEquals("d", ((FacesConfigNameSlot) orderList.get(3)).getName());
123         
124         assertTrue(cfg.getApplications().isEmpty());
125         assertTrue(cfg.getComponents().isEmpty());
126         assertTrue(cfg.getConverters().isEmpty());
127         assertTrue(cfg.getFactories().isEmpty());
128         assertTrue(cfg.getLifecyclePhaseListener().isEmpty());
129         assertTrue(cfg.getManagedBeans().isEmpty());
130         assertTrue(cfg.getNavigationRules().isEmpty());
131         assertTrue(cfg.getRenderKits().isEmpty());
132         assertTrue(cfg.getValidators().isEmpty());
133     }
134     
135     public void testOrderingConfig() throws Exception
136     {
137         FacesConfig cfg = _impl.getFacesConfig(getClass().getResourceAsStream(
138                 "ordering-config.xml"), "ordering-config.xml");
139         assertNotNull(cfg);
140         assertEquals("a",cfg.getName());
141 
142         List<OrderSlot> orderList = cfg.getOrdering().getBeforeList();        
143         assertEquals("b", ((FacesConfigNameSlot) orderList.get(0)).getName());
144         assertEquals("c", ((FacesConfigNameSlot) orderList.get(1)).getName());
145         assertEquals(org.apache.myfaces.config.impl.digester.elements.ConfigOthersSlot.class, orderList.get(2).getClass());
146         
147         orderList = cfg.getOrdering().getAfterList();        
148         assertEquals("d", ((FacesConfigNameSlot) orderList.get(0)).getName());
149         
150         assertTrue(cfg.getApplications().isEmpty());
151         assertTrue(cfg.getComponents().isEmpty());
152         assertTrue(cfg.getConverters().isEmpty());
153         assertTrue(cfg.getFactories().isEmpty());
154         assertTrue(cfg.getLifecyclePhaseListener().isEmpty());
155         assertTrue(cfg.getManagedBeans().isEmpty());
156         assertTrue(cfg.getNavigationRules().isEmpty());
157         assertTrue(cfg.getRenderKits().isEmpty());
158         assertTrue(cfg.getValidators().isEmpty());
159     }    
160 }