[CVS nano] some missed deletes

Paul Hammant <paul-yCVjj/[email protected]> Mon, 17 Nov 2003 14:12:40 -0600
Newsgroups gmane.comp.java.nanocontainer.cvs
Message-ID <[email protected]>
Commit in nano/reflection/src on MAIN

java/org/nanocontainer/reflection/Converter.java -16 1.1 removed

/DefaultReflectionFrontEnd.java -149 1.1 removed

/InvalidConversionException.java -20 1.1 removed

/NanoTextRegistrationException.java -21 1.1 removed

/ReflectionFrontEnd.java -58 1.7 removed

/StringToObjectConverter.java -62 1.1 removed

/package.html -8 1.1 removed

test/org/nanocontainer/reflection/DefaultReflectionFrontEndTestCase.java -189 1.4 removed

/StringToObjectConverterTestCase.java -80 1.1 removed

-603

9 removed files

some missed deletes

----------

nano /reflection /src /java /org /nanocontainer /reflection

Converter.java removed after 1.1

diff -N Converter.java
--- Converter.java 10 Sep 2003 15:22:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@

-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by Joe Walnes *
- *****************************************************************************/
-
-
-package org.nanocontainer.reflection;
-
-public interface Converter {
- Object convert(String in);
-}

----------

nano /reflection /src /java /org /nanocontainer /reflection

DefaultReflectionFrontEnd.java removed after 1.1

diff -N DefaultReflectionFrontEnd.java
--- DefaultReflectionFrontEnd.java 20 Oct 2003 08:26:06 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,149 +0,0 @@

-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by Aslak Hellesoy and Paul Hammant *
- *****************************************************************************/
-
-package org.nanocontainer.reflection;
-
-import org.picocontainer.*;
-import org.picocontainer.defaults.*;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-/**
- * This class is a front-end to {@link MutablePicoContainer} that uses reflection
- * to register components.
- *
- * This class replaces the former StringRegistrationNanoContainer.
- */
-public class DefaultReflectionFrontEnd implements ReflectionFrontEnd {
- private final List urls = new ArrayList();
-
- private final StringToObjectConverter converter = new StringToObjectConverter();
-
- private final MutablePicoContainer picoContainer;
-
- // Either supplied specifically or built up by added URLs.
- private ClassLoader classLoader;
- private ReflectionFrontEnd parent;
-
- public DefaultReflectionFrontEnd(ClassLoader classLoader, MutablePicoContainer picoContainer) {
- this.classLoader = classLoader;
- this.picoContainer = picoContainer;
- }
-
- public DefaultReflectionFrontEnd(ClassLoader classLoader) {
- this(
- classLoader,
- new DefaultPicoContainer()
- );
- }
-
- public DefaultReflectionFrontEnd(MutablePicoContainer picoContainer) {
- this(
- (DefaultReflectionFrontEnd) null,
- picoContainer
- );
- }
-
- public DefaultReflectionFrontEnd(ReflectionFrontEnd parent, MutablePicoContainer picoContainer) {
- this.parent = parent;
- this.picoContainer = picoContainer;
- if (parent != null) {
- MutablePicoContainer parentContainer = parent.getPicoContainer();
- picoContainer.addParent(parentContainer);
- }
- }
-
- public DefaultReflectionFrontEnd(ReflectionFrontEnd parent) {
- this(parent, new DefaultPicoContainer());
- }
-
- public DefaultReflectionFrontEnd() {
- this(
- (DefaultReflectionFrontEnd) null,
- new DefaultPicoContainer()
- );
- }
-
- public void registerComponentImplementation(String componentImplementationClassName) throws PicoRegistrationException, ClassNotFoundException, PicoIntrospectionException {
- picoContainer.registerComponentImplementation(getClassLoader().loadClass(componentImplementationClassName));
- }
-
- public void registerComponent(Object key, String componentImplementationClassName) throws ClassNotFoundException {
- Class componentImplementation = getClassLoader().loadClass(componentImplementationClassName);
- picoContainer.registerComponentImplementation(key, componentImplementation);
- }
-
- public void registerComponentWithClassKey(String classKey, String componentImplementationClassName) throws ClassNotFoundException {
- Class typeKey = getClassLoader().loadClass(classKey);
- Class componentImplementation = getClassLoader().loadClass(componentImplementationClassName);
- picoContainer.registerComponentImplementation(typeKey, componentImplementation);
- }
-
-
- public void registerComponent(
- Object key,
- String componentImplementationClassName,
- String[] parameterTypesAsString,
- String[] parameterValuesAsString
- ) throws PicoRegistrationException, ClassNotFoundException, PicoIntrospectionException {
- Class componentImplementation = getClassLoader().loadClass(componentImplementationClassName);
- Parameter[] parameters = new Parameter[parameterTypesAsString.length];
- for (int i = 0; i < parameters.length; i++) {
- Class paramTypeClass = getClassLoader().loadClass(parameterTypesAsString[i]);
- Object value = converter.convertTo(paramTypeClass, parameterValuesAsString[i]);
- parameters[i] = new ConstantParameter(value);
- }
- picoContainer.registerComponentImplementation(key, componentImplementation, parameters);
- }
-
- /**
- * Sets what classloader to use. This will reset all previously set URLs.
- * This overrides the ClassLoaders that may have been set by addClassLoaderURL(..)
- * @see #addClassLoaderURL
- * @param classLoader
- */
- public void setClassLoader(ClassLoader classLoader) {
- this.classLoader = classLoader;
- urls.clear();
- }
-
- /**
- * Adds a new URL.
- * This overrides the ClassLoader that may have been set by setClassLoader(..)
- * @param url
- */
- public void addClassLoaderURL(URL url) {
- classLoader = null;
- urls.add(url);
- }
-
- private ClassLoader getParentClassLoader() {
- if (parent != null) {
- return parent.getClassLoader();
- } else {
- return Thread.currentThread().getContextClassLoader();
- }
- }
-
- public ClassLoader getClassLoader() {
- if (classLoader == null) {
- URL[] urlz = (URL[]) urls.toArray(new URL[urls.size()]);
- classLoader = new URLClassLoader(urlz, getParentClassLoader());
- }
- return classLoader;
- }
-
- public MutablePicoContainer getPicoContainer() {
- return picoContainer;
- }
-}

----------

nano /reflection /src /java /org /nanocontainer /reflection

InvalidConversionException.java removed after 1.1

diff -N InvalidConversionException.java
--- InvalidConversionException.java 10 Sep 2003 15:22:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@

-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by Joe Walnes *
- *****************************************************************************/
-
-
-package org.nanocontainer.reflection;
-
-public class InvalidConversionException extends RuntimeException {
-
- public InvalidConversionException(String message) {
- super(message);
- }
-
-}

----------

nano /reflection /src /java /org /nanocontainer /reflection

NanoTextRegistrationException.java removed after 1.1

diff -N NanoTextRegistrationException.java
--- NanoTextRegistrationException.java 10 Sep 2003 15:22:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@

-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by Aslak Hellesoy and Paul Hammant *
- *****************************************************************************/
-
-package org.nanocontainer.reflection;
-
-import org.picocontainer.PicoRegistrationException;
-
-public class NanoTextRegistrationException extends PicoRegistrationException {
-
- public NanoTextRegistrationException(String message) {
- super(message);
- }
-
-}

----------

nano /reflection /src /java /org /nanocontainer /reflection

ReflectionFrontEnd.java removed after 1.7

diff -N ReflectionFrontEnd.java
--- ReflectionFrontEnd.java 20 Oct 2003 08:26:06 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,58 +0,0 @@

-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by Aslak Hellesoy and Paul Hammant *
- *****************************************************************************/
-
-package org.nanocontainer.reflection;
-
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.PicoIntrospectionException;
-import org.picocontainer.PicoRegistrationException;
-
-import java.net.URL;
-
-/**
- * This class is a front-end to {@link MutablePicoContainer} that uses reflection
- * to register components.
- *
- * This class replaces the former StringRegistrationNanoContainer.
- */
-public interface ReflectionFrontEnd {
-
- void registerComponentImplementation(String componentImplementationClassName) throws PicoRegistrationException, ClassNotFoundException, PicoIntrospectionException;
-
- void registerComponent(Object key, String componentImplementationClassName) throws ClassNotFoundException;
-
- void registerComponentWithClassKey(String classKey, String componentImplementationClassName) throws ClassNotFoundException;
-
- void registerComponent(
- Object key,
- String componentImplementationClassName,
- String[] parameterTypesAsString,
- String[] parameterValuesAsString
- ) throws PicoRegistrationException, ClassNotFoundException, PicoIntrospectionException;
-
- /**
- * Sets what classloader to use. This will reset all previously set URLs.
- * This overrides the ClassLoaders that may have been set by addClassLoaderURL(..)
- * @see #addClassLoaderURL
- * @param classLoader
- */
- void setClassLoader(ClassLoader classLoader);
-
- /**
- * Adds a new URL.
- * This overrides the ClassLoader that may have been set by setClassLoader(..)
- * @param url
- */
- void addClassLoaderURL(URL url);
-
- MutablePicoContainer getPicoContainer();
-
- ClassLoader getClassLoader();
-}

----------

nano /reflection /src /java /org /nanocontainer /reflection

StringToObjectConverter.java removed after 1.1

diff -N StringToObjectConverter.java
--- StringToObjectConverter.java 10 Sep 2003 15:22:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,62 +0,0 @@

-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by Joe Walnes *
- *****************************************************************************/
-
-
-package org.nanocontainer.reflection;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class StringToObjectConverter {
-
- private final Map converters = new HashMap();
-
- public StringToObjectConverter() {
- register(String.class, new Converter() {
- public Object convert(String in) {
- return in;
- }
- });
-
- register(Integer.class, new Converter() {
- public Object convert(String in) {
- return in == null ? new Integer(0) : Integer.valueOf(in);
- }
- });
-
- register(Long.class, new Converter() {
- public Object convert(String in) {
- return in == null ? new Long(0) : Long.valueOf(in);
- }
- });
-
- register(Boolean.class, new Converter() {
- public Object convert(String in) {
- if (in == null || in.length() == 0) {
- return Boolean.FALSE;
- }
- char c = in.toLowerCase().charAt(0);
- return c == '1' || c == 'y' || c == 't' ? Boolean.TRUE : Boolean.FALSE;
- }
- });
- }
-
- public Object convertTo(Class desiredClass, String inputString) {
- Converter converter = (Converter) converters.get(desiredClass);
- if (converter == null) {
- throw new InvalidConversionException("Cannot convert to type " + desiredClass.getName());
- }
- return converter.convert(inputString);
- }
-
- public void register(Class type, Converter converter) {
- converters.put(type, converter);
- }
-}

----------

nano /reflection /src /java /org /nanocontainer /reflection

package.html removed after 1.1

diff -N package.html
--- package.html 10 Sep 2003 15:22:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@

-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-</head>
-<body>
-Foo
-</body>
-</html>

----------

nano /reflection /src /test /org /nanocontainer /reflection

DefaultReflectionFrontEndTestCase.java removed after 1.4

diff -N DefaultReflectionFrontEndTestCase.java
--- DefaultReflectionFrontEndTestCase.java 16 Nov 2003 19:53:31 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,189 +0,0 @@

-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by Aslak Hellesoy and Paul Hammant *
- *****************************************************************************/
-
-package org.nanocontainer.reflection;
-
-import junit.framework.TestCase;
-import org.nanocontainer.testmodel.DefaultWebServerConfig;
-import org.nanocontainer.testmodel.ThingThatTakesParamsInConstructor;
-import org.nanocontainer.testmodel.WebServerImpl;
-import org.picocontainer.*;
-
-import java.net.MalformedURLException;
-import java.util.Collection;
-import java.util.Vector;
-import java.io.File;
-
-public class DefaultReflectionFrontEndTestCase extends TestCase {
-
- public void testBasic() throws PicoRegistrationException, PicoInitializationException, ClassNotFoundException {
- ReflectionFrontEnd reflectionFrontEnd = new DefaultReflectionFrontEnd();
- reflectionFrontEnd.registerComponentImplementation("org.nanocontainer.testmodel.DefaultWebServerConfig");
- reflectionFrontEnd.registerComponent("org.nanocontainer.testmodel.WebServer", "org.nanocontainer.testmodel.WebServerImpl");
- }
-
- public void testProvision() throws PicoException, PicoInitializationException, ClassNotFoundException {
- ReflectionFrontEnd reflectionFrontEnd = new DefaultReflectionFrontEnd();
- reflectionFrontEnd.registerComponentImplementation("org.nanocontainer.testmodel.DefaultWebServerConfig");
- reflectionFrontEnd.registerComponentImplementation("org.nanocontainer.testmodel.WebServerImpl");
-
- assertTrue("WebServerImpl should exist", reflectionFrontEnd.getPicoContainer().hasComponent(WebServerImpl.class));
- assertNotNull("WebServerImpl should exist", reflectionFrontEnd.getPicoContainer().getComponentInstance(WebServerImpl.class));
- assertTrue("WebServerImpl should exist", reflectionFrontEnd.getPicoContainer().getComponentInstance(WebServerImpl.class) instanceof WebServerImpl);
- }
-
- public void testNoGenerationRegistration() throws PicoRegistrationException, PicoIntrospectionException {
- ReflectionFrontEnd reflectionFrontEnd = new DefaultReflectionFrontEnd();
- try {
- reflectionFrontEnd.registerComponentImplementation("Ping");
- fail("should have failed");
- } catch (ClassNotFoundException e) {
- // expected
- }
- }
-
- public void testParametersCanBePassedInStringForm() throws ClassNotFoundException, PicoException, PicoInitializationException {
- ReflectionFrontEnd reflectionFrontEnd = new DefaultReflectionFrontEnd();
- String className = ThingThatTakesParamsInConstructor.class.getName();
-
- reflectionFrontEnd.registerComponent(
- className,
- className,
- new String[] {
- "java.lang.String",
- "java.lang.Integer"
- },
- new String[] {
- "hello",
- "22"
- }
- );
-
- ThingThatTakesParamsInConstructor thing =
- (ThingThatTakesParamsInConstructor) reflectionFrontEnd.getPicoContainer().getComponentInstance(ThingThatTakesParamsInConstructor.class);
- assertNotNull("component not present", thing);
- assertEquals("hello22", thing.getValue());
- }
-
- public void testGetComponentTypes() throws ClassNotFoundException, PicoInitializationException, PicoRegistrationException {
-
- ReflectionFrontEnd reflectionFrontEnd = new DefaultReflectionFrontEnd();
-
- reflectionFrontEnd.registerComponentImplementation("org.nanocontainer.testmodel.DefaultWebServerConfig");
- reflectionFrontEnd.registerComponentImplementation("org.nanocontainer.testmodel.WebServerImpl");
-
- Collection keys = reflectionFrontEnd.getPicoContainer().getComponentKeys();
- assertEquals("There should be 2 keys", 2, keys.size());
- assertTrue("There should be a One key", keys.contains(DefaultWebServerConfig.class));
- }
-
- public void testStringContainerWithClassLoader() throws ClassNotFoundException, PicoException, PicoRegistrationException {
-
- ReflectionFrontEnd reflectionFrontEnd = new DefaultReflectionFrontEnd(DefaultWebServerConfig.class.getClassLoader());
-
- reflectionFrontEnd.registerComponentImplementation("org.nanocontainer.testmodel.DefaultWebServerConfig");
-
- Collection keys = reflectionFrontEnd.getPicoContainer().getComponentKeys();
- assertEquals("There should be 1 key", 1, keys.size());
-
- try
- {
- reflectionFrontEnd.getPicoContainer().getComponentInstance(Vector.class);
- //fail("should have barfed");
- }
- catch (ClassCastException e)
- {
- // ecpected
- }
- }
-
- public void testChildFrontEndCanRelyOnParentFrontEnd() throws MalformedURLException, ClassNotFoundException {
- ReflectionFrontEnd parentFrontEnd = new DefaultReflectionFrontEnd();
-
- String testcompJarFileName = System.getProperty("testcomp.jar");
-
- // Paul's path to TestComp. PLEASE do not take out.
- //testcompJarFileName = "D:/DEV/nano/reflection/src/test-comp/TestComp.jar";
-
- assertNotNull("The testcomp.jar system property should point to nano/reflection/src/test-comp/TestComp.jar", testcompJarFileName);
- File testCompJar = new File(testcompJarFileName);
- File testCompJar2 = new File(testCompJar.getParentFile(), "TestComp2.jar");
- assertTrue(testCompJar.isFile());
- assertTrue(testCompJar2.isFile());
-
- parentFrontEnd.addClassLoaderURL(testCompJar.toURL());
-
- parentFrontEnd.registerComponent("foo", "TestComp");
-
- PicoContainer parentFrontEndPico = parentFrontEnd.getPicoContainer();
- Object fooTestComp = parentFrontEndPico.getComponentInstance("foo");
- assertEquals("TestComp", fooTestComp.getClass().getName());
-
- ReflectionFrontEnd childFrontEnd = new DefaultReflectionFrontEnd(parentFrontEnd);
- childFrontEnd.addClassLoaderURL(testCompJar2.toURL());
-
- childFrontEnd.registerComponent("bar", "TestComp2");
-
- PicoContainer childFrontEndPico = childFrontEnd.getPicoContainer();
- Object barTestComp = childFrontEndPico.getComponentInstance("bar");
- assertEquals("TestComp2", barTestComp.getClass().getName());
-
- assertNotSame(fooTestComp, barTestComp);
- assertEquals("foo classloader should be parent of bar",fooTestComp.getClass().getClassLoader(),
- barTestComp.getClass().getClassLoader().getParent());
- Collection childContainers = parentFrontEndPico.getChildContainers();
- assertTrue(childContainers.contains(childFrontEndPico));
- }
-
- public static class AnotherFooComp {
-
- }
-
- public void testClassLoaderJugglingIsPossible() throws MalformedURLException, ClassNotFoundException {
- ReflectionFrontEnd parentFrontEnd = new DefaultReflectionFrontEnd();
-
- String testcompJarFileName = System.getProperty("testcomp.jar");
- // Paul's path to TestComp. PLEASE do not take out.
- //testcompJarFileName = "D:\\DEV\\nano\\reflection\\src\\test-comp\\TestComp.jar";
- assertNotNull("The testcomp.jar system property should point to nano/reflection/src/test-comp/TestComp.jar", testcompJarFileName);
- File testCompJar = new File(testcompJarFileName);
- assertTrue(testCompJar.isFile());
-
- parentFrontEnd.registerComponent("foo", "org.nanocontainer.testmodel.DefaultWebServerConfig");
-
- Object fooWebServerConfig = parentFrontEnd.getPicoContainer().getComponentInstance("foo");
- assertEquals("org.nanocontainer.testmodel.DefaultWebServerConfig", fooWebServerConfig.getClass().getName());
-
- ReflectionFrontEnd childFrontEnd = new DefaultReflectionFrontEnd(parentFrontEnd);
- childFrontEnd.addClassLoaderURL(testCompJar.toURL());
- childFrontEnd.registerComponent("bar", "TestComp");
-
- Object barTestComp = childFrontEnd.getPicoContainer().getComponentInstance("bar");
- assertEquals("TestComp", barTestComp.getClass().getName());
-
- assertNotSame(fooWebServerConfig.getClass().getClassLoader(), barTestComp.getClass().getClassLoader());
-
- // This kludge is needed because IDEA, Eclipse and Maven have different numbers of
- // classloaders in their hierachies for junit invocation.
- ClassLoader fooCL = fooWebServerConfig.getClass().getClassLoader();
- ClassLoader barCL1 = barTestComp.getClass().getClassLoader().getParent();
- ClassLoader barCL2, barCL3;
- if (barCL1 != null && barCL1 != fooCL) {
- barCL2 = barCL1.getParent();
- if (barCL2 != null && barCL2 != fooCL) {
- barCL3 = barCL2.getParent();
- if (barCL3 != null && barCL3 != fooCL) {
- fail("One of the parent classloaders of TestComp, should be that of DefaultWebServerConfig");
- }
- }
- }
- }
-
-}

----------

nano /reflection /src /test /org /nanocontainer /reflection

StringToObjectConverterTestCase.java removed after 1.1

diff -N StringToObjectConverterTestCase.java
--- StringToObjectConverterTestCase.java 10 Sep 2003 15:22:34 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,80 +0,0 @@

-package org.nanocontainer.reflection;
-
-import junit.framework.TestCase;
-
-import java.io.File;
-
-public class StringToObjectConverterTestCase extends TestCase {
- private StringToObjectConverter converter = new StringToObjectConverter();
-
- public void testConvertsToString() {
- assertEquals("hello", converter.convertTo(String.class, "hello"));
- assertEquals("", converter.convertTo(String.class, ""));
- }
-
- public void testConvertsToInts() {
- assertEquals(new Integer(22), converter.convertTo(Integer.class, "22"));
- assertEquals(new Integer(-9), converter.convertTo(Integer.class, "-9"));
- }
-
- public void testConvertsToLong() {
- assertEquals(new Long(123456789012L), converter.convertTo(Long.class, "123456789012"));
- assertEquals(new Long(-123456789012L), converter.convertTo(Long.class, "-123456789012"));
- assertEquals(new Long(0), converter.convertTo(Long.class, "0"));
- }
-
- public void testConvertsToBooleanUsingBestGuess() {
- assertEquals(Boolean.TRUE, converter.convertTo(Boolean.class, "t"));
- assertEquals(Boolean.TRUE, converter.convertTo(Boolean.class, "true"));
- assertEquals(Boolean.TRUE, converter.convertTo(Boolean.class, "T"));
- assertEquals(Boolean.TRUE, converter.convertTo(Boolean.class, "TRUE"));
- assertEquals(Boolean.TRUE, converter.convertTo(Boolean.class, "1"));
- assertEquals(Boolean.TRUE, converter.convertTo(Boolean.class, "yes"));
- assertEquals(Boolean.TRUE, converter.convertTo(Boolean.class, "Yo!"));
-
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, "f"));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, "false"));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, "FALSE"));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, "0"));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, "no"));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, "nada!"));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, ""));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, "I'm a lumberjack and I'm okay"));
- }
-
- public void testCustomConversionsCanBeRegistered() {
- converter.register(File.class, new Converter() {
- public Object convert(String in) {
- return new File(in);
- }
- });
- assertEquals("hello", converter.convertTo(String.class, "hello"));
- assertEquals(new File("hello"), converter.convertTo(File.class, "hello"));
- }
-
- public void testNullsMapToDefaultValues() {
- assertNull(converter.convertTo(String.class, null));
- assertEquals(new Integer(0), converter.convertTo(Integer.class, null));
- assertEquals(new Long(0), converter.convertTo(Long.class, null));
- assertEquals(Boolean.FALSE, converter.convertTo(Boolean.class, null));
- }
-
- public void testExceptionThrownIfConverterNotRegistered() {
- try {
- converter.convertTo(File.class, "hello");
- fail("Should have thrown exception");
- } catch (InvalidConversionException e) {
- // good
- }
- }
-
- public void testDodgyFormatThrowExceptions() {
- try {
- converter.convertTo(Integer.class, "fooo");
- fail("Should have thrown exception");
- } catch (NumberFormatException e) {
- // good
- }
- }
-
-}