|
From: Charles H. <Cha...@Su...> - 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;
>> }
>>
>>}
>>
>>
|