A robust starter web application to ease Java webapp development.

Home | Tutorials | Demos | Issues

GenericManager's getAll returns empty list in controller test?

View: New views
6 Messages — Rating Filter:   Alert me  

GenericManager's getAll returns empty list in controller test?

by Ger-Jan te Dorsthorst :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I seem to have a problem retrieving objects from the database, but  
only when running a test. I added a model class 'Download' and  
generated CRUD using the appfuse maven plugin. All works fine when I  
run with maven.test.skip=true, but if I attempt to run with tests, or  
try to run the offending test in isolation (mvn test  
-Dtest=DownloadControllerTest), maven bails out with a test failure.

The problem seems to be that when testing, the call to getAll() on  
downloadManager (an instance of GenericManager<Download, Long>) in the  
controller returns an empty List<Download>.

What could be the cause of this happening only when testing?

My DownloadController's handleRequest looks like this:

ModelAndView mav = new ModelAndView();
List<Download> downloads = downloadManager.getAll();
log.debug("in downloadcontroller's handleRequest");
log.debug("list of downloads retrieved from downloadmgr:  
"+downloads.toString()+"("+downloads.size()+")");
mav.addObject("downloadList", downloads);
return mav;

When I run mvn jetty:run-war -Dmaven.skip.test=true I get this:

[cda]DEBUG [btpool0-1] DownloadController.handleRequest(32) | in  
downloadcontroller's handleRequest
[cda]DEBUG [btpool0-1] DownloadController.handleRequest(33) | list of  
downloads retrieved from dlmgr:  
[nl.rivm.cda.model.Download@89b953...,nl.rivm.cda.model.Download@abab54...,nl.rivm.cda.model.Download@7d32cf...](3)

Whereas running mvn test -Dtest=DownloadControllerTest gives:

DEBUG - DownloadController.handleRequest(32) | in downloadcontroller's  
handleRequest
DEBUG - DownloadController.handleRequest(33) | list of downloads  
retrieved from dlmgr: [](0)

Tia,

Ger-Jan


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: GenericManager's getAll returns empty list in controller test?

by mraible :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Can you post the code for your DownloadControllerTest? Are you certain
there's data for your "downloads" table in sample-data.xml?

On Wed, Jun 24, 2009 at 5:18 AM, <gerjan@...> wrote:

> Hi,
>
> I seem to have a problem retrieving objects from the database, but only when
> running a test. I added a model class 'Download' and generated CRUD using
> the appfuse maven plugin. All works fine when I run with
> maven.test.skip=true, but if I attempt to run with tests, or try to run the
> offending test in isolation (mvn test -Dtest=DownloadControllerTest), maven
> bails out with a test failure.
>
> The problem seems to be that when testing, the call to getAll() on
> downloadManager (an instance of GenericManager<Download, Long>) in the
> controller returns an empty List<Download>.
>
> What could be the cause of this happening only when testing?
>
> My DownloadController's handleRequest looks like this:
>
> ModelAndView mav = new ModelAndView();
> List<Download> downloads = downloadManager.getAll();
> log.debug("in downloadcontroller's handleRequest");
> log.debug("list of downloads retrieved from downloadmgr:
> "+downloads.toString()+"("+downloads.size()+")");
> mav.addObject("downloadList", downloads);
> return mav;
>
> When I run mvn jetty:run-war -Dmaven.skip.test=true I get this:
>
> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(32) | in
> downloadcontroller's handleRequest
> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(33) | list of
> downloads retrieved from dlmgr:
> [nl.rivm.cda.model.Download@89b953...,nl.rivm.cda.model.Download@abab54...,nl.rivm.cda.model.Download@7d32cf...](3)
>
> Whereas running mvn test -Dtest=DownloadControllerTest gives:
>
> DEBUG - DownloadController.handleRequest(32) | in downloadcontroller's
> handleRequest
> DEBUG - DownloadController.handleRequest(33) | list of downloads retrieved
> from dlmgr: [](0)
>
> Tia,
>
> Ger-Jan
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@...
> For additional commands, e-mail: users-help@...
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: GenericManager's getAll returns empty list in controller test?

by Ger-Jan te Dorsthorst :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Matt, list,

Matt Raible wrote:

> Can you post the code for your DownloadControllerTest?

Here's the code. It is what is generated by the AF maven plugin plus a
couple of added debug lines, to verify that the controller is wired
correctly and that the downloadList retrieved from the modelMap is in
fact empty.

package nl.rivm.cda.webapp.controller;

import nl.rivm.cda.webapp.controller.BaseControllerTestCase;
import org.springframework.ui.ModelMap;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;

public class DownloadControllerTest extends BaseControllerTestCase {

     private DownloadController controller;

     public void setDownloadController(DownloadController controller) {
         this.controller = controller;
     }

     public void testHandleRequest() throws Exception {
         ModelAndView mav = controller.handleRequest(null, null);
         ModelMap m = mav.getModelMap();
         assertNotNull(m.get("downloadList"));
         assertTrue(((List) m.get("downloadList")).size() > 0);
     }

}

Running this with the following command:

gerjan@stammetje:~/workspace/cda$ mvn clean test -Ppostgresql
-Dtest=DownloadControllerTest -Dsurefire.useFile=false

Gives:

Running nl.rivm.cda.webapp.controller.DownloadControllerTest
INFO - BaseControllerTestCase.loadContextLocations(57) | Loading
additional configuration from:
classpath:/applicationContext-resources.xml,classpath:/applicationContext-dao.xml,classpath:/applicationContext-service.xml,classpath*:/applicationContext.xml,/WEB-INF/applicationContext*.xml,/WEB-INF/dispatcher-servlet.xml
DEBUG - AbstractTransactionalSpringContextTests.startNewTransaction(392)
| Began transaction (1): transaction manager
[org.springframework.orm.hibernate3.HibernateTransactionManager@1ac13d7];
rollback [true].
DEBUG - DownloadControllerTest.testHandleRequest(18) | controller =
nl.rivm.cda.webapp.controller.DownloadController
DEBUG - DownloadControllerTest.testHandleRequest(22) | string repres of
download list (+ size) in model map = [] (0)
DEBUG - AbstractTransactionalSpringContextTests.endTransaction(360) |
Rolled back transaction after execution of test [testHandleRequest].
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.326
sec <<< FAILURE!
testHandleRequest(nl.rivm.cda.webapp.controller.DownloadControllerTest)
  Time elapsed: 2.306 sec  <<< FAILURE!
junit.framework.AssertionFailedError: null
        at junit.framework.Assert.fail(Assert.java:47)
        at junit.framework.Assert.assertTrue(Assert.java:20)
        at junit.framework.Assert.assertTrue(Assert.java:27)
        at
nl.rivm.cda.webapp.controller.DownloadControllerTest.testHandleRequest(DownloadControllerTest.java:24)
[...]

 > Are you certain
> there's data for your "downloads" table in sample-data.xml?

There is, and dbunit inserts it properly. If I subsequently run mvn
jetty:run-war -Ppostgresql -Dmaven.test.skip=true, everything works as
expected (= the downloadList inserted by the DownloadController in the
ModelAndView's modelMap contains the three Downloads corresponding with
the elements in sample-data.xml)

>
> On Wed, Jun 24, 2009 at 5:18 AM, <gerjan@...> wrote:
>> Hi,
>>
>> I seem to have a problem retrieving objects from the database, but only when
>> running a test. I added a model class 'Download' and generated CRUD using
>> the appfuse maven plugin. All works fine when I run with
>> maven.test.skip=true, but if I attempt to run with tests, or try to run the
>> offending test in isolation (mvn test -Dtest=DownloadControllerTest), maven
>> bails out with a test failure.
>>
>> The problem seems to be that when testing, the call to getAll() on
>> downloadManager (an instance of GenericManager<Download, Long>) in the
>> controller returns an empty List<Download>.
>>
>> What could be the cause of this happening only when testing?
>>
>> My DownloadController's handleRequest looks like this:
>>
>> ModelAndView mav = new ModelAndView();
>> List<Download> downloads = downloadManager.getAll();
>> log.debug("in downloadcontroller's handleRequest");
>> log.debug("list of downloads retrieved from downloadmgr:
>> "+downloads.toString()+"("+downloads.size()+")");
>> mav.addObject("downloadList", downloads);
>> return mav;
>>
>> When I run mvn jetty:run-war -Dmaven.skip.test=true I get this:
>>
>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(32) | in
>> downloadcontroller's handleRequest
>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(33) | list of
>> downloads retrieved from dlmgr:
>> [nl.rivm.cda.model.Download@89b953...,nl.rivm.cda.model.Download@abab54...,nl.rivm.cda.model.Download@7d32cf...](3)
>>
>> Whereas running mvn test -Dtest=DownloadControllerTest gives:
>>
>> DEBUG - DownloadController.handleRequest(32) | in downloadcontroller's
>> handleRequest
>> DEBUG - DownloadController.handleRequest(33) | list of downloads retrieved
>> from dlmgr: [](0)
>>
>> Tia,
>>
>> Ger-Jan
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@...
>> For additional commands, e-mail: users-help@...
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@...
> For additional commands, e-mail: users-help@...
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: GenericManager's getAll returns empty list in controller test?

by Ger-Jan te Dorsthorst :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Oops; just noticed that I deleted too many lines from the code I sent
earlier. It's missing the debug lines I referred to. Here is what I
meant to send:

package nl.rivm.cda.webapp.controller;

import nl.rivm.cda.model.Download;
import nl.rivm.cda.webapp.controller.BaseControllerTestCase;
import org.springframework.ui.ModelMap;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;

public class DownloadControllerTest extends BaseControllerTestCase {

        private DownloadController controller;

     public void setDownloadController(DownloadController controller) {
         this.controller = controller;
     }

        public void testHandleRequest() throws Exception {
      log.debug("controller = "+controller.getClass().getCanonicalName());
         ModelAndView mav = controller.handleRequest(null, null);
         ModelMap m = mav.getModelMap();
         List<Download> downloads = (List<Download>) m.get("downloadList");
         log.debug("string repres of download list (+ size) in model map
= "+downloads.toString()+" ("+downloads.size()+")");
         assertNotNull(m.get("downloadList"));
         assertTrue(((List) m.get("downloadList")).size() > 0);
     }

}

Ger-Jan te Dorsthorst wrote:

> Hello Matt, list,
>
> Matt Raible wrote:
>
>> Can you post the code for your DownloadControllerTest?
>
> Here's the code. It is what is generated by the AF maven plugin plus a
> couple of added debug lines, to verify that the controller is wired
> correctly and that the downloadList retrieved from the modelMap is in
> fact empty.
>
> package nl.rivm.cda.webapp.controller;
>
> import nl.rivm.cda.webapp.controller.BaseControllerTestCase;
> import org.springframework.ui.ModelMap;
> import org.springframework.web.servlet.ModelAndView;
> import java.util.List;
>
> public class DownloadControllerTest extends BaseControllerTestCase {
>
>     private DownloadController controller;
>
>     public void setDownloadController(DownloadController controller) {
>         this.controller = controller;
>     }
>
>     public void testHandleRequest() throws Exception {
>         ModelAndView mav = controller.handleRequest(null, null);
>         ModelMap m = mav.getModelMap();
>         assertNotNull(m.get("downloadList"));
>         assertTrue(((List) m.get("downloadList")).size() > 0);
>     }
>
> }
>
> Running this with the following command:
>
> gerjan@stammetje:~/workspace/cda$ mvn clean test -Ppostgresql
> -Dtest=DownloadControllerTest -Dsurefire.useFile=false
>
> Gives:
>
> Running nl.rivm.cda.webapp.controller.DownloadControllerTest
> INFO - BaseControllerTestCase.loadContextLocations(57) | Loading
> additional configuration from:
> classpath:/applicationContext-resources.xml,classpath:/applicationContext-dao.xml,classpath:/applicationContext-service.xml,classpath*:/applicationContext.xml,/WEB-INF/applicationContext*.xml,/WEB-INF/dispatcher-servlet.xml
>
> DEBUG - AbstractTransactionalSpringContextTests.startNewTransaction(392)
> | Began transaction (1): transaction manager
> [org.springframework.orm.hibernate3.HibernateTransactionManager@1ac13d7];
> rollback [true].
> DEBUG - DownloadControllerTest.testHandleRequest(18) | controller =
> nl.rivm.cda.webapp.controller.DownloadController
> DEBUG - DownloadControllerTest.testHandleRequest(22) | string repres of
> download list (+ size) in model map = [] (0)
> DEBUG - AbstractTransactionalSpringContextTests.endTransaction(360) |
> Rolled back transaction after execution of test [testHandleRequest].
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.326
> sec <<< FAILURE!
> testHandleRequest(nl.rivm.cda.webapp.controller.DownloadControllerTest)
>  Time elapsed: 2.306 sec  <<< FAILURE!
> junit.framework.AssertionFailedError: null
>     at junit.framework.Assert.fail(Assert.java:47)
>     at junit.framework.Assert.assertTrue(Assert.java:20)
>     at junit.framework.Assert.assertTrue(Assert.java:27)
>     at
> nl.rivm.cda.webapp.controller.DownloadControllerTest.testHandleRequest(DownloadControllerTest.java:24)
>
> [...]
>
>  > Are you certain
>> there's data for your "downloads" table in sample-data.xml?
>
> There is, and dbunit inserts it properly. If I subsequently run mvn
> jetty:run-war -Ppostgresql -Dmaven.test.skip=true, everything works as
> expected (= the downloadList inserted by the DownloadController in the
> ModelAndView's modelMap contains the three Downloads corresponding with
> the elements in sample-data.xml)
>
>>
>> On Wed, Jun 24, 2009 at 5:18 AM, <gerjan@...> wrote:
>>> Hi,
>>>
>>> I seem to have a problem retrieving objects from the database, but
>>> only when
>>> running a test. I added a model class 'Download' and generated CRUD
>>> using
>>> the appfuse maven plugin. All works fine when I run with
>>> maven.test.skip=true, but if I attempt to run with tests, or try to
>>> run the
>>> offending test in isolation (mvn test -Dtest=DownloadControllerTest),
>>> maven
>>> bails out with a test failure.
>>>
>>> The problem seems to be that when testing, the call to getAll() on
>>> downloadManager (an instance of GenericManager<Download, Long>) in the
>>> controller returns an empty List<Download>.
>>>
>>> What could be the cause of this happening only when testing?
>>>
>>> My DownloadController's handleRequest looks like this:
>>>
>>> ModelAndView mav = new ModelAndView();
>>> List<Download> downloads = downloadManager.getAll();
>>> log.debug("in downloadcontroller's handleRequest");
>>> log.debug("list of downloads retrieved from downloadmgr:
>>> "+downloads.toString()+"("+downloads.size()+")");
>>> mav.addObject("downloadList", downloads);
>>> return mav;
>>>
>>> When I run mvn jetty:run-war -Dmaven.skip.test=true I get this:
>>>
>>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(32) | in
>>> downloadcontroller's handleRequest
>>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(33) | list of
>>> downloads retrieved from dlmgr:
>>> [nl.rivm.cda.model.Download@89b953...,nl.rivm.cda.model.Download@abab54...,nl.rivm.cda.model.Download@7d32cf...](3)
>>>
>>>
>>> Whereas running mvn test -Dtest=DownloadControllerTest gives:
>>>
>>> DEBUG - DownloadController.handleRequest(32) | in downloadcontroller's
>>> handleRequest
>>> DEBUG - DownloadController.handleRequest(33) | list of downloads
>>> retrieved
>>> from dlmgr: [](0)
>>>
>>> Tia,
>>>
>>> Ger-Jan
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@...
>>> For additional commands, e-mail: users-help@...
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@...
>> For additional commands, e-mail: users-help@...
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@...
> For additional commands, e-mail: users-help@...
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: GenericManager's getAll returns empty list in controller test?

by Ger-Jan te Dorsthorst :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Found the problem: there was no element <mapping
class=nl.rivm.cda.model.Download"/> in
src/test/resources/hibernate.cfg.xml. So it's clear why in the test the
downloadManager failed to come up with a list of Downloads (although the
root cause was hidden)

In src/main/resources/hibernate.cfg.xml, the element was there all the
time. Shouldn't appfuse:gen have added it in both files?

Ger-Jan

Ger-Jan te Dorsthorst wrote:

> Oops; just noticed that I deleted too many lines from the code I sent
> earlier. It's missing the debug lines I referred to. Here is what I
> meant to send:
>
> package nl.rivm.cda.webapp.controller;
>
> import nl.rivm.cda.model.Download;
> import nl.rivm.cda.webapp.controller.BaseControllerTestCase;
> import org.springframework.ui.ModelMap;
> import org.springframework.web.servlet.ModelAndView;
> import java.util.List;
>
> public class DownloadControllerTest extends BaseControllerTestCase {
>
>     private DownloadController controller;
>
>     public void setDownloadController(DownloadController controller) {
>         this.controller = controller;
>     }
>
>     public void testHandleRequest() throws Exception {
>         log.debug("controller =
> "+controller.getClass().getCanonicalName());
>         ModelAndView mav = controller.handleRequest(null, null);
>         ModelMap m = mav.getModelMap();
>         List<Download> downloads = (List<Download>) m.get("downloadList");
>         log.debug("string repres of download list (+ size) in model map
> = "+downloads.toString()+" ("+downloads.size()+")");
>         assertNotNull(m.get("downloadList"));
>         assertTrue(((List) m.get("downloadList")).size() > 0);
>     }
>
> }
>
> Ger-Jan te Dorsthorst wrote:
>> Hello Matt, list,
>>
>> Matt Raible wrote:
>>
>>> Can you post the code for your DownloadControllerTest?
>>
>> Here's the code. It is what is generated by the AF maven plugin plus a
>> couple of added debug lines, to verify that the controller is wired
>> correctly and that the downloadList retrieved from the modelMap is in
>> fact empty.
>>
>> package nl.rivm.cda.webapp.controller;
>>
>> import nl.rivm.cda.webapp.controller.BaseControllerTestCase;
>> import org.springframework.ui.ModelMap;
>> import org.springframework.web.servlet.ModelAndView;
>> import java.util.List;
>>
>> public class DownloadControllerTest extends BaseControllerTestCase {
>>
>>     private DownloadController controller;
>>
>>     public void setDownloadController(DownloadController controller) {
>>         this.controller = controller;
>>     }
>>
>>     public void testHandleRequest() throws Exception {
>>         ModelAndView mav = controller.handleRequest(null, null);
>>         ModelMap m = mav.getModelMap();
>>         assertNotNull(m.get("downloadList"));
>>         assertTrue(((List) m.get("downloadList")).size() > 0);
>>     }
>>
>> }
>>
>> Running this with the following command:
>>
>> gerjan@stammetje:~/workspace/cda$ mvn clean test -Ppostgresql
>> -Dtest=DownloadControllerTest -Dsurefire.useFile=false
>>
>> Gives:
>>
>> Running nl.rivm.cda.webapp.controller.DownloadControllerTest
>> INFO - BaseControllerTestCase.loadContextLocations(57) | Loading
>> additional configuration from:
>> classpath:/applicationContext-resources.xml,classpath:/applicationContext-dao.xml,classpath:/applicationContext-service.xml,classpath*:/applicationContext.xml,/WEB-INF/applicationContext*.xml,/WEB-INF/dispatcher-servlet.xml
>>
>> DEBUG -
>> AbstractTransactionalSpringContextTests.startNewTransaction(392) |
>> Began transaction (1): transaction manager
>> [org.springframework.orm.hibernate3.HibernateTransactionManager@1ac13d7];
>> rollback [true].
>> DEBUG - DownloadControllerTest.testHandleRequest(18) | controller =
>> nl.rivm.cda.webapp.controller.DownloadController
>> DEBUG - DownloadControllerTest.testHandleRequest(22) | string repres
>> of download list (+ size) in model map = [] (0)
>> DEBUG - AbstractTransactionalSpringContextTests.endTransaction(360) |
>> Rolled back transaction after execution of test [testHandleRequest].
>> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.326
>> sec <<< FAILURE!
>> testHandleRequest(nl.rivm.cda.webapp.controller.DownloadControllerTest)
>>  Time elapsed: 2.306 sec  <<< FAILURE!
>> junit.framework.AssertionFailedError: null
>>     at junit.framework.Assert.fail(Assert.java:47)
>>     at junit.framework.Assert.assertTrue(Assert.java:20)
>>     at junit.framework.Assert.assertTrue(Assert.java:27)
>>     at
>> nl.rivm.cda.webapp.controller.DownloadControllerTest.testHandleRequest(DownloadControllerTest.java:24)
>>
>> [...]
>>
>>  > Are you certain
>>> there's data for your "downloads" table in sample-data.xml?
>>
>> There is, and dbunit inserts it properly. If I subsequently run mvn
>> jetty:run-war -Ppostgresql -Dmaven.test.skip=true, everything works as
>> expected (= the downloadList inserted by the DownloadController in the
>> ModelAndView's modelMap contains the three Downloads corresponding
>> with the elements in sample-data.xml)
>>
>>>
>>> On Wed, Jun 24, 2009 at 5:18 AM, <gerjan@...> wrote:
>>>> Hi,
>>>>
>>>> I seem to have a problem retrieving objects from the database, but
>>>> only when
>>>> running a test. I added a model class 'Download' and generated CRUD
>>>> using
>>>> the appfuse maven plugin. All works fine when I run with
>>>> maven.test.skip=true, but if I attempt to run with tests, or try to
>>>> run the
>>>> offending test in isolation (mvn test
>>>> -Dtest=DownloadControllerTest), maven
>>>> bails out with a test failure.
>>>>
>>>> The problem seems to be that when testing, the call to getAll() on
>>>> downloadManager (an instance of GenericManager<Download, Long>) in the
>>>> controller returns an empty List<Download>.
>>>>
>>>> What could be the cause of this happening only when testing?
>>>>
>>>> My DownloadController's handleRequest looks like this:
>>>>
>>>> ModelAndView mav = new ModelAndView();
>>>> List<Download> downloads = downloadManager.getAll();
>>>> log.debug("in downloadcontroller's handleRequest");
>>>> log.debug("list of downloads retrieved from downloadmgr:
>>>> "+downloads.toString()+"("+downloads.size()+")");
>>>> mav.addObject("downloadList", downloads);
>>>> return mav;
>>>>
>>>> When I run mvn jetty:run-war -Dmaven.skip.test=true I get this:
>>>>
>>>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(32) | in
>>>> downloadcontroller's handleRequest
>>>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(33) | list of
>>>> downloads retrieved from dlmgr:
>>>> [nl.rivm.cda.model.Download@89b953...,nl.rivm.cda.model.Download@abab54...,nl.rivm.cda.model.Download@7d32cf...](3)
>>>>
>>>>
>>>> Whereas running mvn test -Dtest=DownloadControllerTest gives:
>>>>
>>>> DEBUG - DownloadController.handleRequest(32) | in downloadcontroller's
>>>> handleRequest
>>>> DEBUG - DownloadController.handleRequest(33) | list of downloads
>>>> retrieved
>>>> from dlmgr: [](0)
>>>>
>>>> Tia,
>>>>
>>>> Ger-Jan
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@...
>>>> For additional commands, e-mail: users-help@...
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@...
>>> For additional commands, e-mail: users-help@...
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@...
>> For additional commands, e-mail: users-help@...
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@...
> For additional commands, e-mail: users-help@...
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: GenericManager's getAll returns empty list in controller test?

by mraible :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

There should only be one hibernate.cfg.xml in your project. Delete the
one in src/test/resources.

Matt

On Thu, Jun 25, 2009 at 2:38 AM, Ger-Jan te Dorsthorst<gerjan@...> wrote:

> Found the problem: there was no element <mapping
> class=nl.rivm.cda.model.Download"/> in src/test/resources/hibernate.cfg.xml.
> So it's clear why in the test the downloadManager failed to come up with a
> list of Downloads (although the root cause was hidden)
>
> In src/main/resources/hibernate.cfg.xml, the element was there all the time.
> Shouldn't appfuse:gen have added it in both files?
>
> Ger-Jan
>
> Ger-Jan te Dorsthorst wrote:
>>
>> Oops; just noticed that I deleted too many lines from the code I sent
>> earlier. It's missing the debug lines I referred to. Here is what I meant to
>> send:
>>
>> package nl.rivm.cda.webapp.controller;
>>
>> import nl.rivm.cda.model.Download;
>> import nl.rivm.cda.webapp.controller.BaseControllerTestCase;
>> import org.springframework.ui.ModelMap;
>> import org.springframework.web.servlet.ModelAndView;
>> import java.util.List;
>>
>> public class DownloadControllerTest extends BaseControllerTestCase {
>>
>>    private DownloadController controller;
>>
>>    public void setDownloadController(DownloadController controller) {
>>        this.controller = controller;
>>    }
>>
>>    public void testHandleRequest() throws Exception {
>>        log.debug("controller =
>> "+controller.getClass().getCanonicalName());
>>        ModelAndView mav = controller.handleRequest(null, null);
>>        ModelMap m = mav.getModelMap();
>>        List<Download> downloads = (List<Download>) m.get("downloadList");
>>        log.debug("string repres of download list (+ size) in model map =
>> "+downloads.toString()+" ("+downloads.size()+")");
>>        assertNotNull(m.get("downloadList"));
>>        assertTrue(((List) m.get("downloadList")).size() > 0);
>>    }
>>
>> }
>>
>> Ger-Jan te Dorsthorst wrote:
>>>
>>> Hello Matt, list,
>>>
>>> Matt Raible wrote:
>>>
>>>> Can you post the code for your DownloadControllerTest?
>>>
>>> Here's the code. It is what is generated by the AF maven plugin plus a
>>> couple of added debug lines, to verify that the controller is wired
>>> correctly and that the downloadList retrieved from the modelMap is in fact
>>> empty.
>>>
>>> package nl.rivm.cda.webapp.controller;
>>>
>>> import nl.rivm.cda.webapp.controller.BaseControllerTestCase;
>>> import org.springframework.ui.ModelMap;
>>> import org.springframework.web.servlet.ModelAndView;
>>> import java.util.List;
>>>
>>> public class DownloadControllerTest extends BaseControllerTestCase {
>>>
>>>    private DownloadController controller;
>>>
>>>    public void setDownloadController(DownloadController controller) {
>>>        this.controller = controller;
>>>    }
>>>
>>>    public void testHandleRequest() throws Exception {
>>>        ModelAndView mav = controller.handleRequest(null, null);
>>>        ModelMap m = mav.getModelMap();
>>>        assertNotNull(m.get("downloadList"));
>>>        assertTrue(((List) m.get("downloadList")).size() > 0);
>>>    }
>>>
>>> }
>>>
>>> Running this with the following command:
>>>
>>> gerjan@stammetje:~/workspace/cda$ mvn clean test -Ppostgresql
>>> -Dtest=DownloadControllerTest -Dsurefire.useFile=false
>>>
>>> Gives:
>>>
>>> Running nl.rivm.cda.webapp.controller.DownloadControllerTest
>>> INFO - BaseControllerTestCase.loadContextLocations(57) | Loading
>>> additional configuration from:
>>> classpath:/applicationContext-resources.xml,classpath:/applicationContext-dao.xml,classpath:/applicationContext-service.xml,classpath*:/applicationContext.xml,/WEB-INF/applicationContext*.xml,/WEB-INF/dispatcher-servlet.xml
>>> DEBUG - AbstractTransactionalSpringContextTests.startNewTransaction(392)
>>> | Began transaction (1): transaction manager
>>> [org.springframework.orm.hibernate3.HibernateTransactionManager@1ac13d7];
>>> rollback [true].
>>> DEBUG - DownloadControllerTest.testHandleRequest(18) | controller =
>>> nl.rivm.cda.webapp.controller.DownloadController
>>> DEBUG - DownloadControllerTest.testHandleRequest(22) | string repres of
>>> download list (+ size) in model map = [] (0)
>>> DEBUG - AbstractTransactionalSpringContextTests.endTransaction(360) |
>>> Rolled back transaction after execution of test [testHandleRequest].
>>> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.326 sec
>>> <<< FAILURE!
>>> testHandleRequest(nl.rivm.cda.webapp.controller.DownloadControllerTest)
>>>  Time elapsed: 2.306 sec  <<< FAILURE!
>>> junit.framework.AssertionFailedError: null
>>>    at junit.framework.Assert.fail(Assert.java:47)
>>>    at junit.framework.Assert.assertTrue(Assert.java:20)
>>>    at junit.framework.Assert.assertTrue(Assert.java:27)
>>>    at
>>> nl.rivm.cda.webapp.controller.DownloadControllerTest.testHandleRequest(DownloadControllerTest.java:24)
>>> [...]
>>>
>>>  > Are you certain
>>>>
>>>> there's data for your "downloads" table in sample-data.xml?
>>>
>>> There is, and dbunit inserts it properly. If I subsequently run mvn
>>> jetty:run-war -Ppostgresql -Dmaven.test.skip=true, everything works as
>>> expected (= the downloadList inserted by the DownloadController in the
>>> ModelAndView's modelMap contains the three Downloads corresponding with the
>>> elements in sample-data.xml)
>>>
>>>>
>>>> On Wed, Jun 24, 2009 at 5:18 AM, <gerjan@...> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I seem to have a problem retrieving objects from the database, but only
>>>>> when
>>>>> running a test. I added a model class 'Download' and generated CRUD
>>>>> using
>>>>> the appfuse maven plugin. All works fine when I run with
>>>>> maven.test.skip=true, but if I attempt to run with tests, or try to run
>>>>> the
>>>>> offending test in isolation (mvn test -Dtest=DownloadControllerTest),
>>>>> maven
>>>>> bails out with a test failure.
>>>>>
>>>>> The problem seems to be that when testing, the call to getAll() on
>>>>> downloadManager (an instance of GenericManager<Download, Long>) in the
>>>>> controller returns an empty List<Download>.
>>>>>
>>>>> What could be the cause of this happening only when testing?
>>>>>
>>>>> My DownloadController's handleRequest looks like this:
>>>>>
>>>>> ModelAndView mav = new ModelAndView();
>>>>> List<Download> downloads = downloadManager.getAll();
>>>>> log.debug("in downloadcontroller's handleRequest");
>>>>> log.debug("list of downloads retrieved from downloadmgr:
>>>>> "+downloads.toString()+"("+downloads.size()+")");
>>>>> mav.addObject("downloadList", downloads);
>>>>> return mav;
>>>>>
>>>>> When I run mvn jetty:run-war -Dmaven.skip.test=true I get this:
>>>>>
>>>>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(32) | in
>>>>> downloadcontroller's handleRequest
>>>>> [cda]DEBUG [btpool0-1] DownloadController.handleRequest(33) | list of
>>>>> downloads retrieved from dlmgr:
>>>>>
>>>>> [nl.rivm.cda.model.Download@89b953...,nl.rivm.cda.model.Download@abab54...,nl.rivm.cda.model.Download@7d32cf...](3)
>>>>>
>>>>> Whereas running mvn test -Dtest=DownloadControllerTest gives:
>>>>>
>>>>> DEBUG - DownloadController.handleRequest(32) | in downloadcontroller's
>>>>> handleRequest
>>>>> DEBUG - DownloadController.handleRequest(33) | list of downloads
>>>>> retrieved
>>>>> from dlmgr: [](0)
>>>>>
>>>>> Tia,
>>>>>
>>>>> Ger-Jan
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@...
>>>>> For additional commands, e-mail: users-help@...
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@...
>>>> For additional commands, e-mail: users-help@...
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@...
>>> For additional commands, e-mail: users-help@...
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@...
>> For additional commands, e-mail: users-help@...
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@...
> For additional commands, e-mail: users-help@...
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...