KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > javax > management > modelmbean > ModelMBeanInfoSupportTest


1 /*
2  * Copyright (C) The MX4J Contributors.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the MX4J License version 1.0.
6  * See the terms of the MX4J License in the documentation provided with this software.
7  */

8
9 package test.javax.management.modelmbean;
10
11 import java.util.Arrays JavaDoc;
12 import javax.management.Descriptor JavaDoc;
13 import javax.management.modelmbean.DescriptorSupport JavaDoc;
14 import javax.management.modelmbean.ModelMBeanAttributeInfo JavaDoc;
15 import javax.management.modelmbean.ModelMBeanConstructorInfo JavaDoc;
16 import javax.management.modelmbean.ModelMBeanInfoSupport JavaDoc;
17 import javax.management.modelmbean.ModelMBeanNotificationInfo JavaDoc;
18 import javax.management.modelmbean.ModelMBeanOperationInfo JavaDoc;
19
20 import junit.framework.TestCase;
21
22 /**
23  * @version $Revision: 1.7 $
24  * @see
25  */

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