Hi

junit4 is deprecated and to be removed in a future Camel release.

On Thu, Sep 9, 2021 at 1:03 PM Karen Lease <karenlease...@gmail.com> wrote:
>
> Hi Evert-Jan,
>
> I found a working Junit5 solution in current camel and addded a comment
> a working files to the JIRA issue. But so far I didn't figure out why it
> no longer works with Junit4.
>
> Regards,
> Karen Lease
>
> On 06/09/2021 11:22, Evert-Jan de Bruin wrote:
> > Hi Claus,
> >
> > I have created a JIRA issue with a sample testcase: 
> > https://issues.apache.org/jira/browse/CAMEL-16925
> >
> > Thank you!
> >
> > Evert-Jan de Bruin
> >
> > -----Oorspronkelijk bericht-----
> > Van: Claus Ibsen <claus.ib...@gmail.com>
> > Verzonden: zaterdag 4 september 2021 22:50
> > Aan: users@camel.apache.org
> > Onderwerp: Re: CamelSpringBootRunner no longer working since 3.5.0?
> >
> > Hi
> >
> > Put together a small spring boot sample app that does this web app port 
> > number testing thingy, and add the Camel route.
> > Then put it on github somewhere or create a JIRA and attach a .zip file so 
> > others can take a look.
> >
> > On Sat, Sep 4, 2021 at 10:34 PM Evert-Jan de Bruin 
> > <evert-jan.de.br...@caci.nl.invalid> wrote:
> >>
> >> Hi there,
> >>
> >> Thanks, but this is not what we are looking for nor how all our 
> >> integration tests are setup right now.
> >>
> >> I know Camel provides a myriad of ways to test your routes by changing 
> >> parts of the route as a mock. We also use that for unit-testing our 
> >> Processors. It is how I started out for integration tests as well, until a 
> >> colleague pointed out we should test the route *as is* and just mock the 
> >> REST call and other endpoints. From an integration point of view (treating 
> >> camel routes as a black box) this is a more 'pure' form of testing. Also, 
> >> it makes it easier to test certain how our route is handling HTTP requests 
> >> and responses, which are harder to mock with direct: routes.
> >>
> >> So from a functional point of view: can we still do integration tests on 
> >> REST services in Camel, where the routes are not altered in any form and 
> >> an actual webserver boots and runs the route? Or has there been a 
> >> conscious choice to no longer support that scenario?
> >>
> >> Regards,
> >> Evert-Jan
> >>
> >>
> >> -----Oorspronkelijk bericht-----
> >> Van: mail4...@gmail.com <mail4...@gmail.com>
> >> Verzonden: vrijdag 3 september 2021 22:06
> >> Aan: Evert-Jan de Bruin <evert-jan.de.br...@caci.nl.INVALID>
> >> CC: users@camel.apache.org
> >> Onderwerp: Re: CamelSpringBootRunner no longer working since 3.5.0?
> >>
> >> Hi!
> >>
> >> I have walked your way recently.
> >>
> >> That is what I achieved.
> >>
> >> build.gradle:
> >> _____________
> >>      testImplementation 'org.springframework.boot:spring-boot-starter-
> >> test'
> >>      testImplementation 'org.apache.camel:camel-test-spring-
> >> junit5:3.11.0'
> >>
> >>
> >> test:
> >> _____
> >>
> >> @SpringBootTest(classes = MyApplication.class) // for run test
> >> @CamelSpringBootTest // for autowire and start Camel Context
> >> @UseAdviceWith // for modify routes to be able to test them
> >> @Transactional // for not to save into database public class MyTest {
> >>
> >>    @Autowired
> >>    CamelContext camelContext;
> >>
> >>    @Test
> >>    void anyTest {
> >>      // you must use advice before starting Camel context
> >>      doMockEndpoints();
> >>      // prepare your data
> >>
> >>      MockEndpoint resultEndpoint =
> >> camelContext.getEndpoint(MOKED_ENPOINT_URI, MockEndpoint.class);
> >>
> >>      // you must start the context manually
> >>      camelContext.start();
> >>
> >>      // set up of mock endpoint
> >>      resultEndpoint.expectedMessageCount(1);
> >>      resultEndpoint.expectedBodiesReceived(aRequest());
> >>
> >>      producerTemplate.sendBody(START_ENDPOINT_URI,
> >> objectMapper.writeValueAsString(anIssueCardRequest()));
> >>
> >>      // check if result was satisfied
> >>      resultEndpoint.assertIsSatisfied();
> >>      // and stop the context manually
> >>      camelContext.stop();
> >>
> >>    }
> >>
> >>    private void doMockEndpoints() throws Exception {
> >>      AdviceWith.adviceWith(camelContext, ROUTE_ID, in -> {
> >>              in.interceptSendToEndpoint(ENDPOINT_URI).setBody().body(ex
> >> -> marshal(aDto()));
> >>      });
> >>    }
> >> }
> >>
> >> _________
> >>
> >> All endpoints URIs must be changed from real connections to "direct".
> >> If you write second test (method) inside this class (if you have two and 
> >> more tests inside the Class Test) you should mark each test with 
> >> @DirtiesContext.
> >>
> >>
> >> On Fri, 2021-09-03 at 19:09 +0000, Evert-Jan de Bruin wrote:
> >>> Hi,
> >>>
> >>> I have tried the Junit5 / spring-boot example as well. Does not work
> >>> either, unfortunately.
> >>>
> >>> The difference with the sample in github is that I am trying to run
> >>> an actual webserver in my test listening on a certain port, the
> >>> example is only running a timer router.
> >>>
> >>> I have tried to modify the example to run as a webserver, but that
> >>> gives me problems as well.
> >>>
> >>> Regards
> >>> Evert-Jan
> >>>
> >>>
> >>> -----Oorspronkelijk bericht-----
> >>> Van: Claus Ibsen <claus.ib...@gmail.com>
> >>> Verzonden: vrijdag 3 september 2021 17:09
> >>> Aan: users@camel.apache.org
> >>> Onderwerp: Re: CamelSpringBootRunner no longer working since 3.5.0?
> >>>
> >>> Hi
> >>>
> >>> Take a look at the camel-spring-boot example how its unit tested
> >>> https://github.com/apache/camel-spring-boot-examples/blob/main/sprin
> >>> g- boot/src/test/java/sample/camel/MyCamelApplicationJUnit5Test.java
> >>>
> >>> You should not use @RuntWith anymore
> >>>
> >>> On Fri, Sep 3, 2021 at 4:33 PM Evert-Jan de Bruin
> >>> <evert-jan.de.br...@caci.nl.invalid> wrote:
> >>>>
> >>>> Hello,
> >>>>
> >>>>
> >>>>
> >>>> We are currently (happily) using Camel 3.4.4.
> >>>>
> >>>>
> >>>>
> >>>> When trying to upgrade to any version beyond 3.5.0 (also 3.11.1),
> >>>> our integration tests won’t run anymore. At first it complained
> >>>> about the @LocalServerPort annotation not working, but it turned
> >>>> out the spring boot (including the webserver) just wasn’t loading 
> >>>> properly.
> >>>>
> >>>>
> >>>>
> >>>> I have reduced it to a very simple testcase:
> >>>>
> >>>> @SpringBootTest(classes = StudentMain.class, webEnvironment =
> >>>> SpringBootTest.WebEnvironment.DEFINED_PORT)
> >>>>
> >>>> @ActiveProfiles("integrationtest")
> >>>>
> >>>> @RunWith(CamelSpringBootRunner.class)
> >>>>
> >>>> public class ConfigsRouteBuilderTest  {
> >>>>
> >>>>
> >>>>
> >>>>      private int port = 8080;
> >>>>
> >>>>
> >>>>
> >>>>      @Test
> >>>>
> >>>>      public void testConfigsRoute() throws Exception {
> >>>>
> >>>>          HttpEntity<String> httpEntity = new HttpEntity<String>(new
> >>>> HttpHeaders());
> >>>>
> >>>>          String uri =
> >>>> String.format(http://localhost:%d/integrationtest/hello, port);
> >>>>
> >>>>          ResponseEntity<String> response = new
> >>>> RestTemplate().exchange(uri, HttpMethod.GET, httpEntity,
> >>>> String.class);
> >>>>
> >>>>
> >>>>
> >>>>          assertEquals("<text>hello world!</text>",
> >>>> response.getBody());
> >>>>
> >>>>      }
> >>>>
> >>>>
> >>>>
> >>>> }
> >>>>
> >>>>
> >>>> When I try to run this test with 3.4.4, it runs fine. When I try
> >>>> to run it with Apache camel 3.5.0 or 3.11.1, it is simply not
> >>>> starting right. The CampelSpringBootRunner does not seem to kick into 
> >>>> action.
> >>>> There is no spring boot logo, no tomcat starting and the test
> >>>> obviously fails with “I/O error on GET request for
> >>>> http://localhost:8080/integrationtest/hello: Connection refused”
> >>>>
> >>>> Does anyone know what I miss to get things going? Do I need to use
> >>>> different annotations since 3.5.0?
> >>>>
> >>>> I have also tested with jUnit5 instead of 4, this didn’t make a
> >>>> difference.
> >>>>
> >>>> I am new to this group and not sure if this group allows
> >>>> attachments, but I have added my pom.xml for reference and could
> >>>> provide a ZIP of the whole testcase as well.
> >>>>
> >>>> Regards,
> >>>> Evert-Jan
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Evert-Jan de Bruin | Software Architect | CACI bv | De Ruijterkade
> >>>> 7,
> >>>> 1013 AA Amsterdam | +31 (088) 654 35 00 |
> >>>> evert-jan.de.br...@caci.nl
> >>>> | www.caci.nl
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Claus Ibsen
> >>> -----------------
> >>> http://davsclaus.com @davsclaus
> >>> Camel in Action 2: https://www.manning.com/ibsen2
> >>
> >> --
> >> _________________
> >> Vyacheslav Boyko,
> >> mailto:mail4...@gmail.com
> >>
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
> >



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to