package org.wicket_sapporo.workshop01.page.session;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.internal.util.reflection.Whitebox.*;
import org.apache.wicket.util.tester.WicketTester;
import org.junit.Before;
import org.junit.Test;
import org.wicket_sapporo.workshop01.WS01Application;
import org.wicket_sapporo.workshop01.WS01Session;
public class SignedPageTest {
private WicketTester tester;
@Before
public void setUp() {
tester = new WicketTester(new WS01Application());
}
@Test
public void ログイン成功したらUserIdが表示される() {
// Sessionオブジェクトを呼び出す
WS01Session session = (WS01Session) tester.getSession();
setInternalState(session, "signed", true);
setInternalState(session, "userId", "abcd");
tester.startPage(SignedPage.class);
tester.assertLabel("userId", "abcd");
}
@Test
public void ログイン失敗したらSimpleSignInPageが表示される() {
// Sessionオブジェクトを呼び出す
WS01Session session = (WS01Session) tester.getSession();
setInternalState(session, "signed", false);
tester.startPage(SignedPage.class);
tester.assertRenderedPage(SimpleSignInPage.class);
}
@Test
public void ログアウトしたらSessionが破棄されてSimpleSignInPageが表示される() {
// Sessionオブジェクトを呼び出す
WS01Session session = (WS01Session) tester.getSession();
setInternalState(session, "signed", true);
setInternalState(session, "userId", "abcd");
tester.startPage(SignedPage.class);
tester.clickLink("signOut");
assertThat(session.isSessionInvalidated(), is(true));
tester.assertRenderedPage(SimpleSignInPage.class);
}
}