Author: dvaleri
Date: Mon Apr 16 19:30:44 2012
New Revision: 1326761
URL: http://svn.apache.org/viewvc?rev=1326761&view=rev
Log:
Added annotation and tests for MockEndpointsAndSkip feature in CamelTestSupport.
Added:
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/MockEndpointsAndSkip.java
(with props)
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsAndSkipTest.java
- copied, changed from r1326746,
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsAndSkipTest.java
- copied, changed from r1326746,
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java
Modified:
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java
Modified:
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java?rev=1326761&r1=1326760&r2=1326761&view=diff
==============================================================================
---
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java
(original)
+++
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java
Mon Apr 16 19:30:44 2012
@@ -159,6 +159,7 @@ public class CamelSpringTestContextLoade
handleProvidesBreakpoint(context, testClass);
handleShutdownTimeout(context, testClass);
handleMockEndpoints(context, testClass);
+ handleMockEndpointsAndSkip(context, testClass);
handleLazyLoadTypeConverters(context, testClass);
// CamelContext(s) startup
@@ -421,6 +422,33 @@ public class CamelSpringTestContextLoade
}
}
+ /**
+ * Handles auto-intercepting of endpoints with mocks based on {@link
MockEndpoints} and skipping the
+ * original endpoint.
+ *
+ * @param context the initialized Spring context
+ * @param testClass the test class being executed
+ */
+ protected void handleMockEndpointsAndSkip(GenericApplicationContext
context, Class<?> testClass) throws Exception {
+ if (testClass.isAnnotationPresent(MockEndpoints.class)) {
+
+ final String mockEndpoints = testClass.getAnnotation(
+ MockEndpoints.class).value();
+ CamelSpringTestHelper.doToSpringCamelContexts(context, new
DoToSpringCamelContextsStrategy() {
+
+ @Override
+ public void execute(String contextName, SpringCamelContext
camelContext)
+ throws Exception {
+
+ LOG.info("Enabling auto mocking and skipping of endpoints
matching pattern [{}] on "
+ + "CamelContext with name [{}].", mockEndpoints,
contextName);
+ camelContext.addRegisterEndpointCallback(
+ new
InterceptSendToMockEndpointStrategy(mockEndpoints, true));
+ }
+ });
+ }
+ }
+
@SuppressWarnings("deprecation")
protected void handleLazyLoadTypeConverters(GenericApplicationContext
context, Class<?> testClass) throws Exception {
final boolean lazy;
Added:
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/MockEndpointsAndSkip.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/MockEndpointsAndSkip.java?rev=1326761&view=auto
==============================================================================
---
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/MockEndpointsAndSkip.java
(added)
+++
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/MockEndpointsAndSkip.java
Mon Apr 16 19:30:44 2012
@@ -0,0 +1,43 @@
+/**
+ * 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.test.spring;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.camel.impl.InterceptSendToMockEndpointStrategy;
+
+/**
+ * Triggers the auto-mocking of endpoints whose URIs match the provided filter
with the added provision
+ * that the endpoints are also skipped. The default filter is "*" which
matches all endpoints.
+ * See {@link InterceptSendToMockEndpointStrategy} for more details on the
registration of the mock endpoints.
+ */
+@Documented
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE})
+public @interface MockEndpointsAndSkip {
+
+ /**
+ * The pattern to use for matching endpoints to enable mocking on.
+ */
+ String value() default "*";
+}
Propchange:
camel/trunk/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/MockEndpointsAndSkip.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied:
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsAndSkipTest.java
(from r1326746,
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsAndSkipTest.java?p2=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsAndSkipTest.java&p1=camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java&r1=1326746&r2=1326761&rev=1326761&view=diff
==============================================================================
---
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java
(original)
+++
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsAndSkipTest.java
Mon Apr 16 19:30:44 2012
@@ -17,24 +17,37 @@
package org.apache.camel.test.junit4;
import org.apache.camel.EndpointInject;
+import org.apache.camel.ServiceStatus;
import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.MockEndpoints;
+import org.apache.camel.test.spring.MockEndpointsAndSkip;
import org.junit.Test;
-@MockEndpoints("log:*")
-public class CamelSpringJUnit4ClassRunnerMockEndpointsTest
+import static org.junit.Assert.assertEquals;
+
+@MockEndpointsAndSkip("mock:c")
+public class CamelSpringJUnit4ClassRunnerMockEndpointsAndSkipTest
extends CamelSpringJUnit4ClassRunnerPlainTest {
- @EndpointInject(uri = "mock:log:org.apache.camel.test.junit4.spring",
context = "camelContext2")
- protected MockEndpoint mockLog;
+ @EndpointInject(uri = "mock:mock:c", context = "camelContext2")
+ protected MockEndpoint mockMockC;
+
+ @EndpointInject(uri = "mock:c", context = "camelContext2")
+ protected MockEndpoint mockC;
@Test
@Override
public void testPositive() throws Exception {
- mockLog.expectedBodiesReceived("Hello David");
+ assertEquals(ServiceStatus.Started, camelContext.getStatus());
+ assertEquals(ServiceStatus.Started, camelContext2.getStatus());
+
+ mockA.expectedBodiesReceived("David");
+ mockB.expectedBodiesReceived("Hello David");
+ mockC.expectedMessageCount(0);
+ mockMockC.expectedBodiesReceived("Hello David");
- super.testPositive();
+ start.sendBody("David");
+ start2.sendBody("David");
- mockLog.assertIsSatisfied();
+ MockEndpoint.assertIsSatisfied(camelContext);
}
}
Modified:
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java?rev=1326761&r1=1326760&r2=1326761&view=diff
==============================================================================
---
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java
(original)
+++
camel/trunk/components/camel-test-spring/src/test/java/org/apache/camel/test/junit4/CamelSpringJUnit4ClassRunnerMockEndpointsTest.java
Mon Apr 16 19:30:44 2012
@@ -17,24 +17,35 @@
package org.apache.camel.test.junit4;
import org.apache.camel.EndpointInject;
+import org.apache.camel.ServiceStatus;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.spring.MockEndpoints;
import org.junit.Test;
-@MockEndpoints("log:*")
+import static org.junit.Assert.assertEquals;
+
+@MockEndpoints("mock:c*")
public class CamelSpringJUnit4ClassRunnerMockEndpointsTest
extends CamelSpringJUnit4ClassRunnerPlainTest {
- @EndpointInject(uri = "mock:log:org.apache.camel.test.junit4.spring",
context = "camelContext2")
- protected MockEndpoint mockLog;
+ @EndpointInject(uri = "mock:mock:c", context = "camelContext2")
+ protected MockEndpoint mockMockC;
@Test
@Override
public void testPositive() throws Exception {
- mockLog.expectedBodiesReceived("Hello David");
- super.testPositive();
+ assertEquals(ServiceStatus.Started, camelContext.getStatus());
+ assertEquals(ServiceStatus.Started, camelContext2.getStatus());
+
+ mockA.expectedBodiesReceived("David");
+ mockB.expectedBodiesReceived("Hello David");
+ mockC.expectedBodiesReceived("Hello David");
+ mockMockC.expectedBodiesReceived("Hello David");
+
+ start.sendBody("David");
+ start2.sendBody("David");
- mockLog.assertIsSatisfied();
+ MockEndpoint.assertIsSatisfied(camelContext);
}
}
Copied:
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsAndSkipTest.java
(from r1326746,
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsAndSkipTest.java?p2=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsAndSkipTest.java&p1=camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java&r1=1326746&r2=1326761&rev=1326761&view=diff
==============================================================================
---
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java
(original)
+++
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsAndSkipTest.java
Mon Apr 16 19:30:44 2012
@@ -17,25 +17,37 @@
package org.apache.camel.testng;
import org.apache.camel.EndpointInject;
+import org.apache.camel.ServiceStatus;
import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.MockEndpoints;
-
+import org.apache.camel.test.spring.MockEndpointsAndSkip;
import org.testng.annotations.Test;
-@MockEndpoints("log:*")
-public class AbstractCamelTestNGSpringContextTestsMockEndpointsTest
+import static org.junit.Assert.assertEquals;
+
+@MockEndpointsAndSkip("mock:c")
+public class AbstractCamelTestNGSpringContextTestsMockEndpointsAndSkipTest
extends AbstractCamelTestNGSpringContextTestsPlainTest {
- @EndpointInject(uri = "mock:log:org.apache.camel.test.junit4.spring",
context = "camelContext2")
- protected MockEndpoint mockLog;
+ @EndpointInject(uri = "mock:mock:c", context = "camelContext2")
+ protected MockEndpoint mockMockC;
+
+ @EndpointInject(uri = "mock:c", context = "camelContext2")
+ protected MockEndpoint mockC;
@Test
@Override
public void testPositive() throws Exception {
- mockLog.expectedBodiesReceived("Hello David");
+ assertEquals(ServiceStatus.Started, camelContext.getStatus());
+ assertEquals(ServiceStatus.Started, camelContext2.getStatus());
+
+ mockA.expectedBodiesReceived("David");
+ mockB.expectedBodiesReceived("Hello David");
+ mockC.expectedMessageCount(0);
+ mockMockC.expectedBodiesReceived("Hello David");
- super.testPositive();
+ start.sendBody("David");
+ start2.sendBody("David");
- mockLog.assertIsSatisfied();
+ MockEndpoint.assertIsSatisfied(camelContext);
}
}
Modified:
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java?rev=1326761&r1=1326760&r2=1326761&view=diff
==============================================================================
---
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java
(original)
+++
camel/trunk/components/camel-testng/src/test/java/org/apache/camel/testng/AbstractCamelTestNGSpringContextTestsMockEndpointsTest.java
Mon Apr 16 19:30:44 2012
@@ -17,25 +17,36 @@
package org.apache.camel.testng;
import org.apache.camel.EndpointInject;
+import org.apache.camel.ServiceStatus;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.spring.MockEndpoints;
import org.testng.annotations.Test;
-@MockEndpoints("log:*")
+import static org.junit.Assert.assertEquals;
+
+@MockEndpoints("mock:c*")
public class AbstractCamelTestNGSpringContextTestsMockEndpointsTest
extends AbstractCamelTestNGSpringContextTestsPlainTest {
- @EndpointInject(uri = "mock:log:org.apache.camel.test.junit4.spring",
context = "camelContext2")
- protected MockEndpoint mockLog;
+ @EndpointInject(uri = "mock:mock:c", context = "camelContext2")
+ protected MockEndpoint mockMockC;
@Test
@Override
public void testPositive() throws Exception {
- mockLog.expectedBodiesReceived("Hello David");
- super.testPositive();
+ assertEquals(ServiceStatus.Started, camelContext.getStatus());
+ assertEquals(ServiceStatus.Started, camelContext2.getStatus());
+
+ mockA.expectedBodiesReceived("David");
+ mockB.expectedBodiesReceived("Hello David");
+ mockC.expectedBodiesReceived("Hello David");
+ mockMockC.expectedBodiesReceived("Hello David");
+
+ start.sendBody("David");
+ start2.sendBody("David");
- mockLog.assertIsSatisfied();
+ MockEndpoint.assertIsSatisfied(camelContext);
}
}