/** * 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; import java.util.Date; import org.apache.camel.builder.ExpressionBuilder; import org.apache.camel.impl.DefaultExchange; /** * @version */ public class CamelExceptionsTest extends ContextTestSupport { public void testExpectedBodyTypeException() { Exchange exchange = new DefaultExchange(context); ExpectedBodyTypeException e = new ExpectedBodyTypeException(exchange, Integer.class); assertSame(exchange, e.getExchange()); assertEquals(Integer.class, e.getExpectedBodyType()); } public void testExpressionEvaluationException() { Expression exp = ExpressionBuilder.constantExpression("foo"); Exchange exchange = new DefaultExchange(context); ExpressionEvaluationException e = new ExpressionEvaluationException(exp, exchange, new IllegalArgumentException("Damn")); assertSame(exchange, e.getExchange()); assertSame(exp, e.getExpression()); assertNotNull(e.getCause()); } public void testFailedToCreateConsumerException() { Endpoint endpoint = context.getEndpoint("seda:foo"); FailedToCreateConsumerException e = new FailedToCreateConsumerException(endpoint, new IllegalArgumentException("Damn")); assertEquals(endpoint.getEndpointUri(), e.getUri()); assertNotNull(e.getCause()); } public void testFailedToCreateProducerException() { Endpoint endpoint = context.getEndpoint("seda:foo"); FailedToCreateProducerException e = new FailedToCreateProducerException(endpoint, new IllegalArgumentException("Damn")); assertEquals(endpoint.getEndpointUri(), e.getUri()); assertNotNull(e.getCause()); } public void testInvalidPayloadRuntimeException() { Exchange exchange = new DefaultExchange(context); InvalidPayloadRuntimeException e = new InvalidPayloadRuntimeException(exchange, Integer.class); assertSame(exchange, e.getExchange()); assertEquals(Integer.class, e.getType()); InvalidPayloadRuntimeException e2 = new InvalidPayloadRuntimeException(exchange, Integer.class, exchange.getIn()); assertSame(exchange, e2.getExchange()); assertEquals(Integer.class, e2.getType()); InvalidPayloadRuntimeException e3 = new InvalidPayloadRuntimeException(exchange, Integer.class, exchange.getIn(), new IllegalArgumentException("Damn")); assertSame(exchange, e3.getExchange()); assertEquals(Integer.class, e3.getType()); } public void testRuntimeTransformException() { RuntimeTransformException e = new RuntimeTransformException("Forced"); assertEquals("Forced", e.getMessage()); assertNull(e.getCause()); RuntimeTransformException e2 = new RuntimeTransformException("Forced", new IllegalAccessException("Damn")); assertEquals("Forced", e2.getMessage()); assertNotNull(e2.getCause()); RuntimeTransformException e3 = new RuntimeTransformException(new IllegalAccessException("Damn")); assertEquals("java.lang.IllegalAccessException: Damn", e3.getMessage()); assertNotNull(e3.getCause()); } public void testRuntimeExpressionException() { RuntimeExpressionException e = new RuntimeExpressionException("Forced"); assertEquals("Forced", e.getMessage()); assertNull(e.getCause()); RuntimeExpressionException e2 = new RuntimeExpressionException("Forced", new IllegalAccessException("Damn")); assertEquals("Forced", e2.getMessage()); assertNotNull(e2.getCause()); RuntimeExpressionException e3 = new RuntimeExpressionException(new IllegalAccessException("Damn")); assertEquals("java.lang.IllegalAccessException: Damn", e3.getMessage()); assertNotNull(e3.getCause()); } public void testRollbackExchangeException() { Exchange exchange = new DefaultExchange(context); RollbackExchangeException e = new RollbackExchangeException(exchange, new IllegalAccessException("Damn")); assertNotNull(e.getMessage()); assertSame(exchange, e.getExchange()); RollbackExchangeException e2 = new RollbackExchangeException("Forced", exchange, new IllegalAccessException("Damn")); assertNotNull(e2.getMessage()); assertSame(exchange, e2.getExchange()); } public void testValidationException() { Exchange exchange = new DefaultExchange(context); ValidationException e = new ValidationException(exchange, "Forced"); assertNotNull(e.getMessage()); assertSame(exchange, e.getExchange()); ValidationException e2 = new ValidationException("Forced", exchange, new IllegalAccessException("Damn")); assertNotNull(e2.getMessage()); assertSame(exchange, e2.getExchange()); } public void testNoSuchBeanException() { NoSuchBeanException e = new NoSuchBeanException("foo"); assertEquals("foo", e.getName()); assertNull(e.getCause()); NoSuchBeanException e2 = new NoSuchBeanException("foo", new IllegalArgumentException("Damn")); assertEquals("foo", e2.getName()); assertNotNull(e2.getCause()); } public void testCamelExecutionException() { Exchange exchange = new DefaultExchange(context); CamelExecutionException e = new CamelExecutionException("Forced", exchange); assertNotNull(e.getMessage()); assertSame(exchange, e.getExchange()); assertNull(e.getCause()); CamelExecutionException e2 = new CamelExecutionException("Forced", exchange, new IllegalArgumentException("Damn")); assertNotNull(e2.getMessage()); assertSame(exchange, e2.getExchange()); assertNotNull(e2.getCause()); } public void testCamelException() { CamelException e = new CamelException(); assertNull(e.getCause()); CamelException e2 = new CamelException("Forced"); assertNull(e2.getCause()); assertEquals("Forced", e2.getMessage()); CamelException e3 = new CamelException("Forced", new IllegalArgumentException("Damn")); assertNotNull(e3.getCause()); assertEquals("Forced", e3.getMessage()); CamelException e4 = new CamelException(new IllegalArgumentException("Damn")); assertNotNull(e4.getCause()); assertNotNull(e4.getMessage()); } public void testServiceStatus() { assertTrue(ServiceStatus.Started.isStarted()); assertFalse(ServiceStatus.Starting.isStarted()); assertFalse(ServiceStatus.Starting.isStoppable()); assertFalse(ServiceStatus.Stopped.isStarted()); assertFalse(ServiceStatus.Stopping.isStarted()); assertTrue(ServiceStatus.Stopped.isStopped()); assertFalse(ServiceStatus.Starting.isStopped()); assertFalse(ServiceStatus.Started.isStopped()); assertFalse(ServiceStatus.Stopping.isStopped()); assertTrue(ServiceStatus.Stopped.isStartable()); assertFalse(ServiceStatus.Started.isStartable()); assertFalse(ServiceStatus.Starting.isStartable()); assertFalse(ServiceStatus.Stopping.isStartable()); assertTrue(ServiceStatus.Started.isStoppable()); assertFalse(ServiceStatus.Starting.isStoppable()); assertFalse(ServiceStatus.Stopped.isStoppable()); assertFalse(ServiceStatus.Stopping.isStoppable()); } public void testRuntimeExchangeException() { Exchange exchange = new DefaultExchange(context); RuntimeExchangeException e = new RuntimeExchangeException("Forced", exchange); assertNotNull(e.getMessage()); assertSame(exchange, e.getExchange()); RuntimeExchangeException e2 = new RuntimeExchangeException("Forced", null); assertNotNull(e2.getMessage()); assertNull(e2.getExchange()); } public void testExchangePattern() { assertTrue(ExchangePattern.InOnly.isInCapable()); assertTrue(ExchangePattern.InOptionalOut.isInCapable()); assertTrue(ExchangePattern.InOut.isInCapable()); assertFalse(ExchangePattern.RobustOutOnly.isInCapable()); assertFalse(ExchangePattern.InOnly.isFaultCapable()); assertTrue(ExchangePattern.InOptionalOut.isFaultCapable()); assertTrue(ExchangePattern.InOut.isFaultCapable()); assertFalse(ExchangePattern.InOnly.isOutCapable()); assertTrue(ExchangePattern.InOptionalOut.isOutCapable()); assertTrue(ExchangePattern.InOut.isOutCapable()); assertEquals(ExchangePattern.InOnly, ExchangePattern.asEnum("InOnly")); assertEquals(ExchangePattern.InOut, ExchangePattern.asEnum("InOut")); try { ExchangePattern.asEnum("foo"); fail("Should have thrown an exception"); } catch (IllegalArgumentException e) { // expected } } public void testInvalidPayloadException() { Exchange exchange = new DefaultExchange(context); InvalidPayloadException e = new InvalidPayloadException(exchange, Integer.class); assertSame(exchange, e.getExchange()); assertEquals(Integer.class, e.getType()); } public void testExchangeTimedOutException() { Exchange exchange = new DefaultExchange(context); ExchangeTimedOutException e = new ExchangeTimedOutException(exchange, 5000); assertSame(exchange, e.getExchange()); assertEquals(5000, e.getTimeout()); } public void testExpressionIllegalSyntaxException() { ExpressionIllegalSyntaxException e = new ExpressionIllegalSyntaxException("foo"); assertEquals("foo", e.getExpression()); } public void testNoFactoryAvailableException() { NoFactoryAvailableException e = new NoFactoryAvailableException("killer", new IllegalArgumentException("Damn")); assertNotNull(e.getCause()); assertEquals("killer", e.getUri()); } public void testCamelExchangeException() { Exchange exchange = new DefaultExchange(context); CamelExchangeException e = new CamelExchangeException("Forced", exchange); assertNotNull(e.getMessage()); assertSame(exchange, e.getExchange()); } public void testNoSuchHeaderException() { Exchange exchange = new DefaultExchange(context); NoSuchHeaderException e = new NoSuchHeaderException(exchange, "foo", Integer.class); assertEquals(Integer.class, e.getType()); assertEquals("foo", e.getHeaderName()); assertSame(exchange, e.getExchange()); } public void testNoSuchPropertyException() { Exchange exchange = new DefaultExchange(context); NoSuchPropertyException e = new NoSuchPropertyException(exchange, "foo", Integer.class); assertEquals(Integer.class, e.getType()); assertEquals("foo", e.getPropertyName()); assertSame(exchange, e.getExchange()); } public void testRuntimeCamelException() { RuntimeCamelException e = new RuntimeCamelException(); assertNull(e.getMessage()); assertNull(e.getCause()); } public void testFailedToStartRouteException() { FailedToStartRouteException e = new FailedToStartRouteException(new IllegalArgumentException("Forced")); assertNotNull(e.getMessage()); assertIsInstanceOf(IllegalArgumentException.class, e.getCause()); } public void testNoTypeConversionAvailableException() { NoTypeConversionAvailableException e = new NoTypeConversionAvailableException("foo", Date.class); assertEquals("foo", e.getValue()); assertEquals(Date.class, e.getToType()); assertEquals(String.class, e.getFromType()); NoTypeConversionAvailableException e2 = new NoTypeConversionAvailableException(null, Date.class); assertNull(e2.getValue()); assertEquals(Date.class, e2.getToType()); assertNull(null, e2.getFromType()); } public void testResolveEndpointFailedException() { ResolveEndpointFailedException e = new ResolveEndpointFailedException("foo:bar"); assertEquals("foo:bar", e.getUri()); } }