01: /*
02: * JBoss, Home of Professional Open Source.
03: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
04: * as indicated by the @author tags. See the copyright.txt file in the
05: * distribution for a full listing of individual contributors.
06: *
07: * This is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU Lesser General Public License as
09: * published by the Free Software Foundation; either version 2.1 of
10: * the License, or (at your option) any later version.
11: *
12: * This software is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this software; if not, write to the Free
19: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21: */
22: package org.jboss.test.jbossmx.compliance.notcompliant;
23:
24: import javax.management.MBeanServer;
25: import javax.management.MBeanServerFactory;
26: import javax.management.NotCompliantMBeanException;
27: import javax.management.ObjectName;
28:
29: import org.jboss.test.jbossmx.compliance.TestCase;
30: import org.jboss.test.jbossmx.compliance.notcompliant.support.DynamicAndStandard;
31: import org.jboss.test.jbossmx.compliance.notcompliant.support.OverloadedAttribute1;
32: import org.jboss.test.jbossmx.compliance.notcompliant.support.OverloadedAttribute2;
33: import org.jboss.test.jbossmx.compliance.notcompliant.support.OverloadedAttribute3;
34:
35: public class NCMBeanTestCase extends TestCase {
36: public NCMBeanTestCase(String s) {
37: super (s);
38: }
39:
40: public void testOverloadedAttribute1() {
41: registerAndTest(new OverloadedAttribute1(), true);
42: }
43:
44: public void testOverloadedAttribute2() {
45: // according to spec this is not a problem
46: registerAndTest(new OverloadedAttribute2(), false);
47: }
48:
49: public void testOverloadedAttribute3() {
50: registerAndTest(new OverloadedAttribute3(), true);
51: }
52:
53: public void testMixedDynamicStandard() {
54: // according to the spec this is not a problem any more
55: registerAndTest(new DynamicAndStandard(), false);
56: }
57:
58: public void testNoConstructor() {
59: registerAndTest(new NoConstructor(), true);
60: }
61:
62: private void registerAndTest(Object mbean, boolean shouldFail) {
63: try {
64: MBeanServer server = MBeanServerFactory.newMBeanServer();
65: server.registerMBean(mbean, new ObjectName("test:foo=bar"));
66: if (shouldFail)
67: fail("expected a NotCompliantMBeanException for "
68: + mbean.getClass().getName());
69: } catch (NotCompliantMBeanException e) {
70: if (shouldFail == false)
71: fail("NotCompliantMBeanException for "
72: + mbean.getClass().getName());
73: } catch (Exception e) {
74: fail("unexpected exception when registering "
75: + mbean.getClass().getName() + ": "
76: + e.getMessage());
77: }
78: }
79: }
|