0
我有一個與駱駝主要測試。我如何使用CDI與CamelTestSupport
@RunWith(EJBContainerRunner.class)
public class TestIntegrationBeanCtrlContrat extends CamelTestSupport {
@EndpointInject(uri = "mock:result")
protected MockEndpoint resultEndpoint;
@Produce(uri = "direct:start")
protected ProducerTemplate template;
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
@Override
public void configure() {
this.from("direct:start")
.bean(MappingCB2ABean.class, "mapToObj")
.bean(BeanCalculChampsSpecif.class, "beanChampsSpecif")
.bean(BeanAlimContrat.class, "beanAlimentationValContrat")
.bean(BeanInitDateForce.class, "initialisation")
.bean(CtrlContratBean.class, "ctrlContrat")
.to("mock:result");
}
};
}
@Test
public void test_ControleBean_Integration() throws Exception {
// Important : pensez à changer le nom du fichier ou répertoire où se trouve le fichier test
this.context.getShutdownStrategy().setTimeout(3000000L);
this.template.sendBody("direct:start", new File(
"C:/Files/spool_in/R2-CB2A-EM22055.REMCB2A.D20140505.H103059.FORCEDT20141210"));
}
}
每個bean工作正常,但是當我添加一個使用CDI組件的bean時,它不起作用。
該bean是CtrlContratBean。
public class CtrlContratBean {
@Inject
DateBusinessManager dateBusinessManager;
/**
* Bean Ctrl Contrat
*
* @param exchange
* @return
*/
public List<ContratControllable> ctrlContrat(final Exchange exchange) {
this.dateBusinessManager.getFirstDayOfMonth(
Integer.valueOf(TypeCalendar.CALENDAIRE.getValueCalendar()), valueForceDt);}
dateBusinessManager的值仍爲NULL。 dateBusinnesManager來自另一個連接到BDD以恢復數據的projet。
我不知道它爲什麼不起作用,我進一步將@RunWith(EJBContainerRunner.class)添加到測試類來運行Ejb容器。
任何想法? Thxs
我發現一個Camel-cdi.jar包含一個CdiBeanRegistry和方法查找,我們如何使用它? – Kikou