1 22 package org.jboss.test.jmx.compliance.relation; 23 24 import java.io.ByteArrayInputStream ; 25 import java.io.ByteArrayOutputStream ; 26 import java.io.IOException ; 27 import java.io.ObjectInputStream ; 28 import java.io.ObjectOutputStream ; 29 30 import javax.management.MBeanServerNotification ; 31 import javax.management.ObjectName ; 32 import javax.management.relation.MBeanServerNotificationFilter ; 33 34 import junit.framework.TestCase; 35 36 49 public class MBeanServerNotificationFilterTestCase 50 extends TestCase 51 { 52 54 MBeanServerNotificationFilter mbsnf; 55 ObjectName on1; 56 ObjectName on2; 57 58 MBeanServerNotification n1; 59 MBeanServerNotification n2; 60 61 63 66 public MBeanServerNotificationFilterTestCase(String s) 67 { 68 super(s); 69 } 70 71 73 76 public void testDefault() 77 { 78 setUpTest(); 79 mbsnf.enableObjectName(on1); 80 mbsnf.enableObjectName(on2); 81 assertEquals(true, mbsnf.isNotificationEnabled(n1)); 82 assertEquals(true, mbsnf.isNotificationEnabled(n2)); 83 } 84 85 88 public void testEnableAll() 89 { 90 setUpTest(); 91 mbsnf.enableAllObjectNames(); 92 assertEquals(true, mbsnf.isNotificationEnabled(n1)); 93 assertEquals(true, mbsnf.isNotificationEnabled(n2)); 94 } 95 96 99 public void testEnableOne() 100 { 101 setUpTest(); 102 mbsnf.enableObjectName(on2); 103 assertEquals(false, mbsnf.isNotificationEnabled(n1)); 104 assertEquals(true, mbsnf.isNotificationEnabled(n2)); 105 } 106 107 110 public void testDisableAll() 111 { 112 setUpTest(); 113 mbsnf.enableObjectName(on1); 114 mbsnf.disableAllObjectNames(); 115 assertEquals(false, mbsnf.isNotificationEnabled(n1)); 116 assertEquals(false, mbsnf.isNotificationEnabled(n2)); 117 } 118 119 122 public void testDisableOne() 123 { 124 setUpTest(); 125 mbsnf.enableAllObjectNames(); 126 mbsnf.disableObjectName(on2); 127 assertEquals(true, mbsnf.isNotificationEnabled(n1)); 128 assertEquals(false, mbsnf.isNotificationEnabled(n2)); 129 } 130 131 134 public void testGetters() 135 { 136 setUpTest(); 137 138 try 139 { 140 141 assertEquals(0, mbsnf.getEnabledObjectNames().size()); 143 assertEquals(null, mbsnf.getDisabledObjectNames()); 144 145 mbsnf.enableAllObjectNames(); 147 assertEquals(null, mbsnf.getEnabledObjectNames()); 148 assertEquals(0, mbsnf.getDisabledObjectNames().size()); 149 150 mbsnf.disableObjectName(on1); 152 assertEquals(null, mbsnf.getEnabledObjectNames()); 153 assertEquals(1, mbsnf.getDisabledObjectNames().size()); 154 assertEquals(on1, mbsnf.getDisabledObjectNames().elementAt(0)); 155 156 mbsnf.disableAllObjectNames(); 158 assertEquals(0, mbsnf.getEnabledObjectNames().size()); 159 assertEquals(null, mbsnf.getDisabledObjectNames()); 160 161 mbsnf.enableObjectName(on1); 163 assertEquals(1, mbsnf.getEnabledObjectNames().size()); 164 assertEquals(null, mbsnf.getDisabledObjectNames()); 165 assertEquals(on1, mbsnf.getEnabledObjectNames().elementAt(0)); 166 } 167 catch (NullPointerException e) 168 { 169 fail("FAILS IN RI: " + e.toString()); 170 } 171 } 172 173 176 public void testSerialization() 177 { 178 setUpTest(); 179 180 mbsnf.enableObjectName(on2); 182 183 try 184 { 185 ByteArrayOutputStream baos = new ByteArrayOutputStream (); 187 ObjectOutputStream oos = new ObjectOutputStream (baos); 188 oos.writeObject(mbsnf); 189 190 ByteArrayInputStream bais = new ByteArrayInputStream (baos.toByteArray()); 192 ObjectInputStream ois = new ObjectInputStream (bais); 193 ois.readObject(); 194 } 195 catch (IOException ioe) 196 { 197 fail(ioe.toString()); 198 } 199 catch (ClassNotFoundException cnfe) 200 { 201 fail(cnfe.toString()); 202 } 203 204 assertEquals(false, mbsnf.isNotificationEnabled(n1)); 206 assertEquals(true, mbsnf.isNotificationEnabled(n2)); 207 } 208 209 211 private void setUpTest() 212 { 213 mbsnf = new MBeanServerNotificationFilter (); 214 mbsnf.enableType(MBeanServerNotification.REGISTRATION_NOTIFICATION); 215 try 216 { 217 on1 = new ObjectName (":a=a"); 218 on2 = new ObjectName (":b=b"); 219 } 220 catch (Exception e) 221 { 222 fail(e.toString()); 223 } 224 n1 = new MBeanServerNotification (MBeanServerNotification.REGISTRATION_NOTIFICATION, 225 new Object (), 1, on1); 226 n2 = new MBeanServerNotification (MBeanServerNotification.REGISTRATION_NOTIFICATION, 227 new Object (), 2, on2); 228 } 229 } 230 | Popular Tags |