1 8 9 package test.javax.management.openmbean; 10 11 import java.util.Arrays ; 12 import javax.management.MBeanNotificationInfo ; 13 import javax.management.MBeanOperationInfo ; 14 import javax.management.openmbean.ArrayType ; 15 import javax.management.openmbean.OpenMBeanAttributeInfo ; 16 import javax.management.openmbean.OpenMBeanAttributeInfoSupport ; 17 import javax.management.openmbean.OpenMBeanConstructorInfo ; 18 import javax.management.openmbean.OpenMBeanConstructorInfoSupport ; 19 import javax.management.openmbean.OpenMBeanInfoSupport ; 20 import javax.management.openmbean.OpenMBeanOperationInfo ; 21 import javax.management.openmbean.OpenMBeanOperationInfoSupport ; 22 import javax.management.openmbean.OpenMBeanParameterInfo ; 23 import javax.management.openmbean.OpenMBeanParameterInfoSupport ; 24 import javax.management.openmbean.SimpleType ; 25 26 import junit.framework.TestCase; 27 import junit.textui.TestRunner; 28 29 31 public class OpenMBeanInfoSupportTest extends TestCase 32 { 33 private OpenMBeanAttributeInfo [] attrs; 34 private OpenMBeanConstructorInfo [] ctors; 35 private OpenMBeanOperationInfo [] ops; 36 private MBeanNotificationInfo [] notifs; 37 38 public static void main(String [] args) 39 { 40 TestRunner.run(OpenMBeanInfoSupportTest.class); 41 } 42 43 public void testCtor() throws Exception 44 { 45 OpenMBeanInfoSupport info = 46 new OpenMBeanInfoSupport ("CurrencyMBean", 47 "Does stuff with currencies", 48 attrs, 49 ctors, 50 ops, 51 notifs); 52 assertTrue("Null info constructed", info != null); 53 assertTrue("Unexpected name", 54 info.getClassName().compareTo("CurrencyMBean") == 0); 55 assertTrue("Unexpected description", 56 info.getDescription().compareTo("Does stuff with currencies") == 0); 57 assertTrue("Unexpected attributes", 58 Arrays.equals(info.getAttributes(), attrs)); 59 assertTrue("Unexpected constructors", 60 Arrays.equals(info.getConstructors(), ctors)); 61 assertTrue("Unexpected operations", 62 Arrays.equals(info.getOperations(), ops)); 63 assertTrue("Unexpected notifications", 64 Arrays.equals(info.getNotifications(), notifs)); 65 } 66 67 public void testEquals() throws Exception 68 { 69 OpenMBeanInfoSupport infoone = 70 new OpenMBeanInfoSupport ("CurrencyMBean", 71 "Does stuff with currencies", 72 attrs, 73 ctors, 74 ops, 75 notifs); 76 assertTrue("Null info constructed", infoone != null); 77 78 OpenMBeanInfoSupport infotwo = 79 new OpenMBeanInfoSupport ("CurrencyMBean", 80 "manages currencies", 81 attrs, 82 ctors, 83 ops, 84 notifs); 85 assertTrue("Null info constructed", infotwo != null); 86 87 assertTrue("Expecting equality (only description is different)", 88 infotwo.equals(infoone)); 89 90 OpenMBeanAttributeInfo [] testattrs = 91 new OpenMBeanAttributeInfoSupport []{ 92 new OpenMBeanAttributeInfoSupport ("Uptime", 93 "how long it's been running", 94 SimpleType.FLOAT, 95 true, 96 false, 97 false), 98 new OpenMBeanAttributeInfoSupport ("Exchanges", 99 "number of exchanges completed", 100 SimpleType.FLOAT, 101 true, 102 false, 103 false)}; 104 105 OpenMBeanConstructorInfo [] testctors = 106 new OpenMBeanConstructorInfoSupport []{ 107 new OpenMBeanConstructorInfoSupport ("CurrencyMBean", 108 "create a currency mbean", 109 new OpenMBeanParameterInfoSupport []{ 110 new OpenMBeanParameterInfoSupport ("currencies", 111 "currencies that may be exchanged", 112 new ArrayType (1, SimpleType.STRING))}) 113 }; 114 115 OpenMBeanParameterInfo [] ratesig = 116 new OpenMBeanParameterInfo []{ 117 new OpenMBeanParameterInfoSupport ("to", 118 "currency to convert to", 119 SimpleType.STRING), 120 new OpenMBeanParameterInfoSupport ("from", 121 "currency to convert from", 122 SimpleType.STRING)}; 123 124 OpenMBeanParameterInfo [] exsig = 125 new OpenMBeanParameterInfo []{ 126 new OpenMBeanParameterInfoSupport ("from", 127 "currency to convert from", 128 SimpleType.STRING), 129 new OpenMBeanParameterInfoSupport ("amount", 130 "amount of currency to convert", 131 SimpleType.FLOAT), 132 new OpenMBeanParameterInfoSupport ("to", 133 "currency to convert to", 134 SimpleType.STRING)}; 135 136 OpenMBeanOperationInfo [] testops = 137 new OpenMBeanOperationInfoSupport []{ 138 new OpenMBeanOperationInfoSupport ("exchangeRate", 139 "compute the exchange rate for two currencies", 140 ratesig, 141 SimpleType.FLOAT, 142 MBeanOperationInfo.INFO), 143 new OpenMBeanOperationInfoSupport ("exchange", 144 "compute the exchange rate for two currencies", 145 exsig, 146 SimpleType.FLOAT, 147 MBeanOperationInfo.INFO)}; 148 149 OpenMBeanInfoSupport infothree = 150 new OpenMBeanInfoSupport ("CurrencyMBean", 151 "Does stuff with currencies", 152 testattrs, 153 testctors, 154 testops, 155 notifs); 156 assertTrue("Null info constructed", infoone != null); 157 158 assertFalse("Expecting inequality (the parameter orders are different)", 159 infothree.equals(infoone)); 160 } 161 162 public void testHashCode() throws Exception 163 { 164 OpenMBeanInfoSupport infoone = 165 new OpenMBeanInfoSupport ("CurrencyMBean", 166 "Does stuff with currencies", 167 attrs, 168 ctors, 169 ops, 170 notifs); 171 assertTrue("Null info constructed", infoone != null); 172 173 OpenMBeanInfoSupport infotwo = 174 new OpenMBeanInfoSupport ("CurrencyMBean", 175 "manages currencies", 176 attrs, 177 ctors, 178 ops, 179 notifs); 180 assertTrue("Null info constructed", infotwo != null); 181 182 assertTrue("Expecting identical hash codes (only description is different)", 183 infotwo.hashCode() == infoone.hashCode()); 184 185 OpenMBeanAttributeInfo [] testattrs = 186 new OpenMBeanAttributeInfoSupport []{ 187 new OpenMBeanAttributeInfoSupport ("Uptime", 188 "how long it's been running", 189 SimpleType.FLOAT, 190 true, 191 false, 192 false), 193 new OpenMBeanAttributeInfoSupport ("Exchanges", 194 "number of exchanges completed", 195 SimpleType.FLOAT, 196 true, 197 false, 198 false)}; 199 200 OpenMBeanConstructorInfo [] testctors = 201 new OpenMBeanConstructorInfoSupport []{ 202 new OpenMBeanConstructorInfoSupport ("CurrencyMBean", 203 "create a currency mbean", 204 new OpenMBeanParameterInfoSupport []{ 205 new OpenMBeanParameterInfoSupport ("currencies", 206 "currencies that may be exchanged", 207 new ArrayType (1, SimpleType.STRING))}) 208 }; 209 210 OpenMBeanParameterInfo [] ratesig = 211 new OpenMBeanParameterInfo []{ 212 new OpenMBeanParameterInfoSupport ("to", 213 "currency to convert to", 214 SimpleType.STRING), 215 new OpenMBeanParameterInfoSupport ("from", 216 "currency to convert from", 217 SimpleType.STRING)}; 218 219 OpenMBeanParameterInfo [] exsig = 220 new OpenMBeanParameterInfo []{ 221 new OpenMBeanParameterInfoSupport ("from", 222 "currency to convert from", 223 SimpleType.STRING), 224 new OpenMBeanParameterInfoSupport ("amount", 225 "amount of currency to convert", 226 SimpleType.FLOAT), 227 new OpenMBeanParameterInfoSupport ("to", 228 "currency to convert to", 229 SimpleType.STRING)}; 230 231 OpenMBeanOperationInfo [] testops = 232 new OpenMBeanOperationInfoSupport []{ 233 new OpenMBeanOperationInfoSupport ("exchangeRate", 234 "compute the exchange rate for two currencies", 235 ratesig, 236 SimpleType.FLOAT, 237 MBeanOperationInfo.INFO), 238 new OpenMBeanOperationInfoSupport ("exchange", 239 "compute the exchange rate for two currencies", 240 exsig, 241 SimpleType.FLOAT, 242 MBeanOperationInfo.INFO)}; 243 244 OpenMBeanInfoSupport infothree = 245 new OpenMBeanInfoSupport ("CurrencyMBean", 246 "Does stuff with currencies", 247 testattrs, 248 testctors, 249 testops, 250 notifs); 251 assertTrue("Null info constructed", infoone != null); 252 253 assertFalse("Expecting different hash codes (the parameter orders are different)", 254 infothree.hashCode() == infoone.hashCode()); 255 } 256 257 protected void setUp() throws Exception 258 { 259 attrs = 260 new OpenMBeanAttributeInfoSupport []{ 261 new OpenMBeanAttributeInfoSupport ("Exchanges", 262 "number of exchanges completed", 263 SimpleType.FLOAT, 264 true, 265 false, 266 false), 267 new OpenMBeanAttributeInfoSupport ("Uptime", 268 "how long it's been running", 269 SimpleType.FLOAT, 270 true, 271 false, 272 false)}; 273 274 ctors = 275 new OpenMBeanConstructorInfoSupport []{ 276 new OpenMBeanConstructorInfoSupport ("CurrencyMBean", 277 "create a currency mbean", 278 new OpenMBeanParameterInfoSupport []{ 279 new OpenMBeanParameterInfoSupport ("currencies", 280 "currencies that may be exchanged", 281 new ArrayType (1, SimpleType.STRING))}) 282 }; 283 284 OpenMBeanParameterInfo [] ratesig = 285 new OpenMBeanParameterInfo []{ 286 new OpenMBeanParameterInfoSupport ("from", 287 "currency to convert from", 288 SimpleType.STRING), 289 new OpenMBeanParameterInfoSupport ("to", 290 "currency to convert to", 291 SimpleType.STRING)}; 292 293 OpenMBeanParameterInfo [] exsig = 294 new OpenMBeanParameterInfo []{ 295 new OpenMBeanParameterInfoSupport ("from", 296 "currency to convert from", 297 SimpleType.STRING), 298 new OpenMBeanParameterInfoSupport ("to", 299 "currency to convert to", 300 SimpleType.STRING), 301 new OpenMBeanParameterInfoSupport ("amount", 302 "amount of currency to convert", 303 SimpleType.FLOAT)}; 304 305 ops = 306 new OpenMBeanOperationInfoSupport []{ 307 new OpenMBeanOperationInfoSupport ("exchangeRate", 308 "compute the exchange rate for two currencies", 309 ratesig, 310 SimpleType.FLOAT, 311 MBeanOperationInfo.INFO), 312 new OpenMBeanOperationInfoSupport ("exchange", 313 "compute the exchange rate for two currencies", 314 exsig, 315 SimpleType.FLOAT, 316 MBeanOperationInfo.INFO)}; 317 318 notifs = new MBeanNotificationInfo [0]; 319 } 320 321 protected void tearDown() 322 { 323 } 324 } 325 | Popular Tags |