vendredi 21 août 2015

Wicket tests: mock attribute to HttpSession

guys.

I have the following code for my http session at Wicket-based application:

public static HttpServletRequest getHttpServletRequest() {
Request request = RequestCycle.get().getRequest();
if (request != null && request instanceof WebRequest) return
HttpServletRequest) request.getContainerRequest();
return null;
}
public static SessionObject getSessionObject() {
HttpServletRequest request = getHttpServletRequest();
HttpSession session = request == null ? null : request.getSession();
SessionObject so = session == null ? null : (SessionObject) session.getAttribute("so");
if (so == null) {
logger.warn("SessionObject is not found in HttpSession!");
}
return so;
}

The session object is initialized at jsp like the following:

jsp:useBean id="so" class="package.SessionObject" scope="session"

I'd like to mock this attribute so into Wicket tests.
Tried to do the following:

bind(SessionObject.class).toInstance(EasyMock.createMock(SessionObject.class));

also

tester = new WicketTester(new MockApplication() {
@Override
public Session newSession(Request request, Response response) {
final Session session = super.newSession(request, response);
session.setAttribute("so", EasyMock.createMock(SessionObject.class));
return session;
}
});

But when I try to call method as:

init(){
a = getSessionObject().getA();
}

getSessionObject() returns null because there are no attribute named "so".

Could you help please me to mock this attribute into session?

Aucun commentaire:

Enregistrer un commentaire