https://issues.apache.org/jira/browse/DELTASPIKE-1236  has been created to
track this.

On Tue, Feb 28, 2017 at 9:24 AM, Stephen More <[email protected]>
wrote:

> Sure, I will file a jira ticket, now that I have confirmation that this is
> not supposed to work out of the box.
>
> I find it hard to believe I am the first person asking how to test a
> servlet that uses injection.
>
> On Tue, Feb 28, 2017 at 8:27 AM, Gerhard Petracek <[email protected]>
> wrote:
>
>> hi stephen,
>>
>> please file a jira-ticket for such an improvement.
>>
>> thx & regards,
>> gerhard
>>
>>
>>
>> 2017-02-28 13:38 GMT+01:00 Stephen More <[email protected]>:
>>
>> > The current - non working test code can be found here:
>> > https://github.com/mores/maven-examples/tree/master/prime-deltaspike
>> >
>> > Servlet works as expected when deployed - output is survey says: 3.96 (
>> > https://github.com/mores/maven-examples/blob/master/
>> > prime-deltaspike/src/main/java/org/test/MyServlet.java
>> > )
>> >
>> > But when trying to run the test, windowContext appears to be null. (
>> > https://github.com/mores/maven-examples/blob/master/
>> > prime-deltaspike/src/test/java/org/test/MyServletTest.java
>> > )
>> >
>> > Any and all help is always appreciated.
>> >
>> > On Mon, Feb 27, 2017 at 9:55 PM, Stephen More <[email protected]>
>> > wrote:
>> >
>> > > I have been using org.apache.deltaspike.testcontrol.api.junit.
>> > CdiTestRunner
>> > > to test JSF backing beans and everything seems to be working well.
>> > >
>> > >
>> > > At this point I am struggling how to test a plain old servlet that
>> uses
>> > > injection, are there any examples anywhere ?
>> > >
>> > > Here is what I currently have:
>> > >
>> > > @RunWith( CdiTestRunner.class )
>> > > @TestControl( projectStage = org.apache.deltaspike.core.
>> > > api.projectstage.ProjectStage.UnitTest.class )
>> > > public class MyServletTest
>> > > {
>> > >         private static org.slf4j.Logger log = org.slf4j.LoggerFactory.
>> > getLogger(
>> > > MyServletTest.class );
>> > >
>> > >         @Inject
>> > >         private org.apache.deltaspike.core.
>> > spi.scope.window.WindowContext
>> > > windowContext;
>> > >
>> > >         @Inject
>> > >         private org.apache.deltaspike.cdise.api.ContextControl
>> > > contextControl;
>> > >
>> > >         @InjectMocks
>> > >         private MyServlet myServlet;
>> > >
>> > >         @After
>> > >         public void teardown()
>> > >         {
>> > >                 contextControl.stopContext( javax.enterprise.context.
>> > ConversationScoped.class
>> > > );
>> > >         }
>> > >
>> > >         @Before
>> > >         public void init()
>> > >         {
>> > >                 org.mockito.MockitoAnnotations.initMocks( this );
>> > >
>> > >                 contextControl.startContext( javax.enterprise.context.
>> > ConversationScoped.class
>> > > );
>> > >                 windowContext.activateWindow( "testWindow" );
>> > >         }
>> > >
>> > >         @Test
>> > >         public void testFinancialEstimateReport() throws Exception
>> > >         {
>> > >                 javax.servlet.http.HttpServletRequest request =
>> > > org.mockito.Mockito.mock( javax.servlet.http.HttpServletRequest.class
>> );
>> > >                 javax.servlet.http.HttpServletResponse response =
>> > > org.mockito.Mockito.mock( javax.servlet.http.HttpServlet
>> Response.class
>> > );
>> > >
>> > >                 org.mockito.Mockito.when( request.getServletPath()
>> > > ).thenReturn( "/this/path" );
>> > >                 org.mockito.Mockito.when( request.getParameter( "ID" )
>> > > ).thenReturn( "1234" );
>> > >                 org.mockito.Mockito.when( request.getParameter(
>> "format"
>> > )
>> > > ).thenReturn( "PDF" );
>> > >
>> > >                 myServlet.doGet( request, response );
>> > >         }
>> > > }
>> > >
>> > > But the @Inject is not happening inside of MyServlet...what is needed
>> to
>> > > make this work ?
>> > >
>> > > -Thanks
>> > >
>> > >
>> > >
>> >
>>
>
>

Reply via email to