package org.ryu22e.nico2cal.controller; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import java.util.LinkedList; import java.util.List; import org.joda.time.DateTime; import org.junit.Test; import org.ryu22e.nico2cal.meta.NicoliveIndexMeta; import org.ryu22e.nico2cal.model.NicoliveIndex; import org.slim3.datastore.Datastore; import org.slim3.tester.ControllerTestCase; import com.google.appengine.api.NamespaceManager; import com.google.appengine.api.datastore.Key; /** * @author ryu22e * */ public final class DeleteOldNicoliveIndexControllerTest extends ControllerTestCase { /** * */ private List<Key> testDataKeys = new LinkedList<Key>(); /* * (non-Javadoc) {@inheritDoc} */ @Override public void setUp() throws Exception { super.setUp(); NamespaceManager.set("test"); // テストデータを登録する。 DateTime datetime = new DateTime(); List<NicoliveIndex> indexes = new LinkedList<NicoliveIndex>(); for (int i = 0; i < 1500; i++) { NicoliveIndex index = new NicoliveIndex(); index.setKeyword("テスト"); index.setOpenTime(datetime.minusDays(i).toDate()); indexes.add(index); } testDataKeys.addAll(Datastore.put(indexes)); } /* * (non-Javadoc) {@inheritDoc} */ @Override public void tearDown() throws Exception { // テストデータを削除する。 if (0 < testDataKeys.size()) { Datastore.delete(testDataKeys); } super.tearDown(); } /** * @throws Exception */ @Test public void 古い全文検索用インデックスを削除する() throws Exception { tester.start("/DeleteOldNicoliveIndex"); DeleteOldNicoliveIndexController controller = tester.getController(); assertThat(controller, is(notNullValue())); assertThat(tester.isRedirect(), is(false)); assertThat(tester.response.getStatus(), is(200)); assertThat(tester.getDestinationPath(), is(nullValue())); DateTime datetime = new DateTime(); NicoliveIndexMeta ni = NicoliveIndexMeta.get(); int count = Datastore .query(ni) .filter( ni.openTime.lessThanOrEqual(datetime .minusDays(31) .toDate())) .count(); assertThat(count, is(0)); } }