01: package com.mockrunner.example.struts;
02:
03: import javax.servlet.ServletContext;
04:
05: import junit.framework.TestCase;
06:
07: import com.mockrunner.mock.web.ActionMockObjectFactory;
08: import com.mockrunner.struts.ActionTestModule;
09:
10: /**
11: * Example test for the {@link OrderAction}.
12: * This is an example how to write tests if you do not
13: * subclass {@link com.mockrunner.struts.ActionTestCaseAdapter} or
14: * {@link com.mockrunner.struts.BasicActionTestCaseAdapter}.
15: */
16: public class OrderActionTest extends TestCase {
17: private ActionMockObjectFactory mockFactory;
18: private ActionTestModule module;
19: private MockOrderManager orderManager;
20: private OrderForm form;
21:
22: protected void setUp() throws Exception {
23: super .setUp();
24: orderManager = new MockOrderManager();
25: mockFactory = new ActionMockObjectFactory();
26: module = new ActionTestModule(mockFactory);
27: ServletContext context = mockFactory.getMockServletContext();
28: context
29: .setAttribute(OrderManager.class.getName(),
30: orderManager);
31: form = (OrderForm) module.createActionForm(OrderForm.class);
32: module.setValidate(true);
33: }
34:
35: public void testSuccessfulOrder() {
36: form.setId("testProduct");
37: form.setAmount(10);
38: orderManager.setStock("testProduct", 20);
39: module.actionPerform(OrderAction.class, form);
40: module.verifyNoActionErrors();
41: module.verifyNoActionMessages();
42: module.verifyForward("success");
43: }
44:
45: public void testFailureOrder() {
46: module.addRequestParameter("id", "testProduct");
47: module.addRequestParameter("amount", "10");
48: orderManager.setStock("testProduct", 5);
49: module.actionPerform(OrderAction.class, form);
50: module.verifyNumberActionErrors(1);
51: module.verifyActionErrorPresent("not.enough.in.stock");
52: module.verifyActionErrorValue("not.enough.in.stock",
53: "testProduct");
54: module.verifyNoActionMessages();
55: module.verifyForward("failure");
56: }
57: }
|