KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > javax > management > DynamicMBeanFunctionalityTest


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;
10
11 import javax.management.Attribute JavaDoc;
12 import javax.management.AttributeList JavaDoc;
13 import javax.management.JMRuntimeException JavaDoc;
14 import javax.management.MBeanServer JavaDoc;
15 import javax.management.MBeanServerFactory JavaDoc;
16 import javax.management.NotCompliantMBeanException JavaDoc;
17 import javax.management.ObjectName JavaDoc;
18 import javax.management.RuntimeMBeanException JavaDoc;
19
20 import test.MX4JTestCase;
21 import test.javax.management.support.MBeanDynamic;
22
23 /**
24  * @version $Revision: 1.10 $
25  */

26 public class DynamicMBeanFunctionalityTest extends MX4JTestCase
27 {
28    private MBeanServer JavaDoc m_server;
29    private ObjectName JavaDoc m_name;
30
31    public DynamicMBeanFunctionalityTest(String JavaDoc s)
32    {
33       super(s);
34    }
35
36    protected void setUp() throws Exception JavaDoc
37    {
38       m_server = MBeanServerFactory.createMBeanServer("dynamic");
39       m_name = new ObjectName JavaDoc(":type=dynamic");
40       Object JavaDoc dynamic = new MBeanDynamic();
41       m_server.registerMBean(dynamic, m_name);
42    }
43
44    protected void tearDown() throws Exception JavaDoc
45    {
46       m_server.unregisterMBean(m_name);
47       MBeanServerFactory.releaseMBeanServer(m_server);
48    }
49
50    public void testGetAttributes() throws Exception JavaDoc
51    {
52       AttributeList JavaDoc list = null;
53
54       list = m_server.getAttributes(m_name, new String JavaDoc[0]);
55       assertEquals(list.size(), 0);
56
57       list = m_server.getAttributes(m_name, new String JavaDoc[]{"doesNotExist"});
58       if (list.size() != 0)
59       {
60          fail("Attribute does not exist");
61       }
62
63       String JavaDoc attributeName = "DynamicAttribute1";
64
65       list = m_server.getAttributes(m_name, new String JavaDoc[]{attributeName});
66       if (list.size() != 1 && ((Attribute JavaDoc)list.get(0)).getName().equals(attributeName))
67       {
68          fail("Attribute exists");
69       }
70    }
71
72    public void testGetSetAttribute() throws Exception JavaDoc
73    {
74       String JavaDoc attributeName = "DynamicAttribute1";
75
76       Object JavaDoc valueBefore = m_server.getAttribute(m_name, attributeName);
77
78       Object JavaDoc newValue = "newValue";
79       Attribute JavaDoc attribute = new Attribute JavaDoc(attributeName, newValue);
80       m_server.setAttribute(m_name, attribute);
81
82       Object JavaDoc valueAfter = m_server.getAttribute(m_name, attributeName);
83       if (valueAfter.equals(valueBefore) || !valueAfter.equals(newValue))
84       {
85          fail("setAttribute does not work");
86       }
87    }
88
89    public void testSetAttributes() throws Exception JavaDoc
90    {
91       String JavaDoc attributeName1 = "DynamicAttribute1";
92       Object JavaDoc value1Before = m_server.getAttribute(m_name, attributeName1);
93       String JavaDoc attributeName2 = "DynamicAttribute2";
94       Object JavaDoc value2Before = m_server.getAttribute(m_name, attributeName2);
95       AttributeList JavaDoc changeThese = new AttributeList JavaDoc();
96       AttributeList JavaDoc list = m_server.setAttributes(m_name, changeThese);
97       if (list.size() != 0)
98       {
99          fail("No Attributes were changed");
100       }
101       if (!value1Before.equals(m_server.getAttribute(m_name, attributeName1)) || !value2Before.equals(m_server.getAttribute(m_name, attributeName2)))
102       {
103          fail("Attribute was not changed");
104       }
105       Attribute JavaDoc attr = new Attribute JavaDoc(attributeName2, "Value2");
106       changeThese.add(attr);
107       list = m_server.setAttributes(m_name, changeThese);
108       if (list.size() != 1)
109       {
110          fail("One attribute was changed");
111       }
112       if (!list.get(0).equals(attr))
113       {
114          fail("Wrong return value");
115       }
116       if (!value1Before.equals(m_server.getAttribute(m_name, attributeName1)) ||
117           value2Before.equals(m_server.getAttribute(m_name, attributeName2)) ||
118           !attr.getValue().equals(m_server.getAttribute(m_name, attributeName2)))
119       {
120          fail("Attribute was not changed");
121       }
122    }
123
124    public void testInvoke() throws Exception JavaDoc
125    {
126       String JavaDoc attributeName1 = "DynamicAttribute1";
127       Object JavaDoc value1 = m_server.getAttribute(m_name, attributeName1);
128
129       Boolean JavaDoc result = (Boolean JavaDoc)m_server.invoke(m_name, "dynamicOperation", new Object JavaDoc[]{"dummy"}, new String JavaDoc[]{"java.lang.String"});
130       if (result.booleanValue())
131       {
132          fail("Operation does not work");
133       }
134       result = (Boolean JavaDoc)m_server.invoke(m_name, "dynamicOperation", new Object JavaDoc[]{value1}, new String JavaDoc[]{"java.lang.String"});
135       if (!result.booleanValue())
136       {
137          fail("Operation does not work");
138       }
139    }
140
141    public void testGetMBeanInfoRegistrationException() throws Exception JavaDoc
142    {
143       try
144       {
145          m_server.createMBean("test.javax.management.support.ExceptionGeneratingDMB",
146                               new ObjectName JavaDoc(":register=no"),
147                               new Object JavaDoc[]{new Boolean JavaDoc(false)},
148                               new String JavaDoc[]{"boolean"});
149          fail("Expecting NotCompliantMBeanException");
150       }
151       catch (NotCompliantMBeanException JavaDoc x)
152       {
153       }
154    }
155
156    public void testGetMBeanInfoInvocationException() throws Exception JavaDoc
157    {
158       try
159       {
160          ObjectName JavaDoc objname = new ObjectName JavaDoc(":register=yes");
161          m_server.createMBean("test.javax.management.support.ExceptionGeneratingDMB",
162                               objname,
163                               new Object JavaDoc[]{new Boolean JavaDoc(true)},
164                               new String JavaDoc[]{"boolean"});
165          m_server.getMBeanInfo(objname);
166          fail("Expecting RuntimeMBeanException");
167       }
168       catch (RuntimeMBeanException JavaDoc x)
169       {
170       }
171    }
172
173    public void testNullMBeanInfo() throws Exception JavaDoc
174    {
175       try
176       {
177          ObjectName JavaDoc objname = new ObjectName JavaDoc(":id=testNullMBeanInfo");
178          m_server.createMBean("test.javax.management.support.NullMBeanInfoDMB", objname);
179          m_server.getMBeanInfo(objname);
180          fail("Expecting JMRuntimeException");
181       }
182       catch (JMRuntimeException JavaDoc x)
183       {
184       }
185    }
186 }
187
Popular Tags