1 22 package org.jboss.test.aop.jdk15.dynamic.prepareMethod; 23 24 import org.jboss.test.aop.AOPTestDelegate; 25 import org.jboss.test.aop.AOPTestWithSetup; 26 import org.jboss.test.aop.jdk15.dynamic.common.BindingInterceptor; 27 import org.jboss.test.aop.jdk15.dynamic.common.InstanceInterceptor; 28 import org.jboss.test.aop.jdk15.dynamic.common.InterceptionsCount; 29 import org.jboss.test.aop.jdk15.dynamic.common.POJOWrappingInfo; 30 import org.jboss.test.aop.jdk15.dynamic.common.ScenarioLoader; 31 32 38 public class HotSwapDisabledTester extends AOPTestWithSetup 39 { 40 private ScenarioLoader scenarioLoader; 41 42 public HotSwapDisabledTester(String name) 43 { 44 super(name); 45 } 46 47 50 public void setUp() throws Exception 51 { 52 super.setUp(); 53 this.scenarioLoader = new ScenarioLoader(((AOPTestDelegate)getDelegate()).getSystemProperties()); 54 } 55 56 59 private void assertOnlyMethodWrapped(POJOWrappingInfo[] wrappingInfos) throws Exception 60 { 61 for (int i = 0; i < wrappingInfos.length; i++) 62 { 63 assertFalse(wrappingInfos[i].isConstructorWrapped()); 64 assertFalse(wrappingInfos[i].isFieldReadWrapped()); 65 assertFalse(wrappingInfos[i].isFieldWriteWrapped()); 66 assertTrue(wrappingInfos[i].isMethodWrapped()); 67 } 68 } 69 70 76 public void testPerClassLoadAfterInterception() throws Throwable 77 { 78 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerClassLoadAfter(); 80 if (((AOPTestDelegate)getDelegate()).getSystemProperties().getProperty("java5Agent") != null) 82 { 83 for (int i = 0; i < wrappingInfos.length; i++) 85 { 86 assertTrue(wrappingInfos[i].isConstructorWrapped()); 87 assertTrue(wrappingInfos[i].isFieldReadWrapped()); 88 assertTrue(wrappingInfos[i].isFieldWriteWrapped()); 89 assertTrue(wrappingInfos[i].isMethodWrapped()); 90 } 91 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 93 assertEquals(0, instance.total); 94 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 95 assertEquals(2, binding.total); 96 assertEquals(0, binding.constructor); 97 assertEquals(0, binding.fieldRead); 98 assertEquals(0, binding.fieldWrite); 99 assertEquals(2, binding.method); 100 return; 101 } 102 assertOnlyMethodWrapped(wrappingInfos); 104 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 106 assertEquals(0, instance.total); 107 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 108 assertEquals(2, binding.total); 109 assertEquals(0, binding.constructor); 110 assertEquals(0, binding.fieldRead); 111 assertEquals(0, binding.fieldWrite); 112 assertEquals(2, binding.method); 113 } 114 115 121 public void testPerClassLoadBeforeInterception() throws Throwable 122 { 123 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerClassLoadBefore(); 125 assertOnlyMethodWrapped(wrappingInfos); 127 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 129 assertEquals(0, instance.total); 130 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 131 assertEquals(1, binding.total); 132 assertEquals(0, binding.constructor); 133 assertEquals(0, binding.fieldRead); 134 assertEquals(0, binding.fieldWrite); 135 assertEquals(1, binding.method); 136 } 137 138 139 145 public void testAddAndRemoveBindingTwice() throws Throwable 146 { 147 POJOWrappingInfo[] wrappingInfos = scenarioLoader.addAndRemoveBindingTwice(); 149 assertOnlyMethodWrapped(wrappingInfos); 151 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 153 assertEquals(0, instance.total); 154 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 155 assertEquals(2, binding.total); 156 assertEquals(0, binding.constructor); 157 assertEquals(0, binding.fieldRead); 158 assertEquals(0, binding.fieldWrite); 159 assertEquals(2, binding.method); 160 } 161 162 163 169 public void testPerInstanceInterception() throws Throwable 170 { 171 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerInstance(); 173 assertOnlyMethodWrapped(wrappingInfos); 175 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 177 assertEquals(2, instance.total); 178 assertEquals(0, instance.constructor); 179 assertEquals(0, instance.fieldRead); 180 assertEquals(0, instance.fieldWrite); 181 assertEquals(2, instance.method); 182 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 183 assertEquals(0, binding.total); 184 assertEquals(0, binding.constructor); 185 assertEquals(0, binding.fieldRead); 186 assertEquals(0, binding.fieldWrite); 187 } 188 189 195 public void testPerInstanceGcInterception() throws Throwable 196 { 197 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerInstanceGC(); 199 assertOnlyMethodWrapped(wrappingInfos); 201 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 203 assertEquals(2, instance.total); 204 assertEquals(0, instance.constructor); 205 assertEquals(0, instance.fieldRead); 206 assertEquals(0, instance.fieldWrite); 207 assertEquals(2, instance.method); 208 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 209 assertEquals(0, binding.total); 210 } 211 212 218 public void testPerClassPerInstanceInterception() throws Throwable 219 { 220 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerClassPerInstance(); 222 assertOnlyMethodWrapped(wrappingInfos); 224 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 226 assertEquals(1, binding.total); 227 assertEquals(0, binding.constructor); 228 assertEquals(0, binding.fieldRead); 229 assertEquals(0, binding.fieldWrite); 230 assertEquals(1, binding.method); 231 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 232 assertEquals(1, instance.total); 233 assertEquals(0, instance.constructor); 234 assertEquals(0, instance.fieldRead); 235 assertEquals(0, instance.fieldWrite); 236 assertEquals(1, instance.method); 237 } 238 239 245 public void testPerInstancePerClassInterception() throws Throwable 246 { 247 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerInstancePerClass(); 249 assertOnlyMethodWrapped(wrappingInfos); 251 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 253 assertEquals(1, binding.total); 254 assertEquals(0, binding.constructor); 255 assertEquals(0, binding.fieldRead); 256 assertEquals(0, binding.fieldWrite); 257 assertEquals(1, binding.method); 258 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 259 assertEquals(3, instance.total); 260 assertEquals(0, instance.constructor); 261 assertEquals(0, instance.fieldRead); 262 assertEquals(0, instance.fieldWrite); 263 assertEquals(3, instance.method); 264 } 265 266 272 public void testAfterBindingRemovalExecution() throws Throwable 273 { 274 POJOWrappingInfo[] wrappingInfos = scenarioLoader.executeAfterBindingRemoval(); 276 assertOnlyMethodWrapped(wrappingInfos); 278 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 280 assertEquals(0, binding.total); 281 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 282 assertEquals(0, instance.total); 283 } 284 } | Popular Tags |