@Test public void testWithPerThisAspect() throws Exception { TestBean bean1 = new TestBean(); TestBean bean2 = new TestBean(); AspectJProxyFactory pf1 = new AspectJProxyFactory(bean1); pf1.addAspect(PerThisAspect.class); AspectJProxyFactory pf2 = new AspectJProxyFactory(bean2); pf2.addAspect(PerThisAspect.class); ITestBean proxy1 = pf1.getProxy(); ITestBean proxy2 = pf2.getProxy(); assertEquals(0, proxy1.getAge()); assertEquals(1, proxy1.getAge()); assertEquals(0, proxy2.getAge()); assertEquals(2, proxy1.getAge()); }
@Test @SuppressWarnings("unchecked") public void testWithInstance() throws Exception { MultiplyReturnValue aspect = new MultiplyReturnValue(); int multiple = 3; aspect.setMultiple(multiple); TestBean target = new TestBean(); target.setAge(24); AspectJProxyFactory proxyFactory = new AspectJProxyFactory(target); proxyFactory.addAspect(aspect); ITestBean proxy = proxyFactory.getProxy(); assertEquals(target.getAge() * multiple, proxy.getAge()); ITestBean serializedProxy = (ITestBean) SerializationTestUtils.serializeAndDeserialize(proxy); assertEquals(target.getAge() * multiple, serializedProxy.getAge()); }
@Test // SPR-13328 @SuppressWarnings("unchecked") public void testUnproxiedVarargsWithEnumArray() throws Exception { AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean()); proxyFactory.addAspect(LoggingAspectOnSetter.class); ITestBean proxy = proxyFactory.getProxy(); assertTrue(proxy.doWithVarargs(MyEnum.A, MyOtherEnum.C)); }
@Test @SuppressWarnings("unchecked") public void testSerializable() throws Exception { AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean()); proxyFactory.addAspect(LoggingAspectOnVarargs.class); ITestBean proxy = proxyFactory.getProxy(); assertTrue(proxy.doWithVarargs(MyEnum.A, MyOtherEnum.C)); ITestBean tb = (ITestBean) SerializationTestUtils.serializeAndDeserialize(proxy); assertTrue(tb.doWithVarargs(MyEnum.A, MyOtherEnum.C)); }
@Test(expected = IllegalArgumentException.class) public void testWithInstanceWithNonAspect() throws Exception { AspectJProxyFactory pf = new AspectJProxyFactory(); pf.addAspect(new TestBean()); }
@Test // SPR-13328 @SuppressWarnings("unchecked") public void testProxiedVarargsWithEnumArray() throws Exception { AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean()); proxyFactory.addAspect(LoggingAspectOnVarargs.class); ITestBean proxy = proxyFactory.getProxy(); assertTrue(proxy.doWithVarargs(MyEnum.A, MyOtherEnum.C)); }
@Test(expected = IllegalArgumentException.class) public void testWithNonAspect() { AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean()); proxyFactory.addAspect(TestBean.class); }
@Test public void testWithSimpleAspect() throws Exception { TestBean bean = new TestBean(); bean.setAge(2); AspectJProxyFactory proxyFactory = new AspectJProxyFactory(bean); proxyFactory.addAspect(MultiplyReturnValue.class); ITestBean proxy = proxyFactory.getProxy(); assertEquals("Multiplication did not occur", bean.getAge() * 2, proxy.getAge()); }