2015-05-20 5 views
0

У меня есть основной тест с Camel.Как я могу использовать 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")); 

} 

} 

Каждый боб работает отлично, но когда я добавить фасоль, которые используют компонент CDI, он не работает.

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 Still NULL. DateBusinnesManager приходит из другого проекта, который подключается к BDD для восстановления данных.

Я не знаю, почему это не работает, далее я добавляю @RunWith (EJBContainerRunner.class) в тестовый класс для запуска контейнера Ejb.

Любые идеи? Thxs

+0

Я нашел Camel-cdi.jar, содержащий CdiBeanRegistry с поиском методов, как мы можем его использовать? – Kikou

ответ

0

Я думаю, что вам, возможно, потребуется продлить CdiTestSupport вместо CamelTestSupport. Ключевым моментом является поиск правильного CdiContainer для использования, так как я не видел код EJBContainerRunner, вам может понадобиться работа там, если CdiTestSupport не работает.

Смежные вопросы