You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/09/30 16:15:10 UTC

svn commit: r820276 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/impl/converter/ test/java/org/apache/camel/converter/

Author: davsclaus
Date: Wed Sep 30 14:15:09 2009
New Revision: 820276

URL: http://svn.apache.org/viewvc?rev=820276&view=rev
Log:
MR-187: Added more unit tests.

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/converter/EnumConverterTest.java   (with props)
    camel/trunk/camel-core/src/test/java/org/apache/camel/converter/FutureConverterTest.java   (with props)
    camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceDummyFallbackConverter.java   (with props)
    camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceFallbackConverterTest.java   (with props)
    camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticDummyFallbackConverter.java   (with props)
    camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticFallbackConverterTest.java   (with props)
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java?rev=820276&r1=820275&r2=820276&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java Wed Sep 30 14:15:09 2009
@@ -164,6 +164,12 @@
         // fallback converters
         for (TypeConverter fallback : fallbackConverters) {
             Object rc = fallback.convertTo(type, exchange, value);
+
+            if (Void.TYPE.equals(rc)) {
+                // it cannot be converted so give up
+                return Void.TYPE;
+            }
+
             if (rc != null) {
                 // add it as a known type converter since we found a fallback that could do it
                 if (LOG.isDebugEnabled()) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java?rev=820276&r1=820275&r2=820276&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/FutureTypeConverter.java Wed Sep 30 14:15:09 2009
@@ -45,6 +45,7 @@
         this.converter = converter;
     }
 
+    @SuppressWarnings("unchecked")
     private <T> T doConvertTo(Class<T> type, Exchange exchange, Object value) throws Exception {
         // do not convert to stream cache
         if (StreamCache.class.isAssignableFrom(value.getClass())) {
@@ -56,7 +57,8 @@
             Future future = (Future) value;
 
             if (future.isCancelled()) {
-                return null;
+                // return void to indicate its not possible to convert at this time
+                return (T) Void.TYPE;
             }
 
             // do some trace logging as the get is blocking until the response is ready
@@ -79,7 +81,8 @@
             }
 
             if (body == null) {
-                return null;
+                // return void to indicate its not possible to convert at this time
+                return (T) Void.TYPE;
             }
 
             // maybe from is already the type we want

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java?rev=820276&r1=820275&r2=820276&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/InstanceMethodFallbackTypeConverter.java Wed Sep 30 14:15:09 2009
@@ -59,7 +59,7 @@
             throw new RuntimeCamelException("Could not instantiate an instance of: " + type.getCanonicalName());
         }
         return useExchange
-            ? (T)ObjectHelper.invokeMethod(method, instance, type, value, exchange, registry) : (T)ObjectHelper
+            ? (T)ObjectHelper.invokeMethod(method, instance, type, exchange, value, registry) : (T)ObjectHelper
                 .invokeMethod(method, instance, type, value, registry);
     }
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java?rev=820276&r1=820275&r2=820276&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/ToStringTypeConverter.java Wed Sep 30 14:15:09 2009
@@ -16,8 +16,11 @@
  */
 package org.apache.camel.impl.converter;
 
+import java.util.concurrent.Future;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.TypeConverter;
+import org.apache.camel.component.file.GenericFile;
 
 /**
  * A simple converter that can convert any object to a String type by using the
@@ -30,6 +33,17 @@
     @SuppressWarnings("unchecked")
     public <T> T convertTo(Class<T> toType, Object value) {
         if (value != null) {
+
+            // should not try to convert future
+            if (Future.class.isAssignableFrom(value.getClass())) {
+                return (T) Void.TYPE;
+            }
+
+            // should not try to convert files
+            if (GenericFile.class.isAssignableFrom(value.getClass())) {
+                return (T) Void.TYPE;
+            }
+
             if (toType.equals(String.class)) {
                 return (T)value.toString();
             }

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/EnumConverterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/EnumConverterTest.java?rev=820276&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/EnumConverterTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/EnumConverterTest.java Wed Sep 30 14:15:09 2009
@@ -0,0 +1,50 @@
+/**
+ * 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.camel.converter;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.impl.DefaultExchange;
+
+/**
+ * @version $Revision$
+ */
+public class EnumConverterTest extends ContextTestSupport {
+
+    public void testMandatoryConvertEnum() throws Exception {
+        LoggingLevel level = context.getTypeConverter().mandatoryConvertTo(LoggingLevel.class, "DEBUG");
+        assertEquals(LoggingLevel.DEBUG, level);
+    }
+
+    public void testMandatoryConvertWithExchangeEnum() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        LoggingLevel level = context.getTypeConverter().mandatoryConvertTo(LoggingLevel.class, exchange, "WARN");
+        assertEquals(LoggingLevel.WARN, level);
+    }
+
+    public void testMandatoryConvertFailed() throws Exception {
+        try {
+            context.getTypeConverter().mandatoryConvertTo(LoggingLevel.class, "XXX");
+            fail("Should have thrown an exception");
+        } catch (NoTypeConversionAvailableException e) {
+            // expected
+        }
+    }
+
+}

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/EnumConverterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/EnumConverterTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/FutureConverterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/FutureConverterTest.java?rev=820276&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/FutureConverterTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/FutureConverterTest.java Wed Sep 30 14:15:09 2009
@@ -0,0 +1,108 @@
+/**
+ * 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.camel.converter;
+
+import java.sql.Timestamp;
+import java.util.concurrent.Future;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.DefaultExchange;
+
+/**
+ * @version $Revision$
+ */
+public class FutureConverterTest extends ContextTestSupport {
+
+    public void testConvertFuture() {
+        Future future = template.asyncRequestBody("direct:foo", "Hello World");
+
+        String out = context.getTypeConverter().convertTo(String.class, future);
+        assertEquals("Bye World", out);
+    }
+
+    public void testConvertMandatoryFuture() throws Exception {
+        Future future = template.asyncRequestBody("direct:foo", "Hello World");
+
+        String out = context.getTypeConverter().mandatoryConvertTo(String.class, future);
+        assertEquals("Bye World", out);
+    }
+
+    public void testConvertMandatoryFutureWithExchange() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        Future future = template.asyncRequestBody("direct:foo", "Hello World");
+
+        String out = context.getTypeConverter().mandatoryConvertTo(String.class, exchange, future);
+        assertEquals("Bye World", out);
+    }
+
+    public void testConvertMandatoryFutureWithExchangeFailed() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        Future future = template.asyncRequestBody("direct:foo", "Hello World");
+
+        try {
+            context.getTypeConverter().mandatoryConvertTo(Timestamp.class, exchange, future);
+            fail("Should have thrown an exception");
+        } catch (NoTypeConversionAvailableException e) {
+            // expected
+        }
+    }
+
+    public void testConvertFutureWithExchangeFailed() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        Future future = template.asyncRequestBody("direct:foo", "Hello World");
+
+        Timestamp out = context.getTypeConverter().convertTo(Timestamp.class, exchange, future);
+        assertNull(out);
+    }
+
+    public void testConvertFutureCancelled() {
+        Future future = template.asyncRequestBody("direct:foo", "Hello World");
+        future.cancel(true);
+
+        Object out = context.getTypeConverter().convertTo(String.class, future);
+        // should be null since its cancelled
+        assertNull(out);
+    }
+
+    public void testConvertFutureCancelledThenOkay() {
+        Future future = template.asyncRequestBody("direct:foo", "Hello World");
+        future.cancel(true);
+
+        Object out = context.getTypeConverter().convertTo(String.class, future);
+        // should be null since its cancelled
+        assertNull(out);
+
+        future = template.asyncRequestBody("direct:foo", "Hello World");
+
+        out = context.getTypeConverter().convertTo(String.class, future);
+        // not cancelled so we get the result this time
+        assertEquals("Bye World", out);
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:foo").delay(500).transform(constant("Bye World"));
+            }
+        };
+    }
+}

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/FutureConverterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/FutureConverterTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceDummyFallbackConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceDummyFallbackConverter.java?rev=820276&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceDummyFallbackConverter.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceDummyFallbackConverter.java Wed Sep 30 14:15:09 2009
@@ -0,0 +1,40 @@
+/**
+ * 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.camel.converter;
+
+import java.util.Currency;
+
+import org.apache.camel.Converter;
+import org.apache.camel.Exchange;
+import org.apache.camel.FallbackConverter;
+import org.apache.camel.spi.TypeConverterRegistry;
+
+/**
+ * @version $Revision$
+ */
+@Converter
+public class InstanceDummyFallbackConverter {
+
+    @FallbackConverter
+    public Object convertTo(Class<?> type, Exchange exchange, Object value, TypeConverterRegistry registry) {
+        if (Currency.class.isAssignableFrom(value.getClass())) {
+            return "Money talks";
+        }
+        return null;
+    }
+
+}

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceDummyFallbackConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceDummyFallbackConverter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceFallbackConverterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceFallbackConverterTest.java?rev=820276&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceFallbackConverterTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceFallbackConverterTest.java Wed Sep 30 14:15:09 2009
@@ -0,0 +1,68 @@
+/**
+ * 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.camel.converter;
+
+import java.sql.Date;
+import java.sql.Timestamp;
+import java.util.Currency;
+import java.util.Locale;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.impl.DefaultExchange;
+
+/**
+ * @version $Revision$
+ */
+public class InstanceFallbackConverterTest extends ContextTestSupport {
+
+    public void testIntanceFallbackConverter() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        Currency cur = Currency.getInstance(Locale.US);
+
+        String money = context.getTypeConverter().convertTo(String.class, exchange, cur);
+        assertEquals("Money talks", money);
+    }
+
+    public void testIntanceFallbackMandatoryConverter() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        Currency cur = Currency.getInstance(Locale.US);
+
+        String money = context.getTypeConverter().mandatoryConvertTo(String.class, exchange, cur);
+        assertEquals("Money talks", money);
+    }
+
+    public void testIntanceFallbackMandatoryFailed() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+
+        try {
+            context.getTypeConverter().mandatoryConvertTo(Date.class, exchange, new Timestamp(0));
+            fail("Should have thrown an exception");
+        } catch (NoTypeConversionAvailableException e) {
+            // expected
+        }
+    }
+
+    public void testIntanceFallbackFailed() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+
+        Date out = context.getTypeConverter().convertTo(Date.class, exchange, new Timestamp(0));
+        assertNull(out);
+    }
+
+}

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceFallbackConverterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/InstanceFallbackConverterTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticDummyFallbackConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticDummyFallbackConverter.java?rev=820276&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticDummyFallbackConverter.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticDummyFallbackConverter.java Wed Sep 30 14:15:09 2009
@@ -0,0 +1,40 @@
+/**
+ * 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.camel.converter;
+
+import java.util.TimeZone;
+
+import org.apache.camel.Converter;
+import org.apache.camel.Exchange;
+import org.apache.camel.FallbackConverter;
+import org.apache.camel.spi.TypeConverterRegistry;
+
+/**
+ * @version $Revision$
+ */
+@Converter
+public class StaticDummyFallbackConverter {
+
+    @FallbackConverter
+    public static Object convertTo(Class<?> type, Exchange exchange, Object value, TypeConverterRegistry registry) {
+        if (TimeZone.class.isAssignableFrom(value.getClass())) {
+            return "Time talks";
+        }
+        return null;
+    }
+
+}
\ No newline at end of file

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticDummyFallbackConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticDummyFallbackConverter.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticFallbackConverterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticFallbackConverterTest.java?rev=820276&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticFallbackConverterTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticFallbackConverterTest.java Wed Sep 30 14:15:09 2009
@@ -0,0 +1,67 @@
+/**
+ * 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.camel.converter;
+
+import java.sql.Date;
+import java.sql.Timestamp;
+import java.util.TimeZone;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.impl.DefaultExchange;
+
+/**
+ * @version $Revision$
+ */
+public class StaticFallbackConverterTest extends ContextTestSupport {
+
+    public void testStaticFallbackConverter() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        TimeZone tz = TimeZone.getDefault();
+
+        String money = context.getTypeConverter().convertTo(String.class, exchange, tz);
+        assertEquals("Time talks", money);
+    }
+
+    public void testStaticFallbackMandatoryConverter() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+        TimeZone tz = TimeZone.getDefault();
+
+        String money = context.getTypeConverter().mandatoryConvertTo(String.class, exchange, tz);
+        assertEquals("Time talks", money);
+    }
+
+    public void testStaticFallbackMandatoryFailed() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+
+        try {
+            context.getTypeConverter().mandatoryConvertTo(Date.class, exchange, new Timestamp(0));
+            fail("Should have thrown an exception");
+        } catch (NoTypeConversionAvailableException e) {
+            // expected
+        }
+    }
+
+    public void testStaticFallbackFailed() throws Exception {
+        Exchange exchange = new DefaultExchange(context);
+
+        Date out = context.getTypeConverter().convertTo(Date.class, exchange, new Timestamp(0));
+        assertNull(out);
+    }
+
+}
\ No newline at end of file

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticFallbackConverterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/StaticFallbackConverterTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date