You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(30) |
Sep
(19) |
Oct
(3) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(11) |
Feb
(13) |
Mar
(10) |
Apr
(11) |
May
(7) |
Jun
(8) |
Jul
(5) |
Aug
(16) |
Sep
(14) |
Oct
(3) |
Nov
(9) |
Dec
|
2003 |
Jan
(5) |
Feb
(6) |
Mar
(9) |
Apr
(31) |
May
(25) |
Jun
(22) |
Jul
(28) |
Aug
(27) |
Sep
(19) |
Oct
(4) |
Nov
(7) |
Dec
(26) |
2004 |
Jan
(8) |
Feb
(13) |
Mar
(5) |
Apr
(8) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2005 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2008 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(3) |
May
|
Jun
|
Jul
(6) |
Aug
|
Sep
(10) |
Oct
(6) |
Nov
|
Dec
(36) |
2009 |
Jan
(3) |
Feb
(14) |
Mar
(13) |
Apr
(18) |
May
(35) |
Jun
(18) |
Jul
(27) |
Aug
(6) |
Sep
(2) |
Oct
|
Nov
|
Dec
(10) |
2010 |
Jan
(6) |
Feb
(1) |
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
From: phillip r. <rh...@ya...> - 2004-12-03 21:39:26
|
I need an example of trying to mock an httpsession. If I do not provide a implementation, the test fails on the call to request.getSession(true) Can someone point me to a test which uses a mock httpsession? Thanks! I tried to setup a mock for the http session but it fails with the following message: .F Time: 0.16 There was 1 failure: 1) testDoGet(com.alcoadirect.jsso.SimpleServletTest)junit.framework.AssertionFailedError: mockHttpServletRequest: Unexpected call: getSession(<true>) Expected one of: getParameter(< = email>) [not called] getParameter(< = password>) [not called] getSession(< = true>) [not called] at com.mockobjects.dynamic.Mock.invoke(Mock.java:91) at $Proxy0.getSession(Unknown Source) at com.alcoadirect.jsso.initializers.AlcoaDirectSession.login(AlcoaDirectSession.java:150) at com.alcoadirect.jsso.SimpleServlet.doPost(SimpleServlet.java:26) at com.alcoadirect.jsso.SimpleServlet.doGet(SimpleServlet.java:19) at com.alcoadirect.jsso.SimpleServletTest.testDoGet(SimpleServletTest.java:81) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at com.alcoadirect.jsso.SimpleServletTest.main(SimpleServletTest.java:36) FAILURES!!! Tests run: 1, Failures: 1, Errors: 0 Here is the code that I invented. Mock mockHttpServletRequest = new Mock(HttpServletRequest.class); Mock mockHttpServletResponse = new OrderedMock(HttpServletResponse.class, "Response with non-default name"); Mock mockHttpSession = new Mock(HttpSession.class); mockHttpServletRequest.expectAndReturn( "getParameter", "email", "phi...@al..." ); mockHttpServletRequest.expectAndReturn( "getParameter", "password", "on3job" ); mockHttpServletRequest.expectAndReturn( "getSession","true",mockHttpSession ); |
From: Steve F. <st...@m3...> - 2004-05-06 08:45:41
|
In that case, try using the cglib extensions from either jmock or easymock. Hmmm. Alternatively, I don't imagine you'll be testing exception throwing a great deal. You could generate an empty skeleton stub just to get through the compiler, and then just override the methods you need in anonymous subclasses within the test code. public class TestThing { public void testThrowException() { final Exception exception = new Exception(); MyClass myClass = new MyClass() { public int getInt() throws Exception() { throw exception; } ... } } } It's a bit clunky, but it works. S. Laurent Duperval wrote: > If possible, I'd like to generate a skeleton of a class that could give > me the basic code I need to set up exceptions, setup test cases, etc. is > there something that will do this on a class instead of an interface? I > originally tried the MockCreator package but it generated a file that > was 300K large... *Really* not what I was looking for. |
From: Laurent D. <ldu...@ya...> - 2004-05-05 20:45:57
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> <title></title> </head> <body bgcolor="#ffffff" text="#000000"> Steve Freeman wrote: <blockquote cite="mid...@m3..." type="cite">Well, you can always just hand code a subclass that does what you want. The Expectations library is quite useful for this. Or you can try the cglib extension to jmock.org, although that's still not quite released. Or you can use the cglib extension to EasyMock. Or you can extract an interface from your class. <br> <br> </blockquote> <br> Unfortunately, I can't do that. I have to subclass. I would prefer the use of an interface, but I can't.<br> <br> <blockquote cite="mid...@m3..." type="cite">The trick is to create an instance of the exception (it's just an object), and then throw it in the mock implementation of the method. <br> <br> </blockquote> <br> If possible, I'd like to generate a skeleton of a class that could give me the basic code I need to set up exceptions, setup test cases, etc. is there something that will do this on a class instead of an interface? I originally tried the MockCreator package but it generated a file that was 300K large... *Really* not what I was looking for. <br> <br> What I'd like is to have something like this automatically generated:<br> <br> <pre>public class MyClass extends AnAbstractClass { Vector _v; int _int; public getInt() throws Eception { return _int; } public getVector() throws Exception { return _v; } } </pre> <pre>public class MyMockClass extends MyClass {</pre> <pre> Vector _getVector;</pre> <pre> int _getInt; int getInt() throws Exception { return _getInt; } void setupGetInt(int anInt) { _getInt = anInt; } void setupGetIntException(Exception anException) { // Some voodoo here to make it throw an exception when getInt is called } . . . // Similar stuff for _getVector </pre> <pre>}</pre> Is there a way to do this fairly painlessly? Or am I stuck coding each of the methods by hand? :-(<br> <br> L<br> <br> <br> </body> </html> |
From: Steve F. <st...@m3...> - 2004-05-05 20:18:11
|
Well, you can always just hand code a subclass that does what you want. The Expectations library is quite useful for this. Or you can try the cglib extension to jmock.org, although that's still not quite released. Or you can use the cglib extension to EasyMock. Or you can extract an interface from your class. The trick is to create an instance of the exception (it's just an object), and then throw it in the mock implementation of the method. S Laurent Duperval wrote: > I have created a mock object for a clas that mainly consists of void > methods. I'd like to test the case where calling such a method throws an > exception. The mock object has to extend an abstract class, it's not an > interface. If there is a place that explains how to deal situations like > this, please let me know. |
From: Laurent D. <ldu...@ya...> - 2004-05-05 20:01:27
|
Hi, I have created a mock object for a clas that mainly consists of void methods. I'd like to test the case where calling such a method throws an exception. The mock object has to extend an abstract class, it's not an interface. If there is a place that explains how to deal situations like this, please let me know. L |
From: Laurent D. <ldu...@ya...> - 2004-05-03 19:06:53
|
Steve Freeman wrote: > Short answer. Because Java is not really an object-oriented language, > you can't mock static methods. You have to have an instance to talk > to. Looks like you'll have to wrap the static code in something that > can be instantiated. > > If you really don't want to do that, you might have to try something > like using Aspects to intercept, although that has its own issues. > While reading about some mock generators, I found that out. I don't own the code so I'm not sure what I'll be doing. I'll think about it. Thanks, L |
From: Steve F. <st...@m3...> - 2004-05-03 18:15:05
|
Short answer. Because Java is not really an object-oriented language, you can't mock static methods. You have to have an instance to talk to. Looks like you'll have to wrap the static code in something that can be instantiated. If you really don't want to do that, you might have to try something like using Aspects to intercept, although that has its own issues. S Laurent Duperval wrote: >> I have a class that I want to mock which is completely static (all >> public methods are static). How do I do this? Create a mock that >> extends and overrides every method or is there a better way? >> > > Let me expand this a little: I'm writing a servlet. The parameters of > the servlet have to be sent to a bunch of static methods that do some > sort of magic on them. When testing, I want to replace the real static > call to mocked calls that will throw exceptions and stuff like that. I'm > not testing the static methods. I want to see how the class that calls > the static methods reacts. |
From: Laurent D. <ldu...@ya...> - 2004-05-03 17:56:34
|
Laurent Duperval wrote: > Hi, > > I have a class that I want to mock which is completely static (all > public methods are static). How do I do this? Create a mock that > extends and overrides every method or is there a better way? > Let me expand this a little: I'm writing a servlet. The parameters of the servlet have to be sent to a bunch of static methods that do some sort of magic on them. When testing, I want to replace the real static call to mocked calls that will throw exceptions and stuff like that. I'm not testing the static methods. I want to see how the class that calls the static methods reacts. L |
From: Laurent D. <ldu...@ya...> - 2004-05-03 16:29:31
|
Hi, I have a class that I want to mock which is completely static (all public methods are static). How do I do this? Create a mock that extends and overrides every method or is there a better way? Thanks, L |
From: Steve F. <st...@m3...> - 2004-04-19 14:38:32
|
I know, I know. There are "just a few" things to finish before we release the first cut, but our regular jobs suddenly got more busy. S. eu wrote: > Steve, don't get me wrong. I have no problem to build jMock for myself. > But it is definetely out of question to use self-made build for anything > more or less serious. You should really release some beta builds. |
From: eu <eu...@md...> - 2004-04-19 14:31:05
|
Steve Freeman wrote: > The latest sources are always available on the web site and it's not a > big library, so you could just import it in your code. > > We've been Real Close to a first release but our days jobs suddenly > got in the way. That said, the library is pretty stable and we only > have a few things to change. Steve, don't get me wrong. I have no problem to build jMock for myself. But it is definetely out of question to use self-made build for anything more or less serious. You should really release some beta builds. regards, Eugene > S. > > eu wrote: > >> Steve Freeman wrote: >> >>> If you're using dynamic mocks, I suggest you consider moving to >>> http://www.jmock.org. We've reworked a lot of things and believe >>> it's a better alternative. It includes a cglib extension. >> >> Any idea when jmock builds will be available? Is there are any plan >> in terms of the release schedulle? > > |
From: Steve F. <st...@m3...> - 2004-04-19 07:29:57
|
The latest sources are always available on the web site and it's not a big library, so you could just import it in your code. We've been Real Close to a first release but our days jobs suddenly got in the way. That said, the library is pretty stable and we only have a few things to change. S. eu wrote: > Steve Freeman wrote: > >> If you're using dynamic mocks, I suggest you consider moving to >> http://www.jmock.org. We've reworked a lot of things and believe it's >> a better alternative. It includes a cglib extension. > Any idea when jmock builds will be available? Is there are any plan in > terms of the release schedulle? |
From: eu <eu...@md...> - 2004-04-16 15:20:49
|
Steve Freeman wrote: > If you're using dynamic mocks, I suggest you consider moving to > http://www.jmock.org. We've reworked a lot of things and believe it's > a better alternative. It includes a cglib extension. Any idea when jmock builds will be available? Is there are any plan in terms of the release schedulle? regards, Eugene > Davis, Brian A. wrote: > >> I am trying to do the patch for the mocking non-final class at: >> >> http://sourceforge.net/tracker/index.php?func=detail&aid=761544&group_id=181 >> >> 89&atid=318189 >> >> >> I am having a problem with getting it to work. I applied the patch >> and when >> I try to mock a concrete like so: >> >> Mock something = new Mock(ArrayList.class); >> >> class I get: >> >> "IllegalArguementException java.util.ArrayList is not an interface." >> >> I have gone through the code of the cglib and sure enough it is >> checking to >> see if it is an interface and throwing the Exception. I put the >> cglib1.0 >> and asm on my classpath so I do not think it is a library issue but >> again >> they do not say what version of them to get. >> >> My question is am I misunderstanding what this does or am I doing >> something >> wrong? Thanks for your help. >> >> Brian > |
From: Steve F. <st...@m3...> - 2004-04-16 15:12:42
|
If you're using dynamic mocks, I suggest you consider moving to http://www.jmock.org. We've reworked a lot of things and believe it's a better alternative. It includes a cglib extension. S Davis, Brian A. wrote: > I am trying to do the patch for the mocking non-final class at: > > http://sourceforge.net/tracker/index.php?func=detail&aid=761544&group_id=181 > 89&atid=318189 > > > I am having a problem with getting it to work. I applied the patch and when > I try to mock a concrete like so: > > Mock something = new Mock(ArrayList.class); > > class I get: > > "IllegalArguementException java.util.ArrayList is not an interface." > > I have gone through the code of the cglib and sure enough it is checking to > see if it is an interface and throwing the Exception. I put the cglib1.0 > and asm on my classpath so I do not think it is a library issue but again > they do not say what version of them to get. > > My question is am I misunderstanding what this does or am I doing something > wrong? Thanks for your help. > > Brian |
From: Davis, B. A. <b....@ra...> - 2004-04-16 14:12:59
|
I am trying to do the patch for the mocking non-final class at: http://sourceforge.net/tracker/index.php?func=detail&aid=761544&group_id=181 89&atid=318189 I am having a problem with getting it to work. I applied the patch and when I try to mock a concrete like so: Mock something = new Mock(ArrayList.class); class I get: "IllegalArguementException java.util.ArrayList is not an interface." I have gone through the code of the cglib and sure enough it is checking to see if it is an interface and throwing the Exception. I put the cglib1.0 and asm on my classpath so I do not think it is a library issue but again they do not say what version of them to get. My question is am I misunderstanding what this does or am I doing something wrong? Thanks for your help. Brian |
From: Steve F. <st...@m3...> - 2004-04-03 22:33:45
|
Sorry, I see what you're getting at. You're going in the right direction. There are interesting questions like when does a User object acquire access to a Database object? There are mutiple ways to do it: perhaps have the User talk to a query builder which constructs an object that can be passed to the persistence layer, perhaps just have the User talk SQL (maybe having a thin veneer of stored procedures in the database, depending on your religion), etc, etc. The main thing is to boil the JDBC access down to as few places as possible, as you seem to be doing. Back to you original question. Do we have one ready? No, but I believe there are a few good ones out there on the net. Not sure which to recommend. S. Graham King wrote: > Nat, Steve, > > I've been thinking this through and I'm afraid I'm still in the dark. > > Let's say I have a requirement to create users (say we're writing an > admin tool for some other application). The username and password are > filled in, some controller gets those, does 'User user = new > User(username, password)' and then it must save it to the database. So > 'user.save()'. > > In that save method I used to have JDBC, which for testing I mocked > using the mock jdbc classes from mockobjects.com. But if I also have > lots of other classes it gets tedious to write all that setup code for > the mock objects, and this is why I'm trying to put my own interface > between me and jdbc, so I can mock that interface instead of jdbc. > > What should user.save() do ? > > Thanks in advance, > Graham. > > Steve Freeman wrote: > >> It sounds like you're trying to write this bottom-up, that is >> implement a generic db layer and then apply it. You might want to >> think about writing your persisitence services from the viewpoint of >> its clients, one case at a time, and then refactoring. >> >> Take a case where you need some kind of persistence. Write an >> interface that provides that persistence /in terms of the client/, >> using mocks to get you through the test. Now that interface becomes >> the client of the next persistence layer, gradually becoming more >> general until you hit JDBC. Combined with Remove Duplication, and >> Tell, Don't Ask, this should generate a persistence library. >> >> Either that, or use something like Hibernate... >> >> S. >> >> Graham King wrote: >> >>> I have been trying to abstract away database (JDBC) access using >>> these two principles: >>> http://www.mockobjects.com/wiki/OnlyMockYourOwnInterfaces >>> http://www.mockobjects.com/wiki/MockableAdapter >>> >>> Not being able to find a practical example to plagiarise I tried >>> writing my own. A database basically allows the 'put'ing of data and >>> the 'get'ing of data (save / load or executeUpdate / executeQuery). >>> So first cut is (with verbosity removed): >>> >>> public interface Database { // Or should it be DatabaseAdapter ? >>> ReturnType get(String sql); >>> int put(String sql); // Returns number of rows affected >>> } >> >> >> > [...] >> >> >> > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Mockobjects-java-users mailing list > Moc...@li... > https://lists.sourceforge.net/lists/listinfo/mockobjects-java-users > |
From: Graham K. <gr...@da...> - 2004-04-01 08:47:27
|
Nat, Steve, I've been thinking this through and I'm afraid I'm still in the dark. Let's say I have a requirement to create users (say we're writing an admin tool for some other application). The username and password are filled in, some controller gets those, does 'User user = new User(username, password)' and then it must save it to the database. So 'user.save()'. In that save method I used to have JDBC, which for testing I mocked using the mock jdbc classes from mockobjects.com. But if I also have lots of other classes it gets tedious to write all that setup code for the mock objects, and this is why I'm trying to put my own interface between me and jdbc, so I can mock that interface instead of jdbc. What should user.save() do ? Thanks in advance, Graham. Steve Freeman wrote: > It sounds like you're trying to write this bottom-up, that is > implement a generic db layer and then apply it. You might want to > think about writing your persisitence services from the viewpoint of > its clients, one case at a time, and then refactoring. > > Take a case where you need some kind of persistence. Write an > interface that provides that persistence /in terms of the client/, > using mocks to get you through the test. Now that interface becomes > the client of the next persistence layer, gradually becoming more > general until you hit JDBC. Combined with Remove Duplication, and > Tell, Don't Ask, this should generate a persistence library. > > Either that, or use something like Hibernate... > > S. > > Graham King wrote: > >> I have been trying to abstract away database (JDBC) access using >> these two principles: >> http://www.mockobjects.com/wiki/OnlyMockYourOwnInterfaces >> http://www.mockobjects.com/wiki/MockableAdapter >> >> Not being able to find a practical example to plagiarise I tried >> writing my own. A database basically allows the 'put'ing of data and >> the 'get'ing of data (save / load or executeUpdate / executeQuery). >> So first cut is (with verbosity removed): >> >> public interface Database { // Or should it be DatabaseAdapter ? >> ReturnType get(String sql); >> int put(String sql); // Returns number of rows affected >> } > > > [...] > > > |
From: Steve F. <st...@m3...> - 2004-03-27 23:53:16
|
It sounds like you're trying to write this bottom-up, that is implement a generic db layer and then apply it. You might want to think about writing your persisitence services from the viewpoint of its clients, one case at a time, and then refactoring. Take a case where you need some kind of persistence. Write an interface that provides that persistence /in terms of the client/, using mocks to get you through the test. Now that interface becomes the client of the next persistence layer, gradually becoming more general until you hit JDBC. Combined with Remove Duplication, and Tell, Don't Ask, this should generate a persistence library. Either that, or use something like Hibernate... S. Graham King wrote: > I have been trying to abstract away database (JDBC) access using these > two principles: http://www.mockobjects.com/wiki/OnlyMockYourOwnInterfaces > http://www.mockobjects.com/wiki/MockableAdapter > > Not being able to find a practical example to plagiarise I tried writing > my own. A database basically allows the 'put'ing of data and the > 'get'ing of data (save / load or executeUpdate / executeQuery). > So first cut is (with verbosity removed): > > public interface Database { // Or should it be DatabaseAdapter ? > ReturnType get(String sql); > int put(String sql); // Returns number of rows affected > } > [...] |
From: Graham K. <gr...@da...> - 2004-03-26 10:39:42
|
I have been trying to abstract away database (JDBC) access using these two principles: http://www.mockobjects.com/wiki/OnlyMockYourOwnInterfaces http://www.mockobjects.com/wiki/MockableAdapter Not being able to find a practical example to plagiarise I tried writing my own. A database basically allows the 'put'ing of data and the 'get'ing of data (save / load or executeUpdate / executeQuery). So first cut is (with verbosity removed): public interface Database { // Or should it be DatabaseAdapter ? ReturnType get(String sql); int put(String sql); // Returns number of rows affected } 1) GET What should ReturnType be ? It comes back from the database as a ResultSet, which is an interface and provides everything the caller needs. But it's java.sql.ResultSet, hence not an interface we own. 2) PUT With an INSERT or UPDATE we don't really want to generate the full sql as a string ourselves. It is up to the database vendor to decide how to convert / escape / quote a Date or String, so we really want a PreparedStatement. But again that's java.sql.PreparedStatement. 3) Exceptions Internally SQLException will be flying around, but we can easily wrap that into our own client friendly DatabaseException. But if we are returning ResultSet and allowing PreparedStatement then the caller has to deal with SQLException anyway, so why force them to have two catch clauses ? Our current best effort is (again without the ceremony of javadoc): public interface Database { ResultSet get(String sql) throws DatabaseException; int put(String sql) throws DatabaseException; PreparedStatement prepareStatement(String sql) throws DatabaseException; void close(ResultSet rs); void close(PreparedStatement statement); } and we mock ResultSet and PreparedStatement. I would love to hear how other people have solved this problem. Thanks in advance, Graham. |
From: Yohan F. <Yo...@vi...> - 2004-03-11 14:59:53
|
Hi Guys I'm new to Mock Objects. Got down the mockobjects-src-0.09-tar and found out its a src = distribution. Could you plz let me know what are the required libraries to get this = src dump compiled. Thanks in advice Yohan |
From: Charles H. <Charles.Hayes@Sun.COM> - 2004-03-02 16:03:33
|
Thanks a lot Jeff, this took care of the problem. Charles Jeff Martin wrote: >You should be using setupGetAttribute not setAttribute. Sorry about this >the naming conventions in that area a bit inconsistent. > > > >On Fri, 2004-02-27 at 19:23, Charles Hayes wrote: > > >>Hey gang, I'm new to MockObjects (and absolutely loving it!!!!). I >>created a test class which tests a command class which has an execute >>method that takes an HttpServletRequest object. So I mocked the request >>and a session (since the command gets a QualityTemplateBuilder object >>from the session) and I added an attribute called "currentTemplate" to >>the request. >> >>However, when I run my test from ANT, the error message I see is as follows: >> >> [junit] Testcase: >>testExecute(com.sun.es.acac.quality.UpdateItemsCommandTest): FAILED >> [junit] attributes does not contain currentTemplate >> [junit] junit.framework.AssertionFailedError: attributes does not >>contain currentTemplate >> >>I'm attaching both the source file to be tested and the test class so >>that someone can see if they see what I am doing wrong. >> >>Thanks for your support! >> >>Charles >> >>______________________________________________________________________ >>package com.sun.es.acac.quality; >> >>import junit.framework.*; >>import com.mockobjects.servlet.MockHttpServletRequest; >>import com.mockobjects.servlet.MockHttpSession; >>import javax.servlet.http.*; >>import java.util.Enumeration; >>import java.util.ArrayList; >>import java.util.LinkedHashMap; >>import java.util.Iterator; >>import java.util.Set; >> >>import com.sun.es.acac.ACACController; >>import com.sun.es.common.CommandException; >> >>public class UpdateItemsCommandTest extends TestCase { >> private QualityTemplateBuilder builder = null; >> private MockHttpServletRequest request = null; >> private MockHttpSession session = null; >> >> protected void setUp() throws Exception { >> super.setUp(); >> /**@todo verify the constructors*/ >> builder = new QualityTemplateBuilder(); >> } >> >> protected void tearDown() throws Exception { >> builder = null; >> super.tearDown(); >> } >> >> public void testExecute() { >> LinkedHashMap templateItemMap; >> request = new MockHttpServletRequest(); >> >> /////////////////////////////////////////////////////////////// >> // Build up a template builder object >> builder = new QualityTemplateBuilder(); >> builder.setTemplateID("1"); >> builder.setCountry("1"); >> builder.setGroup("1"); >> // Create 2 categories >> String [] catParams = {"1", "3"}; >> request.setupAddParameter("listB", catParams); >> builder.setCategories(request); >> // Create 2 items for the first category >> String[] items1 = {"1", "2"}; >> request.setupAddParameter("listB", items1); >> builder.setCategoryItems(request); >> // Create 2 items for the second category >> String[] items2 = {"10", "13"}; >> request.setupAddParameter("listB", items2); >> builder.setCategoryItems(request); >> >> ////////////////////////////////////////////////////////////// >> // Add the builder to the HttpServletRequest >> request.setAttribute("currentTemplate", builder); >> >> ////////////////////////////////////////////////////////////// >> // Add the request to the session >> MockHttpSession session = new MockHttpSession(); >> request.setSession(session); >> >> UpdateItemsCommand command = new UpdateItemsCommand("Summary Screen"); >> try { >> String next = command.execute(request); >> } catch(CommandException ce) { >> System.out.println("CommandException thrown from UpdateItemsCommandTest.class"); >> } >> >> } >> >>} >> >>______________________________________________________________________ >>/** >> * $Log: UpdateItemsCommand.java,v $ >> * Revision 1.1 2004/02/27 02:12:44 ch88251 >> * Still working on updating quality templates. >> * >> */ >>package com.sun.es.acac.quality; >> >>import javax.servlet.http.HttpServletRequest; >>import javax.servlet.http.HttpSession; >> >>import com.sun.es.common.Command; >>import com.sun.es.common.CommandException; >>import com.sun.es.common.DBException; >> >>import java.util.logging.*; >>import java.util.Enumeration; >> >>/** >> * This class loads the existing quality items for a specific category >> * into a QualityTemplateBuilder and then redirects the user to a view >> * that allows the user to change the items. >> */ >>public class UpdateItemsCommand implements Command { >> >> private String next; // The next view to display >> private QualityTemplateBuilder builder; >> >> private Logger log = Logger.getLogger(UpdateItemsCommand.class.getName()); >> >> /** >> * This constructor instantiates a new command and receives information >> * about which view to display after the command executes. >> * @param next The next view to display >> */ >> public UpdateItemsCommand(String next) { >> this.next = next; >> } >> >> /** >> * This method gets the template ID from the request and then >> * tells the QualityTemplateBuilder to load all it's values for >> * the given ID. >> * @param request The request should contain the templateID so that >> * we will know which quality template is being edited. >> * @return Returns the next view to display >> * @throws CommandException If the command is not recognized. >> */ >> public String execute(HttpServletRequest request) throws CommandException { >> HttpSession session = request.getSession(true); >> QualityTemplateBuilder builder = >> (QualityTemplateBuilder)session.getAttribute("currentTemplate"); >> >> if (builder != null) { >> QualityCategory currentCategory = builder.getCurrentCategory(); >> builder.setCategoryItems(currentCategory, request); >> } >> return next; >> } >> >>} >> >> |
From: Jeff M. <je...@mk...> - 2004-03-01 09:49:16
|
You should be using setupGetAttribute not setAttribute. Sorry about this the naming conventions in that area a bit inconsistent. On Fri, 2004-02-27 at 19:23, Charles Hayes wrote: > Hey gang, I'm new to MockObjects (and absolutely loving it!!!!). I > created a test class which tests a command class which has an execute > method that takes an HttpServletRequest object. So I mocked the request > and a session (since the command gets a QualityTemplateBuilder object > from the session) and I added an attribute called "currentTemplate" to > the request. > > However, when I run my test from ANT, the error message I see is as follows: > > [junit] Testcase: > testExecute(com.sun.es.acac.quality.UpdateItemsCommandTest): FAILED > [junit] attributes does not contain currentTemplate > [junit] junit.framework.AssertionFailedError: attributes does not > contain currentTemplate > > I'm attaching both the source file to be tested and the test class so > that someone can see if they see what I am doing wrong. > > Thanks for your support! > > Charles > > ______________________________________________________________________ > package com.sun.es.acac.quality; > > import junit.framework.*; > import com.mockobjects.servlet.MockHttpServletRequest; > import com.mockobjects.servlet.MockHttpSession; > import javax.servlet.http.*; > import java.util.Enumeration; > import java.util.ArrayList; > import java.util.LinkedHashMap; > import java.util.Iterator; > import java.util.Set; > > import com.sun.es.acac.ACACController; > import com.sun.es.common.CommandException; > > public class UpdateItemsCommandTest extends TestCase { > private QualityTemplateBuilder builder = null; > private MockHttpServletRequest request = null; > private MockHttpSession session = null; > > protected void setUp() throws Exception { > super.setUp(); > /**@todo verify the constructors*/ > builder = new QualityTemplateBuilder(); > } > > protected void tearDown() throws Exception { > builder = null; > super.tearDown(); > } > > public void testExecute() { > LinkedHashMap templateItemMap; > request = new MockHttpServletRequest(); > > /////////////////////////////////////////////////////////////// > // Build up a template builder object > builder = new QualityTemplateBuilder(); > builder.setTemplateID("1"); > builder.setCountry("1"); > builder.setGroup("1"); > // Create 2 categories > String [] catParams = {"1", "3"}; > request.setupAddParameter("listB", catParams); > builder.setCategories(request); > // Create 2 items for the first category > String[] items1 = {"1", "2"}; > request.setupAddParameter("listB", items1); > builder.setCategoryItems(request); > // Create 2 items for the second category > String[] items2 = {"10", "13"}; > request.setupAddParameter("listB", items2); > builder.setCategoryItems(request); > > ////////////////////////////////////////////////////////////// > // Add the builder to the HttpServletRequest > request.setAttribute("currentTemplate", builder); > > ////////////////////////////////////////////////////////////// > // Add the request to the session > MockHttpSession session = new MockHttpSession(); > request.setSession(session); > > UpdateItemsCommand command = new UpdateItemsCommand("Summary Screen"); > try { > String next = command.execute(request); > } catch(CommandException ce) { > System.out.println("CommandException thrown from UpdateItemsCommandTest.class"); > } > > } > > } > > ______________________________________________________________________ > /** > * $Log: UpdateItemsCommand.java,v $ > * Revision 1.1 2004/02/27 02:12:44 ch88251 > * Still working on updating quality templates. > * > */ > package com.sun.es.acac.quality; > > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpSession; > > import com.sun.es.common.Command; > import com.sun.es.common.CommandException; > import com.sun.es.common.DBException; > > import java.util.logging.*; > import java.util.Enumeration; > > /** > * This class loads the existing quality items for a specific category > * into a QualityTemplateBuilder and then redirects the user to a view > * that allows the user to change the items. > */ > public class UpdateItemsCommand implements Command { > > private String next; // The next view to display > private QualityTemplateBuilder builder; > > private Logger log = Logger.getLogger(UpdateItemsCommand.class.getName()); > > /** > * This constructor instantiates a new command and receives information > * about which view to display after the command executes. > * @param next The next view to display > */ > public UpdateItemsCommand(String next) { > this.next = next; > } > > /** > * This method gets the template ID from the request and then > * tells the QualityTemplateBuilder to load all it's values for > * the given ID. > * @param request The request should contain the templateID so that > * we will know which quality template is being edited. > * @return Returns the next view to display > * @throws CommandException If the command is not recognized. > */ > public String execute(HttpServletRequest request) throws CommandException { > HttpSession session = request.getSession(true); > QualityTemplateBuilder builder = > (QualityTemplateBuilder)session.getAttribute("currentTemplate"); > > if (builder != null) { > QualityCategory currentCategory = builder.getCurrentCategory(); > builder.setCategoryItems(currentCategory, request); > } > return next; > } > > } -- jeff martin information technologist mkodo limited mobile: 44 (0) 78 5547 8331 phone: 44 (0) 20 2226 4545 email: je...@mk... www.mkodo.com |
From: Charles H. <Charles.Hayes@Sun.COM> - 2004-02-27 19:34:15
|
Hey gang, I'm new to MockObjects (and absolutely loving it!!!!). I created a test class which tests a command class which has an execute method that takes an HttpServletRequest object. So I mocked the request and a session (since the command gets a QualityTemplateBuilder object from the session) and I added an attribute called "currentTemplate" to the request. However, when I run my test from ANT, the error message I see is as follows: [junit] Testcase: testExecute(com.sun.es.acac.quality.UpdateItemsCommandTest): FAILED [junit] attributes does not contain currentTemplate [junit] junit.framework.AssertionFailedError: attributes does not contain currentTemplate I'm attaching both the source file to be tested and the test class so that someone can see if they see what I am doing wrong. Thanks for your support! Charles |
From: Steve F. <st...@m3...> - 2004-02-26 12:18:40
|
glad to be of help ;-) we do actually try to respond, but I've been on-site for a while. S. rog...@vo... wrote: > The problem was actually in my own code (to be expected of course). > Thanks for the effort. |
From: <rog...@vo...> - 2004-02-26 11:53:14
|
> Hi, > Errand: "though obviously I do not exclude an error in the way of thinking by myself." The problem was actually in my own code (to be expected of course). Thanks for the effort. > Kind regards, > > Roger Stoffers > > > > > > > > > |