Skip to content

Commit

Permalink
CAMEL-21080: introduce new interfaces for simplifying migration of th…
Browse files Browse the repository at this point in the history
…e test code
  • Loading branch information
orpiske committed Sep 24, 2024
1 parent a179d0a commit 6419feb
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
* testing.
*/
public abstract class CamelTestSupport extends AbstractTestSupport
implements BeforeTestExecutionCallback, AfterTestExecutionCallback {
implements BeforeTestExecutionCallback, AfterTestExecutionCallback, ConfigurableTest, ConfigurableContext {
private static final Logger LOG = LoggerFactory.getLogger(CamelTestSupport.class);

@RegisterExtension
Expand All @@ -71,11 +71,13 @@ public abstract class CamelTestSupport extends AbstractTestSupport
protected CamelTestSupport() {
super(new TestExecutionConfiguration(), new CamelContextConfiguration());

testConfigurationBuilder.withJMX(useJmx())
.withUseRouteBuilder(isUseRouteBuilder())
.withUseAdviceWith(isUseAdviceWith())
.withDumpRouteCoverage(isDumpRouteCoverage());
configureTest(testConfigurationBuilder);
configureContext(camelContextConfiguration);
contextManagerExtension = new ContextManagerExtension(testConfigurationBuilder, camelContextConfiguration);
}

@Override
public void configureContext(CamelContextConfiguration camelContextConfiguration) {
camelContextConfiguration
.withCamelContextSupplier(this::createCamelContext)
.withRegistryBinder(this::bindToRegistry)
Expand All @@ -86,8 +88,14 @@ protected CamelTestSupport() {
.withRouteFilterIncludePattern(getRouteFilterIncludePattern())
.withMockEndpoints(isMockEndpoints())
.withMockEndpointsAndSkip(isMockEndpointsAndSkip());
}

contextManagerExtension = new ContextManagerExtension(testConfigurationBuilder, camelContextConfiguration);
@Override
public void configureTest(TestExecutionConfiguration testExecutionConfiguration) {
testExecutionConfiguration.withJMX(useJmx())
.withUseRouteBuilder(isUseRouteBuilder())
.withUseAdviceWith(isUseAdviceWith())
.withDumpRouteCoverage(isDumpRouteCoverage());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* 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.junit5;

/**
* Indicates that the context used by the test is configurable
*/
public interface ConfigurableContext {
/**
* Configures the context used for the test execution
*
* @param camelContextConfiguration
*/
void configureContext(CamelContextConfiguration camelContextConfiguration);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* 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.junit5;

/**
* Indicates that the test is configurable
*/
public interface ConfigurableTest {
/**
* Configures the test execution
*
* @param testExecutionConfiguration
*/
void configureTest(TestExecutionConfiguration testExecutionConfiguration);
}

0 comments on commit 6419feb

Please sign in to comment.