1 8 9 package test.javax.management.modelmbean; 10 11 import java.util.Arrays ; 12 import javax.management.Descriptor ; 13 import javax.management.modelmbean.DescriptorSupport ; 14 import javax.management.modelmbean.ModelMBeanAttributeInfo ; 15 import javax.management.modelmbean.ModelMBeanConstructorInfo ; 16 import javax.management.modelmbean.ModelMBeanInfoSupport ; 17 import javax.management.modelmbean.ModelMBeanNotificationInfo ; 18 import javax.management.modelmbean.ModelMBeanOperationInfo ; 19 20 import junit.framework.TestCase; 21 22 26 27 public class ModelMBeanInfoSupportTest extends TestCase 28 { 29 30 public ModelMBeanInfoSupportTest(String s) 31 { 32 super(s); 33 } 34 35 public void setUp() throws Exception 36 { 37 super.setUp(); 38 } 39 40 public void tearDown() throws Exception 41 { 42 super.tearDown(); 43 } 44 45 public void testGetDescriptor() throws Exception 46 { 47 ModelMBeanAttributeInfo [] attributes = new ModelMBeanAttributeInfo [2]; 48 attributes[0] = new ModelMBeanAttributeInfo ("test", "java.lang.String", "A description", true, true, false); 49 attributes[1] = new ModelMBeanAttributeInfo ("test2", "java.lang.String", "A description", true, true, false); 50 ModelMBeanInfoSupport support = new ModelMBeanInfoSupport ("somepackage.someclass", "Test case", attributes, null, null, null); 52 Descriptor descriptor = support.getDescriptor("test", "attribute"); 54 assertNotNull(descriptor); 55 assertEquals("test", descriptor.getFieldValue("name")); 56 descriptor = support.getDescriptor("test", null); 58 assertNotNull(descriptor); 59 assertEquals("test", descriptor.getFieldValue("name")); 60 } 61 62 public void testCaseInsensitiveDescriptorType() 63 { 64 DescriptorSupport ds = 65 new DescriptorSupport (new String []{ 66 "name=TestMetadata", 67 "descriptorType=mbEAN", 68 "displayname=Test Metadata" 69 }); 70 71 ModelMBeanInfoSupport info = 72 new ModelMBeanInfoSupport ("TestMetadata", 73 "An empty model mbean info instance", 74 new ModelMBeanAttributeInfo [0], 75 new ModelMBeanConstructorInfo [0], 76 new ModelMBeanOperationInfo [0], 77 new ModelMBeanNotificationInfo [0], 78 ds); 79 } 80 81 public void testGetMBeanDescriptorDefault() throws Exception 82 { 83 ModelMBeanInfoSupport info = 84 new ModelMBeanInfoSupport ("TestMetadata", 85 "An empty model mbean info instance", 86 new ModelMBeanAttributeInfo [0], 87 new ModelMBeanConstructorInfo [0], 88 new ModelMBeanOperationInfo [0], 89 new ModelMBeanNotificationInfo [0]); 90 Descriptor dd = info.getMBeanDescriptor(); 91 assertFalse("default descriptor is null", dd == null); 92 assertTrue("Expecting 7 fields", dd.getFieldNames().length == 7); 93 String [] deffields = 94 { 95 "name", 96 "descriptorType", 97 "displayName", 98 "persistPolicy", 99 "log", 100 "export", 101 "visibility"}; 102 String [] fields = dd.getFieldNames(); 103 assertTrue("Expected field names not present", 104 Arrays.asList(fields).containsAll(Arrays.asList(deffields))); 105 assertTrue("Unexpected name", 106 ((String )dd.getFieldValue("name")).compareTo("TestMetadata") == 0); 107 assertTrue("Unexpected descriptorType", 108 ((String )dd.getFieldValue("descriptortype")).compareToIgnoreCase("mbean") 109 == 0); 110 assertTrue("Unexpected displayName: " + dd.getFieldValue("displayname"), 111 ((String )dd.getFieldValue("displayname")).compareTo("TestMetadata") 112 == 0); 113 assertTrue("Unexpected persistpolicy", 114 ((String )dd.getFieldValue("persistpolicy")).compareToIgnoreCase("never") 115 == 0); 116 assertTrue("Unexpected log", 117 ((String )dd.getFieldValue("log")).compareToIgnoreCase("F") == 0); 118 assertTrue("Unexpected export", 119 ((String )dd.getFieldValue("export")).compareTo("F") == 0); 120 assertTrue("Unexpected visibility", 121 ((String )dd.getFieldValue("visibility")).compareTo("1") == 0); 122 123 info = 124 new ModelMBeanInfoSupport ("TestMetadata", 125 "An empty model mbean info instance", 126 new ModelMBeanAttributeInfo [0], 127 new ModelMBeanConstructorInfo [0], 128 new ModelMBeanOperationInfo [0], 129 new ModelMBeanNotificationInfo [0], 130 null); 131 dd = info.getMBeanDescriptor(); 132 assertFalse("default descriptor is null", dd == null); 133 assertTrue("Expecting 7 fields", dd.getFieldNames().length == 7); 134 assertTrue("Expected field names not present", 135 Arrays.asList(fields).containsAll(Arrays.asList(deffields))); 136 assertTrue("Unexpected name", 137 ((String )dd.getFieldValue("name")).compareTo("TestMetadata") == 0); 138 assertTrue("Unexpected descriptorType", 139 ((String )dd.getFieldValue("descriptortype")).compareToIgnoreCase("mbean") 140 == 0); 141 assertTrue("Unexpected displayName: " + dd.getFieldValue("displayname"), 142 ((String )dd.getFieldValue("displayname")).compareTo("TestMetadata") 143 == 0); 144 assertTrue("Unexpected persistpolicy", 145 ((String )dd.getFieldValue("persistpolicy")).compareToIgnoreCase("never") 146 == 0); 147 assertTrue("Unexpected log", 148 ((String )dd.getFieldValue("log")).compareToIgnoreCase("F") == 0); 149 assertTrue("Unexpected export", 150 ((String )dd.getFieldValue("export")).compareTo("F") == 0); 151 assertTrue("Unexpected visibility", 152 ((String )dd.getFieldValue("visibility")).compareTo("1") == 0); 153 154 } 155 156 public void testGetMBeanDescriptorAdditionalValues() throws Exception 157 { 158 String [] fields = 159 { 160 "name", 161 "descriptortype", 162 "displayname", 163 "targetObject", 164 "export", 165 "defaultValue"}; 166 Object [] values = 167 { 168 "TestMetadata", 169 "MBEAN", 170 "JMX Metadata for testing purposes", 171 new Double (0), 172 "test metadata", 173 new Double (99.999)}; 174 DescriptorSupport ds = new DescriptorSupport (fields, values); 175 ModelMBeanInfoSupport info = 176 new ModelMBeanInfoSupport ("TestMetadata", 177 "An empty model mbean info instance", 178 new ModelMBeanAttributeInfo [0], 179 new ModelMBeanConstructorInfo [0], 180 new ModelMBeanOperationInfo [0], 181 new ModelMBeanNotificationInfo [0], 182 ds); 183 Descriptor d = info.getMBeanDescriptor(); 184 assertFalse("descriptor is null", d == null); 185 assertTrue("Expecting 9 fields", d.getFieldNames().length == 9); 186 String [] deffields = 187 { 188 "name", 189 "descriptortype", 190 "displayname", 191 "persistpolicy", 192 "log", 193 "export", 194 "visibility"}; 195 String [] infofields = d.getFieldNames(); 196 assertTrue("Expected field names not present", 197 Arrays.asList(infofields).containsAll(Arrays.asList(deffields))); 198 assertTrue("Unexpected name", 199 ((String )d.getFieldValue("name")).compareTo((String )ds.getFieldValue("name")) 200 == 0); 201 assertTrue("Unexpected descriptorType", 202 ((String )d.getFieldValue("descriptortype")).compareToIgnoreCase((String )ds.getFieldValue("descriptortype")) 203 == 0); 204 assertTrue("Unexpected displayName: " + d.getFieldValue("displayname"), 205 ((String )d.getFieldValue("displayname")).compareTo((String )ds.getFieldValue("displayname")) 206 == 0); 207 assertTrue("Unexpected targetObject: " + d.getFieldValue("targetObject"), 208 ((Double )d.getFieldValue("targetObject")).equals(new Double (0.0))); 209 assertTrue("Unexpected persistpolicy", 210 ((String )d.getFieldValue("persistpolicy")).compareToIgnoreCase("never") 211 == 0); 212 assertTrue("Unexpected log", 213 ((String )d.getFieldValue("log")).compareToIgnoreCase("F") == 0); 214 assertTrue("Unexpected export", 215 ((String )d.getFieldValue("export")).compareTo((String )ds.getFieldValue("export")) 216 == 0); 217 assertTrue("Unexpected defaultValue", 218 ((Double )d.getFieldValue("defaultValue")).equals(new Double (99.999))); 219 assertTrue("Unexpected visibility", 220 ((String )d.getFieldValue("visibility")).compareTo("1") == 0); 221 } 222 223 public void testGetMBeanDescriptorCustom() throws Exception 224 { 225 String [] fields = 226 { 227 "name", 228 "descriptortype", 229 "displayname", 230 "persistpolicy", 231 "log", 232 "export", 233 "visibility"}; 234 Object [] values = 235 { 236 "TestMetadata", 237 "MBEAN", 238 "JMX Metadata for testing purposes", 239 "onUPDATE", 240 "T", 241 "test metadata", 242 "4"}; 243 DescriptorSupport ds = new DescriptorSupport (fields, values); 244 ModelMBeanInfoSupport info = 245 new ModelMBeanInfoSupport ("TestMetadata", 246 "An empty model mbean info instance", 247 new ModelMBeanAttributeInfo [0], 248 new ModelMBeanConstructorInfo [0], 249 new ModelMBeanOperationInfo [0], 250 new ModelMBeanNotificationInfo [0], 251 ds); 252 Descriptor d = info.getMBeanDescriptor(); 253 assertFalse("descriptor is null", d == null); 254 assertTrue("Expecting 7 fields", d.getFieldNames().length == 7); 255 String [] deffields = 256 { 257 "name", 258 "descriptortype", 259 "displayname", 260 "persistpolicy", 261 "log", 262 "export", 263 "visibility"}; 264 String [] infofields = d.getFieldNames(); 265 assertTrue("Expected field names not present", 266 Arrays.asList(infofields).containsAll(Arrays.asList(deffields))); 267 assertTrue("Unexpected name", 268 ((String )d.getFieldValue("name")).compareTo((String )ds.getFieldValue("name")) 269 == 0); 270 assertTrue("Unexpected descriptorType", 271 ((String )d.getFieldValue("descriptortype")).compareToIgnoreCase((String )ds.getFieldValue("descriptortype")) 272 == 0); 273 assertTrue("Unexpected displayName: " + d.getFieldValue("displayname"), 274 ((String )d.getFieldValue("displayname")).compareTo((String )ds.getFieldValue("displayname")) 275 == 0); 276 assertTrue("Unexpected persistpolicy", 277 ( 278 (String )d.getFieldValue("persistpolicy")).compareToIgnoreCase(((String )d.getFieldValue("persistpolicy"))) == 0); 279 assertTrue("Unexpected log", 280 ((String )d.getFieldValue("log")).compareToIgnoreCase(((String )d.getFieldValue("log"))) == 0); 281 assertTrue("Unexpected export", 282 ((String )d.getFieldValue("export")).compareTo((String )ds.getFieldValue("export")) 283 == 0); 284 assertTrue("Unexpected visibility", 285 ((String )d.getFieldValue("visibility")).compareTo(((String )d.getFieldValue("visibility"))) == 0); 286 } 287 } 288 | Popular Tags |