|
|
|
Ger-Jan te Dorsthorst
|
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: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
mraible
|
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, <[hidden email]> 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: [hidden email] > For additional commands, e-mail: [hidden email] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Ger-Jan te Dorsthorst
|
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, <[hidden email]> 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: [hidden email] >> For additional commands, e-mail: [hidden email] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [hidden email] > For additional commands, e-mail: [hidden email] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Ger-Jan te Dorsthorst
|
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, <[hidden email]> 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: [hidden email] >>> For additional commands, e-mail: [hidden email] >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [hidden email] >> For additional commands, e-mail: [hidden email] >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [hidden email] > For additional commands, e-mail: [hidden email] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Ger-Jan te Dorsthorst
|
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, <[hidden email]> 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: [hidden email] >>>> For additional commands, e-mail: [hidden email] >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [hidden email] >>> For additional commands, e-mail: [hidden email] >>> >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [hidden email] >> For additional commands, e-mail: [hidden email] >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [hidden email] > For additional commands, e-mail: [hidden email] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
mraible
|
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<[hidden email]> 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, <[hidden email]> 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: [hidden email] >>>>> For additional commands, e-mail: [hidden email] >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [hidden email] >>>> For additional commands, e-mail: [hidden email] >>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [hidden email] >>> For additional commands, e-mail: [hidden email] >>> >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [hidden email] >> For additional commands, e-mail: [hidden email] >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [hidden email] > For additional commands, e-mail: [hidden email] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |