Author: janstey
Date: Mon Oct 20 09:30:04 2008
New Revision: 706330

URL: http://svn.apache.org/viewvc?rev=706330&view=rev
Log:
CAMEL-939 - Fix unit test that fails sometimes on slower machines

Modified:
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/LanguageTestSupport.java
    
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java

Modified: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/LanguageTestSupport.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/LanguageTestSupport.java?rev=706330&r1=706329&r2=706330&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/LanguageTestSupport.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/LanguageTestSupport.java
 Mon Oct 20 09:30:04 2008
@@ -16,6 +16,9 @@
  */
 package org.apache.camel;
 
+import org.apache.camel.spi.Language;
+import org.apache.camel.util.ExchangeHelper;
+
 /**
  * A useful base class for testing the language plugins in Camel
  * @version $Revision$
@@ -66,4 +69,26 @@
     protected void assertExpression(String expressionText, Object 
expectedValue) {
         assertExpression(exchange, expressionText, expectedValue);
     }
+    
+    /**
+     * Asserts that the expression evaluates to one of the two given values
+     */
+    protected void assertExpression(String expressionText, String 
expectedValue, String orThisExpectedValue) {
+        Language language = assertResolveLanguage(getLanguageName());
+
+        Expression<Exchange> expression = 
language.createExpression(expressionText);
+        assertNotNull("No Expression could be created for text: " + 
expressionText + " language: " + language, expression);
+        
+        Object value = expression.evaluate(exchange);
+
+        // lets try convert to the type of the expected
+        if (expectedValue != null) {
+          value = ExchangeHelper.convertToType(exchange, 
expectedValue.getClass(), value);
+        }
+
+        log.debug("Evaluated expression: " + expression + " on exchange: " + 
exchange + " result: " + value);
+
+        assertTrue("Expression: " + expression + " on Exchange: " + exchange, 
+                   expectedValue.equals(value) || 
orThisExpectedValue.equals(value));
+    }    
 }

Modified: 
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java?rev=706330&r1=706329&r2=706330&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java
 (original)
+++ 
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java
 Mon Oct 20 09:30:04 2008
@@ -24,7 +24,9 @@
 public class PythonLanguageTest extends LanguageTestSupport {
     
     public void testLanguageExpressions() throws Exception {
-        assertExpression("exchange.in.headers", "{foo=abc, bar=123}");
+        // the properties are stored in a set so ordering is not known
+        assertExpression("exchange.in.headers", "{foo=abc, bar=123}", 
"{bar=123, foo=abc}");
+        
         assertExpression("exchange.in", "Message: <hello 
id='m123'>world!</hello>");
         assertExpression("exchange.in.headers.get('foo')", "abc");
         assertExpression("request.headers['foo']", "abc");


Reply via email to