/* * Copyright 2012-2017 CodeLibs Project and the Others. * * 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 org.codelibs.fess.util; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.codelibs.fess.unit.UnitFessTestCase; public class QueryResponseListTest extends UnitFessTestCase { public void test_calculatePageInfo_page0() { QueryResponseList qrList; qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 0; } }; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(0, qrList.getAllRecordCount()); assertEquals(1, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(0, qrList.getCurrentStartRecordNumber()); assertEquals(0, qrList.getCurrentEndRecordNumber()); } public void test_calculatePageInfo_page1() { QueryResponseList qrList; qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 10; } }; qrList.allRecordCount = 10; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(10, qrList.getAllRecordCount()); assertEquals(1, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(10, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 20; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(20, qrList.getAllRecordCount()); assertEquals(1, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(20, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 21; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(21, qrList.getAllRecordCount()); assertEquals(2, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(true, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(20, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 40; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(40, qrList.getAllRecordCount()); assertEquals(2, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(true, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(20, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 41; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(41, qrList.getAllRecordCount()); assertEquals(3, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(true, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(20, qrList.getCurrentEndRecordNumber()); } public void test_calculatePageInfo_page2() { QueryResponseList qrList; qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 1; } }; qrList.allRecordCount = 21; qrList.calculatePageInfo(20, 20); assertEquals(20, qrList.getPageSize()); assertEquals(2, qrList.getCurrentPageNumber()); assertEquals(21, qrList.getAllRecordCount()); assertEquals(2, qrList.getAllPageCount()); assertEquals(true, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(21, qrList.getCurrentStartRecordNumber()); assertEquals(21, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 40; qrList.calculatePageInfo(20, 20); assertEquals(20, qrList.getPageSize()); assertEquals(2, qrList.getCurrentPageNumber()); assertEquals(40, qrList.getAllRecordCount()); assertEquals(2, qrList.getAllPageCount()); assertEquals(true, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(21, qrList.getCurrentStartRecordNumber()); assertEquals(40, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 41; qrList.calculatePageInfo(20, 20); assertEquals(20, qrList.getPageSize()); assertEquals(2, qrList.getCurrentPageNumber()); assertEquals(41, qrList.getAllRecordCount()); assertEquals(3, qrList.getAllPageCount()); assertEquals(true, qrList.isExistPrevPage()); assertEquals(true, qrList.isExistNextPage()); assertEquals(21, qrList.getCurrentStartRecordNumber()); assertEquals(40, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 61; qrList.calculatePageInfo(20, 20); assertEquals(20, qrList.getPageSize()); assertEquals(2, qrList.getCurrentPageNumber()); assertEquals(61, qrList.getAllRecordCount()); assertEquals(4, qrList.getAllPageCount()); assertEquals(true, qrList.isExistPrevPage()); assertEquals(true, qrList.isExistNextPage()); assertEquals(21, qrList.getCurrentStartRecordNumber()); assertEquals(40, qrList.getCurrentEndRecordNumber()); } public void test_calculatePageInfo_pageList() { QueryResponseList qrList; List<String> pnList; qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 20; qrList.calculatePageInfo(0, 20); pnList = qrList.getPageNumberList(); assertEquals(1, pnList.size()); assertEquals("1", pnList.get(0)); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 61; qrList.calculatePageInfo(0, 20); pnList = qrList.getPageNumberList(); assertEquals(4, pnList.size()); assertEquals("1", pnList.get(0)); assertEquals("2", pnList.get(1)); assertEquals("3", pnList.get(2)); assertEquals("4", pnList.get(3)); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 200; qrList.calculatePageInfo(0, 20); pnList = qrList.getPageNumberList(); assertEquals(6, pnList.size()); assertEquals("1", pnList.get(0)); assertEquals("2", pnList.get(1)); assertEquals("3", pnList.get(2)); assertEquals("4", pnList.get(3)); assertEquals("5", pnList.get(4)); assertEquals("6", pnList.get(5)); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 1; } }; qrList.allRecordCount = 21; qrList.calculatePageInfo(20, 20); pnList = qrList.getPageNumberList(); assertEquals(2, pnList.size()); assertEquals("1", pnList.get(0)); assertEquals("2", pnList.get(1)); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 61; qrList.calculatePageInfo(20, 20); pnList = qrList.getPageNumberList(); assertEquals(4, pnList.size()); assertEquals("1", pnList.get(0)); assertEquals("2", pnList.get(1)); assertEquals("3", pnList.get(2)); assertEquals("4", pnList.get(3)); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 20; } }; qrList.allRecordCount = 200; qrList.calculatePageInfo(20, 20); pnList = qrList.getPageNumberList(); assertEquals(7, pnList.size()); assertEquals("1", pnList.get(0)); assertEquals("2", pnList.get(1)); assertEquals("3", pnList.get(2)); assertEquals("4", pnList.get(3)); assertEquals("5", pnList.get(4)); assertEquals("6", pnList.get(5)); assertEquals("7", pnList.get(6)); } public void test_calculatePageInfo_collapse() { QueryResponseList qrList; qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 0; } }; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(0, qrList.getAllRecordCount()); assertEquals(1, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(0, qrList.getCurrentStartRecordNumber()); assertEquals(0, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 10; } }; qrList.allRecordCount = 20; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(20, qrList.getAllRecordCount()); assertEquals(1, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(20, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 10; } }; qrList.allRecordCount = 21; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(21, qrList.getAllRecordCount()); assertEquals(1, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(20, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 21; } }; qrList.allRecordCount = 41; qrList.calculatePageInfo(0, 20); assertEquals(20, qrList.getPageSize()); assertEquals(1, qrList.getCurrentPageNumber()); assertEquals(41, qrList.getAllRecordCount()); assertEquals(3, qrList.getAllPageCount()); assertEquals(false, qrList.isExistPrevPage()); assertEquals(true, qrList.isExistNextPage()); assertEquals(1, qrList.getCurrentStartRecordNumber()); assertEquals(20, qrList.getCurrentEndRecordNumber()); qrList = new QueryResponseList(new ArrayList<Map<String, Object>>()) { @Override public int size() { return 1; } }; qrList.allRecordCount = 41; qrList.calculatePageInfo(20, 20); assertEquals(20, qrList.getPageSize()); assertEquals(2, qrList.getCurrentPageNumber()); assertEquals(41, qrList.getAllRecordCount()); assertEquals(2, qrList.getAllPageCount()); assertEquals(true, qrList.isExistPrevPage()); assertEquals(false, qrList.isExistNextPage()); assertEquals(21, qrList.getCurrentStartRecordNumber()); assertEquals(40, qrList.getCurrentEndRecordNumber()); } }