Repository: deltaspike Updated Branches: refs/heads/master 76de2da91 -> 158c82b0a
DELTASPIKE-520 - Tests for ProxyUtils Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/158c82b0 Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/158c82b0 Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/158c82b0 Branch: refs/heads/master Commit: 158c82b0a11dcb698917a4bc85d887624ea4aee4 Parents: 76de2da Author: Rafael Benevides <[email protected]> Authored: Fri Jun 13 21:04:56 2014 -0300 Committer: Rafael Benevides <[email protected]> Committed: Wed Jun 18 10:26:42 2014 -0400 ---------------------------------------------------------------------- .../deltaspike/test/core/api/util/MyBean.java | 26 +++++ .../test/core/api/util/MyInterface.java | 24 ++++ .../test/core/api/util/MyInterfaceImpl.java | 27 +++++ .../test/core/api/util/ProxyUtilsTest.java | 111 +++++++++++++++++++ 4 files changed, 188 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/deltaspike/blob/158c82b0/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyBean.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyBean.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyBean.java new file mode 100644 index 0000000..a2c6451 --- /dev/null +++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyBean.java @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.test.core.api.util; + + +public class MyBean +{ + + +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/158c82b0/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterface.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterface.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterface.java new file mode 100644 index 0000000..2f0bd7e --- /dev/null +++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterface.java @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.test.core.api.util; + +public interface MyInterface +{ + +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/158c82b0/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterfaceImpl.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterfaceImpl.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterfaceImpl.java new file mode 100644 index 0000000..bd51c78 --- /dev/null +++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/MyInterfaceImpl.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.test.core.api.util; + +import javax.enterprise.context.ApplicationScoped; + +@ApplicationScoped +public class MyInterfaceImpl implements MyInterface +{ + +} http://git-wip-us.apache.org/repos/asf/deltaspike/blob/158c82b0/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/ProxyUtilsTest.java ---------------------------------------------------------------------- diff --git a/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/ProxyUtilsTest.java b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/ProxyUtilsTest.java new file mode 100644 index 0000000..6e987ff --- /dev/null +++ b/deltaspike/core/impl/src/test/java/org/apache/deltaspike/test/core/api/util/ProxyUtilsTest.java @@ -0,0 +1,111 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.deltaspike.test.core.api.util; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.List; + +import javax.inject.Inject; + +import org.apache.deltaspike.core.util.ProxyUtils; +import org.apache.deltaspike.test.util.ArchiveUtils; +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.shrinkwrap.api.Archive; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.asset.EmptyAsset; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(Arquillian.class) +public class ProxyUtilsTest +{ + + @Inject + private MyBean myDependentScopedBean; + + @Inject + private MyInterface myInterface; + + @Deployment + public static Archive<?> createTestArchive() + { + return ShrinkWrap + .create(WebArchive.class, "proxyUtil.war") + .addAsLibraries(ArchiveUtils.getDeltaSpikeCoreArchive()) + .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml") + .addClasses(ProxyUtilsTest.class, MyBean.class, MyInterface.class, + MyInterfaceImpl.class); + } + + @Test + public void testIsIntefaceProxy() + { + Object proxy = Proxy.newProxyInstance(myDependentScopedBean.getClass().getClassLoader(), + new Class[] { MyInterface.class }, new InvocationHandler() + { + + @Override + public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable + { + return null; + } + }); + Assert.assertTrue(ProxyUtils.isInterfaceProxy(proxy.getClass())); + } + + @Test + public void testIsNotIntefaceProxy() + { + Assert.assertFalse(ProxyUtils.isInterfaceProxy(myDependentScopedBean.getClass())); + } + + @Test + public void testIsProxiedClass() + { + Assert.assertTrue(ProxyUtils.isProxiedClass(myInterface.getClass())); + } + + @Test + public void testIsNotProxiedClass() + { + Assert.assertFalse(ProxyUtils.isProxiedClass(myDependentScopedBean.getClass())); + } + + @Test + public void testGetUnproxiedClass() + { + Class clazz = ProxyUtils.getUnproxiedClass(myInterface.getClass()); + Assert.assertEquals(clazz, MyInterfaceImpl.class); + } + + @Test + public void testGetProxyAndBaseTypes() + { + List<Class<?>> list = ProxyUtils.getProxyAndBaseTypes(myInterface.getClass()); + Assert.assertEquals(list.size(), 2); + Assert.assertTrue(ProxyUtils.isProxiedClass(list.get(0))); + Assert.assertEquals(MyInterfaceImpl.class, list.get(1)); + } + +}
