1 22 package org.jboss.test.aop.jdk15.dynamic.prepareAll; 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 HotSwapEnabledTester extends AOPTestWithSetup 39 { 40 private ScenarioLoader scenarioLoader; 41 42 public HotSwapEnabledTester(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 60 private void assertUnwrapped(POJOWrappingInfo wrappingInfo) 61 { 62 assertFalse(wrappingInfo.isConstructorWrapped()); 63 assertFalse(wrappingInfo.isFieldReadWrapped()); 64 assertFalse(wrappingInfo.isFieldWriteWrapped()); 65 assertFalse(wrappingInfo.isMethodWrapped()); 66 } 67 68 72 private void assertFullyWrapped(POJOWrappingInfo wrappingInfo) 73 { 74 assertTrue(wrappingInfo.isConstructorWrapped()); 75 assertTrue(wrappingInfo.isFieldReadWrapped()); 76 assertTrue(wrappingInfo.isFieldWriteWrapped()); 77 assertTrue(wrappingInfo.isMethodWrapped()); 78 } 79 80 86 public void testPerClassLoadAfterInterception() throws Throwable 87 { 88 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerClassLoadAfter(); 90 assertFullyWrapped(wrappingInfos[0]); 92 assertUnwrapped(wrappingInfos[1]); 93 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 95 assertEquals(0, instance.total); 96 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 97 assertTrue(binding.total >= 5 && binding.total <= 8); 98 assertTrue(binding.constructor >= 1 && binding.constructor <= 2); 99 assertTrue(binding.fieldRead >= 1 && binding.fieldRead <= 2); 100 assertTrue(binding.fieldWrite >= 1 && binding.fieldWrite <= 2); 101 assertEquals(2, binding.method); 102 } 103 104 110 public void testPerClassLoadBeforeInterception() throws Throwable 111 { 112 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerClassLoadBefore(); 114 assertUnwrapped(wrappingInfos[0]); 116 assertFullyWrapped(wrappingInfos[1]); 117 assertUnwrapped(wrappingInfos[2]); 118 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 120 assertEquals(0, instance.total); 121 assertEquals(0, instance.constructor); 122 assertEquals(0, instance.fieldRead); 123 assertEquals(0, instance.fieldWrite); 124 assertEquals(0, instance.method); 125 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 126 assertEquals(4, binding.total); 127 assertEquals(1, binding.constructor); 128 assertEquals(1, binding.fieldRead); 129 assertEquals(1, binding.fieldWrite); 130 assertEquals(1, binding.method); 131 } 132 133 139 public void testAddAndRemoveBindingTwice() throws Throwable 140 { 141 POJOWrappingInfo[] wrappingInfos = scenarioLoader.addAndRemoveBindingTwice(); 143 assertUnwrapped(wrappingInfos[0]); 145 assertFullyWrapped(wrappingInfos[1]); 146 assertUnwrapped(wrappingInfos[2]); 147 assertFullyWrapped(wrappingInfos[3]); 148 assertUnwrapped(wrappingInfos[4]); 149 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 151 assertEquals(0, instance.total); 152 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 153 assertEquals(8, binding.total); 154 assertEquals(2, binding.constructor); 155 assertEquals(2, binding.fieldRead); 156 assertEquals(2, binding.fieldWrite); 157 assertEquals(2, binding.method); 158 } 159 160 166 public void testPerInstanceInterception() throws Throwable 167 { 168 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerInstance(); 170 assertUnwrapped(wrappingInfos[0]); 172 assertFullyWrapped(wrappingInfos[1]); 173 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 175 assertEquals(0, binding.total); 176 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 177 assertTrue(instance.total >= 3 && instance.total <= 6); 178 assertEquals(0, instance.constructor); 179 assertTrue(instance.fieldRead >= 1 && instance.fieldRead <= 2); 180 assertTrue(instance.fieldWrite >=1 && instance.fieldWrite <= 2); 181 assertTrue(instance.method >= 1 && instance.method <= 2); 182 } 183 184 185 191 public void testPerInstanceGcInterception() throws Throwable 192 { 193 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerInstanceGC(); 195 assertUnwrapped(wrappingInfos[0]); 197 assertFullyWrapped(wrappingInfos[1]); 198 assertUnwrapped(wrappingInfos[2]); 199 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 201 assertEquals(0, binding.total); 202 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 203 assertTrue(instance.total >= 3 && instance.total <= 6); 204 assertEquals(0, instance.constructor); 205 assertTrue(instance.fieldRead >= 1 && instance.fieldRead <= 2); 206 assertTrue(instance.fieldWrite >=1 && instance.fieldWrite <= 2); 207 assertTrue(instance.method >= 1 && instance.method <= 2); 208 } 209 210 216 public void testPerClassPerInstanceInterception() throws Throwable 217 { 218 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerClassPerInstance(); 220 assertUnwrapped(wrappingInfos[0]); 222 assertFullyWrapped(wrappingInfos[1]); 223 assertFullyWrapped(wrappingInfos[2]); 224 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 226 assertEquals(4, binding.total); 227 assertEquals(1, binding.constructor); 228 assertEquals(1, binding.fieldRead); 229 assertEquals(1, binding.fieldWrite); 230 assertEquals(1, binding.method); 231 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 232 assertEquals(3, instance.total); 233 assertEquals(0, instance.constructor); 234 assertEquals(1, instance.fieldRead); 235 assertEquals(1, instance.fieldWrite); 236 assertEquals(1, instance.method); 237 } 238 239 245 public void testPerInstancePerClassInterception() throws Throwable 246 { 247 POJOWrappingInfo[] wrappingInfos = scenarioLoader.interceptPerInstancePerClass(); 249 assertFullyWrapped(wrappingInfos[0]); 251 assertFullyWrapped(wrappingInfos[1]); 252 assertFullyWrapped(wrappingInfos[2]); 253 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 255 assertEquals(4, binding.total); 256 assertEquals(1, binding.constructor); 257 assertEquals(1, binding.fieldRead); 258 assertEquals(1, binding.fieldWrite); 259 assertEquals(1, binding.method); 260 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 261 assertTrue(instance.total >= 6 && instance.total <= 9); 262 assertEquals(0, instance.constructor); 263 assertTrue(instance.fieldRead >= 2 && instance.fieldRead <= 3); 264 assertTrue(instance.fieldWrite >= 2 && instance.fieldWrite <= 3); 265 assertTrue(instance.method >= 2 && instance.method <= 3); 266 } 267 268 274 public void testAfterBindingRemovalExecution() throws Throwable 275 { 276 POJOWrappingInfo[] wrappingInfos = scenarioLoader.executeAfterBindingRemoval(); 278 assertUnwrapped(wrappingInfos[0]); 280 InterceptionsCount binding = BindingInterceptor.getInterceptionsCount(); 282 assertEquals(0, binding.total); 283 InterceptionsCount instance = InstanceInterceptor.getInterceptionsCount(); 284 assertEquals(0, instance.total); 285 } 286 } | Popular Tags |