/*
* Copyright 2012 Kazumune Katagiri. (http://d.hatena.ne.jp/nemuzuka)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package jp.co.nemuzuka.controller;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import jp.co.nemuzuka.entity.MemberKeyEntity;
import jp.co.nemuzuka.model.MemberModel;
import jp.co.nemuzuka.tester.ControllerTestCase4HRD;
import org.junit.Test;
import org.slim3.datastore.Datastore;
import org.slim3.memcache.Memcache;
public class SubmitControllerTest extends ControllerTestCase4HRD {
/**
* 通常テスト.
* validateあり。エラー無し。
* GAE管理者.
*/
@Test
public void test() throws NullPointerException, IllegalArgumentException, IOException, ServletException {
tester.environment.setEmail("admin@example.com");
tester.environment.setAdmin(true);
HttpServletRequest request = tester.request;
request.setAttribute("dummy", "123");
tester.start("/submit");
SubmitController controller = tester.getController();
assertThat(controller, is(notNullValue()));
assertThat(tester.getDestinationPath(), is("/index.jsp"));
}
/**
* 通常テスト.
* validateあり。エラー無し。
* GAE管理者でない。登録済み.
*/
@Test
public void test2() throws NullPointerException, IllegalArgumentException, IOException, ServletException {
tester.environment.setEmail("hage@example.com");
tester.environment.setAdmin(false);
HttpServletRequest request = tester.request;
request.setAttribute("dummy", "123");
tester.start("/submit");
SubmitController controller = tester.getController();
assertThat(controller, is(notNullValue()));
assertThat(tester.getDestinationPath(), is("/index.jsp"));
}
/**
* エラーテスト.
* validateあり。エラー無し。
* GAE管理者でない。未登録.
*/
@Test
public void error() throws NullPointerException, IllegalArgumentException, IOException, ServletException {
tester.environment.setEmail("hige@example.com");
tester.environment.setAdmin(false);
HttpServletRequest request = tester.request;
request.setAttribute("dummy", "123");
tester.start("/submit");
SubmitController controller = tester.getController();
assertThat(controller, is(notNullValue()));
assertThat(tester.getDestinationPath(), is("/error/noregist/"));
}
/**
* エラーテスト.
* validateあり。エラー有り。
* GAE管理者でない。登録済み.
*/
@Test
public void error2() throws NullPointerException, IllegalArgumentException, IOException, ServletException {
tester.environment.setEmail("hage@example.com");
tester.environment.setAdmin(false);
HttpServletRequest request = tester.request;
request.setAttribute("dummy2", "123");
tester.start("/submit");
SubmitController controller = tester.getController();
assertThat(controller, is(notNullValue()));
assertThat(tester.getDestinationPath(), is("/error.jsp"));
}
/* (非 Javadoc)
* @see org.slim3.tester.ControllerTestCase#setUp()
*/
@Override
public void setUp() throws Exception {
super.setUp();
MemberModel model = new MemberModel();
model.setKey(Datastore.createKey(MemberModel.class, "hage@example.com"));
model.setMail("hage@example.com");
Datastore.put(model);
MemberKeyEntity entity = Memcache.get(MemberKeyEntity.class.getName());
if(entity != null) {
entity = new MemberKeyEntity();
Memcache.put(MemberKeyEntity.class.getName(), entity);
}
}
}