LoginSignup
2
3

More than 5 years have passed since last update.

Play Framework 2.4.x 覚書 junitでsessionのmock

Posted at

忘れないようにメモ。

sessionのmock

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.HashMap;
import org.junit.Test;
import com.avaje.ebean.Ebean;
import apps.FakeApp;
import play.api.mvc.RequestHeader;
import play.mvc.Http;
import play.mvc.Http.Context;
import play.mvc.Http.Request;

public class AuthTest extends FakeApp {

    private Request requestMock; 
    private RequestHeader requestHeaderMock;
    private Http.Cookies cookiesMock;

    private void fakeSession() {
        requestMock = mock(Request.class); 
        cookiesMock = mock(Http.Cookies.class);
        requestHeaderMock = mock(RequestHeader.class);
        when(requestMock.cookies()).thenReturn(cookiesMock);
        Context.current.set(new Context(1L, requestHeaderMock, requestMock, new HashMap <String, String>(), 
                new HashMap <String, String>(), new HashMap<String,Object>()));
    }

    @Test
    public void testSession() {
        fakeSession();

        Context.current().session().clear();
        Context.current().session().put("id", "2");

        // mockの検証
        assertEquals(Context.current().session().get("id"), "2");


    }
}
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3