package test;
import static play.test.Helpers.fakeApplication;
import static play.test.Helpers.inMemoryDatabase;
import static org.mockito.Mockito.*;
import java.util.HashMap;
import java.util.Map;
import org.junit.After;
import org.junit.Before;
import play.Logger;
import play.Logger.ALogger;
import play.api.mvc.RequestHeader;
import play.mvc.Http.Context;
import play.mvc.Http.Request;
import play.mvc.Http.RequestBody;
import play.utils.dao.EntityNotFoundException;
public class IntegrationTest extends BaseTest {
private static ALogger log = Logger.of(IntegrationTest.class);
private String userLogin;
private IntegrationTestHelper testHelper = new IntegrationTestHelper();
@Before
public void start() {
app = fakeApplication(inMemoryDatabase());
testHelper.reset(app);
resetHttpContext(null);
}
@After
public void stop() throws EntityNotFoundException {
userLogin = null;
}
protected void login(String username) {
login(username, null);
}
protected void login(String username, Map<String, String[]> requestBody) {
if (log.isDebugEnabled())
log.debug("username : " + username);
userLogin = username;
resetHttpContext(requestBody);
}
protected void resetHttpContext(Map<String, String[]> requestBody) {
RequestHeader reqHeader = mock(RequestHeader.class);
Request req = mock(Request.class);
if (requestBody != null) {
RequestBody reqBody = mock(RequestBody.class);
when(req.body()).thenReturn(reqBody);
when(reqBody.asFormUrlEncoded()).thenReturn(requestBody);
}
Map<String, String> session = new HashMap<String, String>();
Map<String, String> flash = new HashMap<String, String>();
Map<String, Object> args = new HashMap<String, Object>();
if (log.isDebugEnabled())
log.debug("userLogin : " + userLogin);
if (userLogin != null) {
session.put("pa.p.id", "facebook");
session.put("pa.u.id", userLogin);
}
Context.current.set(new Context(1L, reqHeader, req, session, flash, args));
}
}