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 }