The complexity of the test setup often reflects how much of the
framework itself you involve in your tests. Usually, I try to avoid
mocking the context and http objects by implementing the *Aware
interfaces and simply injecting simple Map objects, testing the action
in isolation. I realize that this is not always possible though...
Nils-H
On Thu, Nov 6, 2008 at 1:53 PM, Gundersen, Richard
<[EMAIL PROTECTED]> wrote:
> This is what I have so far. It works but I would appreciate a little
> peer review (particularly regarding how I set up my session and the
> logged in user)
>
> Thanks!
>
> ************************************************
>
> @Resource
> private CardPaymentAction cardPaymentAction;
>
> ActionContext actionContext;
> ServletActionContext servletActionContext;
> private HttpServletRequest request;
> private HttpServletResponse response;
> private MockServletContext servletContext;
>
> public CardPaymentActionTest() {}
>
> @Test
> public void testPayment() {
> setupContext();
>
> // Mastercard payment which requires authentication
> CustomerPaymentDetails details = new
> CustomerPaymentDetails();
> details.setAccountNumber("955784322");
>
> cardPaymentAction.setCustomerPaymentDetails(details);
> String result = cardPaymentAction.makePayment();
>
> assertTrue(BaseAction.Results.ACS_HANDLER.equals(result));
> }
>
> /**
> * Setup the context (request, session etc) for our action tests
> * (Move to setUp() when I figure out why it's not being
> executed)
> */
> private void setupContext() {
> Map extraContext = new HashMap();
>
> request = new MockHttpServletRequest();
> response = new MockHttpServletResponse();
> servletContext = new MockServletContext();
> extraContext.put(HTTP_REQUEST, request);
> extraContext.put(HTTP_RESPONSE, response);
> extraContext.put(SERVLET_CONTEXT, servletContext);
> Map session = new
> org.apache.struts2.dispatcher.SessionMap(request);
> session.put("profile", createCustomer()); // fake a logged in
> user
> extraContext.put("session", session);
>
> actionContext = new ActionContext(extraContext);
> ServletActionContext.setContext(actionContext);
> }
>
> As a responsible corporate citizen, London Scottish Bank plc asks you to
> consider the environment before printing this email.
>
> *** Disclaimer ***
>
> This electronic communication is confidential and for the exclusive use of
> the addressee. It may contain private and confidential information. The
> information, attachments and opinions contained in this E-mail are those of
> its author only and do not necessarily represent those of London Scottish
> Bank PLC or any other members of the London Scottish Group.
>
> If you are not the intended addressee, you are prohibited from any
> disclosure, distribution or further copying or use of this communication or
> the information in it or taking any action in reliance on it. If you have
> received this communication in error please notify the Information Security
> Manager at [EMAIL PROTECTED] as soon as possible and delete the message from
> all places in your computer where it is stored.
>
> We utilise virus scanning software but we cannot guarantee the security of
> electronic communications and you are advised to check any attachments for
> viruses. We do not accept liability for any loss resulting from any
> corruption or alteration of data or importation of any virus as a result of
> receiving this electronic communication.
>
> Replies to this E-mail may be monitored for operational or business reasons.
> London Scottish Bank PLC is authorised and regulated by the Financial
> Services Authority.
>
>
> London Scottish Bank plc, Registered Office: 201 Deansgate, Manchester M3 3NW
> Registered Number 973008 England.
>
> Subsidiary Companies:-
>
> London Scottish Finance Limited, Registered Office: 201 Deansgate, Manchester
> M3 3NW Registered Number 233259 England.
>
> London Scottish Broking Limited, Registered Office: 201 Deansgate, Manchester
> M3 3NW Registered Number 230110 England.
>
> Robinson Way & Company Limited, Registered Office: 201 Deansgate, Manchester
> M3 3NW Registered Number 885896 England.
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]