hi,
this is expected behavior,
AbortWithHttpErrorCodeException doesn't respond with
InternalErrorPage,it merely sets HTTP error code ,
you can assert that by below code

 Assert.assertEquals( tester.getLastResponse().getStatus(),
HttpServletResponse.SC_NOT_FOUND);
Assert.assertEquals(tester.getLastResponse().getErrorMessage(),
"This is for testing") ;


On Thu, Nov 1, 2012 at 11:54 PM, Per Newgro <[email protected]> wrote:
> Hi,
>
> i try to unit test a custom behavior. But i was wondering what's the right
> way to test it.
>
> I provide some code to explain my mind mismatch. The behavior shall
> interrupt the rendering
> of a component. I would like to answer this with a 404. Calling the behavior
> method directly
> results in the expected exception. But if i render a using component it's
> not answered by the 404.
>
> How can i get a 404 within the usage testcase (see below).
>
> Thanks for helping me
> Per
>
> <code>
> public class TestHomePage {
>
>     public static class MyBehavior extends Behavior {
>         @Override
>         public void beforeRender(Component component) {
>             if (true) {
>                 throw new
> AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "This is
> for testing");
>             }
>         }
>     }
>
>     public static class MyTestHomePage extends WebPage implements
> IMarkupResourceStreamProvider {
>
>         public MyTestHomePage() {
>             add(new MyBehavior());
>         }
>
>         @Override
>         public IResourceStream getMarkupResourceStream(
>                 MarkupContainer container, Class<?> containerClass) {
>             return Markup.of("<html></html>").getMarkupResourceStream();
>         }
>     }
>
>     private WicketTester tester;
>
>     @Before
>     public void setUp() {
>         tester = new WicketTester(new WicketApplication());
>     }
>
>     @Test
>     public void abortRenderingOnUsage() {
>         tester.startPage(MyTestHomePage.class);
>         tester.assertRenderedPage(InternalErrorPage.class);
>     }
>
>     @Test(expected = AbortWithHttpErrorCodeException.class)
>     public void abortRenderingOnUnitTesting() {
>         MyBehavior behavior = new MyBehavior();
>         behavior.beforeRender(null);
>     }
> }
> </code>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>



-- 
regards,

Vineet Semwal

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to