001    // jademx - JADE management using JMX
002    // Copyright 2005 Caboodle Networks, Inc.
003    //
004    // This library is free software; you can redistribute it and/or
005    // modify it under the terms of the GNU Lesser General Public
006    // License as published by the Free Software Foundation; either
007    // version 2.1 of the License, or (at your option) any later version.
008    //
009    // This library is distributed in the hope that it will be useful,
010    // but WITHOUT ANY WARRANTY; without even the implied warranty of
011    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
012    // Lesser General Public License for more details.
013    //
014    // You should have received a copy of the GNU Lesser General Public
015    // License along with this library; if not, write to the Free Software
016    // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
017    
018    package jade.jademx.server;
019    
020    
021    import java.util.Hashtable;
022    
023    import javax.management.ObjectName;
024    
025    import jade.jademx.JadeMXSuiteTest;
026    import junit.framework.Test;
027    import junit.framework.TestCase;
028    import junit.framework.TestSuite;
029    
030    /** 
031     * Java platform MBean server test
032     * @author David Bernstein, <a href="http://www.caboodlenetworks.com"
033     *  >Caboodle Networks, Inc.</a>
034     */
035    public class JadeServiceTest extends TestCase {
036        
037        // tests
038        
039        /**
040         * test construction of JadeService
041         */
042        public void testJadeServiceConstruction() {
043            JadeService jadeService = new JadeService();
044        }
045        
046        /**
047         * test access to ObjectNameDomain
048         */
049        public void testJadeServiceSetGetObjectNameDomain() {
050            JadeService jadeService = new JadeService();
051            final String OBJECT_NAME_DOMAIN = "foo";
052            jadeService.setObjectNameDomain(OBJECT_NAME_DOMAIN);
053            String objectNameDomain = jadeService.getObjectNameDomain();
054            assertEquals( OBJECT_NAME_DOMAIN, objectNameDomain );
055        }
056    
057        
058        /**
059         * test access to ConfigDocResource
060         */
061        public void testJadeServiceSetGetConfigDocResource() {
062            JadeService jadeService = new JadeService();
063            final String CONFIG_DOC_RESOURCE = "foo";
064            jadeService.setConfigDocResource(CONFIG_DOC_RESOURCE);
065            String configDocResource = jadeService.getConfigDocResource();
066            assertEquals( CONFIG_DOC_RESOURCE, configDocResource );
067            jadeService.setConfigDocUrl( "bar" );
068            assertNull( jadeService.getConfigDocResource() );
069        }
070        
071        
072        /**
073         * test access to ConfigDocUrl
074         */
075        public void testJadeServiceSetGetConfigDocUrl() {
076            JadeService jadeService = new JadeService();
077            final String CONFIG_DOC_URL = "foo";
078            jadeService.setConfigDocUrl(CONFIG_DOC_URL);
079            String configDocUrl = jadeService.getConfigDocUrl();
080            assertEquals( CONFIG_DOC_URL, configDocUrl );
081            jadeService.setConfigDocResource( "bar" );
082            assertNull( jadeService.getConfigDocUrl() );
083        }
084        
085        /**
086         * test access to JndiName
087         */
088        public void testJadeServiceSetGetJndiName() {
089            JadeService jadeService = new JadeService();
090            final String JNDI_NAME = "foo";
091            jadeService.setJndiName(JNDI_NAME);
092            String jndiName = jadeService.getJndiName();
093            assertEquals( JNDI_NAME, jndiName );
094        }
095        
096        
097        /**
098         * test access to JadeMXServerClassName
099         */
100        public void testJadeServiceSetGetJadeMXServerClassName() {
101            JadeService jadeService = new JadeService();
102            final String JADEMX_SERVER_CLASS_NAME = "foo";
103            jadeService.setJadeMXServerClassName(JADEMX_SERVER_CLASS_NAME);
104            String jadeMXServerClassName = jadeService.getJadeMXServerClassName();
105            assertEquals( JADEMX_SERVER_CLASS_NAME, jadeMXServerClassName );
106        }
107        
108        /**
109         * test setting of JNDI initial context properties
110         */
111        public void testJadeServiceSetJndiInitCtxtProps() {
112            JadeService jadeService = new JadeService();
113            jadeService.setJndiInitialContextProperties( new Hashtable() );
114        }
115        
116        /**
117         * test getting of JadeService bound name
118         */
119        public void testJadeServiceBoundName() {
120            JadeService jadeService = new JadeService();
121            assertNull( jadeService.getBoundName() );
122        }
123        
124        /**
125         * test MBean type attribute for JadeService
126         */
127        public void testJadeServiceType() {
128            JadeService jadeService = new JadeService();
129            assertEquals( JadeServiceMBean.ATTR_TYPE, jadeService.getType() );
130        }
131        
132        /**
133         * test javax.management.MBeanRegistration implementation
134         */
135        public void testJadeServiceMBeanRegistration() throws Exception {
136            JadeService jadeService = new JadeService();
137            ObjectName objectName = jadeService.preRegister( null, null );
138            assertEquals( objectName, jadeService.getObjectName() );
139            jadeService.postRegister( Boolean.FALSE );
140            assertNull( jadeService.getObjectName() );
141    
142            objectName = jadeService.preRegister( null, null );
143            assertEquals( objectName, jadeService.getObjectName() );
144            jadeService.postRegister( Boolean.TRUE );
145            assertEquals( objectName, jadeService.getObjectName() );
146            
147            jadeService.preDeregister();
148            assertTrue(true);
149            jadeService.postDeregister();
150            assertNull( jadeService.getObjectName() );
151            
152        }
153        
154        /**
155         * test conversion of JadeService to string
156         */
157        public void testToString() {
158            Hashtable ht = new Hashtable();
159            ht.put("a","b");
160            ht.put("c","d");
161            JadeService jadeService = new JadeService();
162            jadeService.setJndiInitialContextProperties( ht );
163            String actualStr = jadeService.toString();
164            String expectedStr = "jade.jademx.server.JadeService[jadeMXServerClassName=null,objectNameDomain=jade,configDocName=jademx-config.xml,configDocNameIsUrl=false,jndiName=jade,jndiInitialContextProperties=(a=b,c=d),registered=false,objectName=null]";
165            assertEquals( expectedStr, actualStr );
166        }
167        
168        // suite
169    
170        /**
171         * return the implicit suite of tests
172         * @return the implicit suite of tests
173         */
174        public static Test suite() {
175            return new TestSuite( 
176                    JadeServiceTest.class, 
177                    JadeMXSuiteTest.nameWithClass( JadeServiceTest.class, 
178                    "testing JadeService: JBoss JADE service") );
179        }
180    
181    
182        
183    }