Skip to content
Permalink
Browse files
Work in progress, still.
  • Loading branch information
jwcarman committed Jul 17, 2010
1 parent f327dd2 commit b0974520352b3b73aa323130aa9928e31c6dc099
Showing 21 changed files with 811 additions and 14 deletions.
@@ -20,7 +20,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>commons-proxy</artifactId>
<artifactId>commons-proxy-parent</artifactId>
<groupId>org.apache.commons</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
@@ -31,7 +31,7 @@
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>commons-proxy-core</artifactId>
<artifactId>commons-proxy</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -42,7 +42,7 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>commons-proxy-core</artifactId>
<artifactId>commons-proxy</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
@@ -0,0 +1 @@
org.apache.commons.proxy.cglib.CglibProxyFactory
@@ -27,6 +27,5 @@ public class TestCglibProxyFactory extends AbstractSubclassingProxyFactoryTestCa

public TestCglibProxyFactory()
{
super(new CglibProxyFactory());
}
}
@@ -3,13 +3,13 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>commons-proxy</artifactId>
<artifactId>commons-proxy-parent</artifactId>
<groupId>org.apache.commons</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>commons-proxy-core</artifactId>
<artifactId>commons-proxy</artifactId>

<dependencies>
<dependency>
@@ -48,6 +48,12 @@
<version>1.0.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>concurrent</groupId>
<artifactId>concurrent</artifactId>
<version>1.3.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
@@ -0,0 +1,110 @@
/*
* 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.commons.proxy;

import junit.framework.TestCase;
import org.apache.commons.proxy.util.DuplicateEcho;
import org.apache.commons.proxy.util.Echo;
import org.apache.commons.proxy.util.EchoImpl;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Properties;

public class TestProxyUtils extends TestCase
{
//**********************************************************************************************************************
// Fields
//**********************************************************************************************************************

private Properties prevProperties;

//**********************************************************************************************************************
// Other Methods
//**********************************************************************************************************************

protected void setUp() throws Exception
{
prevProperties = System.getProperties();
System.setProperties(new Properties());
}

protected void tearDown() throws Exception
{
System.setProperties(prevProperties);
}

public void testNullValue()
{
assertNullValue(null, String.class);
assertNullValue(( char ) 0, Character.TYPE);
assertNullValue(0, Integer.TYPE);
assertNullValue(( long ) 0, Long.TYPE);
assertNullValue(( short ) 0, Short.TYPE);
assertNullValue(( double ) 0, Double.TYPE);
assertNullValue(( float ) 0, Float.TYPE);
assertNullValue(false, Boolean.TYPE);
assertNullValue(( byte ) 0, Byte.TYPE);
}

private void assertNullValue( Object expected, Class type )
{
assertEquals(expected, ProxyUtils.nullValue(type));
}

public void testCreateNullObject() throws Exception
{
final Echo nullEcho = ( Echo ) ProxyUtils
.createNullObject(new JavassistProxyFactory(), new Class[] {Echo.class});
assertNull(nullEcho.echoBack("hello"));
assertNull(nullEcho.echoBack("hello", "world"));
assertEquals(( int ) 0, nullEcho.echoBack(12345));
}

public void testCreateNullObjectWithClassLoader() throws Exception
{
final Echo nullEcho = ( Echo ) ProxyUtils.createNullObject(new JavassistProxyFactory(),
Echo.class.getClassLoader(),
new Class[] {Echo.class});
assertNull(nullEcho.echoBack("hello"));
assertNull(nullEcho.echoBack("hello", "world"));
assertEquals(( int ) 0, nullEcho.echoBack(12345));
}

public void testGetAllInterfaces()
{
assertNull(ProxyUtils.getAllInterfaces(null));
assertEquals(Arrays.asList(new Class[] {DuplicateEcho.class, Serializable.class, Echo.class}),
Arrays.asList(ProxyUtils.getAllInterfaces(EchoImpl.class)));
}

public void testGetJavaClassName() throws Exception
{
assertEquals("java.lang.Object[]", ProxyUtils.getJavaClassName(Object[].class));
assertEquals("java.lang.Object[][]", ProxyUtils.getJavaClassName(Object[][].class));
assertEquals("java.lang.String[][][]", ProxyUtils.getJavaClassName(String[][][].class));
assertEquals("int", ProxyUtils.getJavaClassName(Integer.TYPE));
assertEquals("float", ProxyUtils.getJavaClassName(Float.TYPE));
assertEquals("long", ProxyUtils.getJavaClassName(Long.TYPE));
assertEquals("double", ProxyUtils.getJavaClassName(Double.TYPE));
assertEquals("short", ProxyUtils.getJavaClassName(Short.TYPE));
assertEquals("byte", ProxyUtils.getJavaClassName(Byte.TYPE));
assertEquals("char", ProxyUtils.getJavaClassName(Character.TYPE));
assertEquals("boolean", ProxyUtils.getJavaClassName(Boolean.TYPE));
}
}
@@ -0,0 +1,78 @@
/*
* 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.commons.proxy.exception;

import junit.framework.TestCase;

/**
* @author James Carman
* @since 1.0
*/
public abstract class AbstractExceptionClassTestCase extends TestCase
{
//**********************************************************************************************************************
// Fields
//**********************************************************************************************************************

private final Class exceptionClass;

//**********************************************************************************************************************
// Constructors
//**********************************************************************************************************************

public AbstractExceptionClassTestCase( Class exceptionClass )
{
this.exceptionClass = exceptionClass;
}

//**********************************************************************************************************************
// Other Methods
//**********************************************************************************************************************

public void testCauseOnlyConstructor() throws Exception
{
final Exception cause = new Exception();
Exception e = ( Exception ) exceptionClass.getConstructor(new Class[] {Throwable.class}).newInstance(new Object[] {cause});
assertEquals(cause.toString(), e.getMessage());
assertEquals(cause, e.getCause());
}

public void testMessageAndCauseConstructor() throws Exception
{
final Exception cause = new Exception();
final String message = "message";
Exception e = ( Exception ) exceptionClass.getConstructor(new Class[] {String.class, Throwable.class}).newInstance(new Object[] {message, cause});
assertEquals(message, e.getMessage());
assertEquals(cause, e.getCause());
}

public void testMessageOnlyConstructor() throws Exception
{
final String message = "message";
Exception e = ( Exception ) exceptionClass.getConstructor(new Class[] {String.class}).newInstance(new Object[] {message});
assertEquals(message, e.getMessage());
assertNull(e.getCause());
}

public void testNoArgConstructor() throws Exception
{
Exception e = ( Exception ) exceptionClass.getConstructor(new Class[] {}).newInstance(new Object[] {});
assertNull(e.getMessage());
assertNull(e.getCause());
}
}
@@ -0,0 +1,30 @@
/*
* 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.commons.proxy.exception;

public class TestDelegateProviderException extends AbstractExceptionClassTestCase
{
//**********************************************************************************************************************
// Constructors
//**********************************************************************************************************************

public TestDelegateProviderException()
{
super(ObjectProviderException.class);
}
}
@@ -0,0 +1,30 @@
/*
* 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.commons.proxy.exception;

public class TestInvocationHandlerException extends AbstractExceptionClassTestCase
{
//**********************************************************************************************************************
// Constructors
//**********************************************************************************************************************

public TestInvocationHandlerException()
{
super(InvokerException.class);
}
}
@@ -0,0 +1,34 @@
/*
* 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.commons.proxy.exception;

/**
* @author James Carman
* @since 1.0
*/
public class TestProxyFactoryException extends AbstractExceptionClassTestCase
{
//**********************************************************************************************************************
// Constructors
//**********************************************************************************************************************

public TestProxyFactoryException()
{
super(ProxyFactoryException.class);
}
}
@@ -0,0 +1,38 @@
/*
* 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.commons.proxy.impl;

import junit.framework.TestCase;

public class TestMethodSignature extends TestCase
{
//**********************************************************************************************************************
// Other Methods
//**********************************************************************************************************************

public void testEquals() throws Exception
{
final MethodSignature sig = new MethodSignature(Echo.class.getMethod("echoBack", new Class[] {String.class}));
assertTrue(sig.equals(sig));
assertFalse(sig.equals("echoBack"));
assertEquals(sig, new MethodSignature(Echo.class.getMethod("echoBack", new Class[] {String.class})));
assertEquals(sig, new MethodSignature(DuplicateEcho.class.getMethod("echoBack", new Class[] {String.class})));
assertFalse(sig.equals(new MethodSignature(Echo.class.getMethod("echoBack", new Class[] {String.class, String.class}))));
assertFalse(sig.equals(new MethodSignature(Echo.class.getMethod("echo", new Class[] {}))));
}
}

0 comments on commit b097452

Please sign in to comment.