📄 pagedlistholdertests.java
字号:
/*
* Copyright 2002-2004 the original author or authors.
*
* 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.springframework.beans.support;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import junit.framework.TestCase;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.beans.TestBean;
/**
* @author Juergen Hoeller
* @author Jean-Pierre PAWLAK
* @since 20.05.2003
*/
public class PagedListHolderTests extends TestCase {
public void testPagedListHolder() {
TestBean tb1 = new TestBean();
tb1.setName("eva");
tb1.setAge(25);
TestBean tb2 = new TestBean();
tb2.setName("juergen");
tb2.setAge(99);
TestBean tb3 = new TestBean();
tb3.setName("Rod");
tb3.setAge(32);
List tbs = new ArrayList();
tbs.add(tb1);
tbs.add(tb2);
tbs.add(tb3);
PagedListHolder holder = new PagedListHolder(tbs);
assertTrue("Correct source", holder.getSource() == tbs);
assertTrue("Correct number of elements", holder.getNrOfElements() == 3);
assertTrue("Correct number of pages", holder.getNrOfPages() == 1);
assertTrue("Correct page size", holder.getPageSize() == PagedListHolder.DEFAULT_PAGE_SIZE);
assertTrue("Correct page number", holder.getPage() == 0);
assertTrue("First page", holder.isFirstPage());
assertTrue("Last page", holder.isLastPage());
assertTrue("Correct first element", holder.getFirstElementOnPage() == 0);
assertTrue("Correct first element", holder.getLastElementOnPage() == 2);
assertTrue("Correct page list size", holder.getPageList().size() == 3);
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb1);
assertTrue("Correct page list contents", holder.getPageList().get(1) == tb2);
assertTrue("Correct page list contents", holder.getPageList().get(2) == tb3);
holder.setPageSize(2);
assertTrue("Correct number of pages", holder.getNrOfPages() == 2);
assertTrue("Correct page size", holder.getPageSize() == 2);
assertTrue("Correct page number", holder.getPage() == 0);
assertTrue("First page", holder.isFirstPage());
assertFalse("Last page", holder.isLastPage());
assertTrue("Correct first element", holder.getFirstElementOnPage() == 0);
assertTrue("Correct last element", holder.getLastElementOnPage() == 1);
assertTrue("Correct page list size", holder.getPageList().size() == 2);
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb1);
assertTrue("Correct page list contents", holder.getPageList().get(1) == tb2);
holder.setPage(1);
assertTrue("Correct page number", holder.getPage() == 1);
assertFalse("First page", holder.isFirstPage());
assertTrue("Last page", holder.isLastPage());
assertTrue("Correct first element", holder.getFirstElementOnPage() == 2);
assertTrue("Correct last element", holder.getLastElementOnPage() == 2);
assertTrue("Correct page list size", holder.getPageList().size() == 1);
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb3);
holder.setPageSize(3);
assertTrue("Correct number of pages", holder.getNrOfPages() == 1);
assertTrue("Correct page size", holder.getPageSize() == 3);
assertTrue("Correct page number", holder.getPage() == 0);
assertTrue("First page", holder.isFirstPage());
assertTrue("Last page", holder.isLastPage());
assertTrue("Correct first element", holder.getFirstElementOnPage() == 0);
assertTrue("Correct last element", holder.getLastElementOnPage() == 2);
holder.setPage(1);
holder.setPageSize(2);
assertTrue("Correct number of pages", holder.getNrOfPages() == 2);
assertTrue("Correct page size", holder.getPageSize() == 2);
assertTrue("Correct page number", holder.getPage() == 1);
assertFalse("First page", holder.isFirstPage());
assertTrue("Last page", holder.isLastPage());
assertTrue("Correct first element", holder.getFirstElementOnPage() == 2);
assertTrue("Correct last element", holder.getLastElementOnPage() == 2);
holder.setPageSize(2);
holder.setPage(1);
((MutableSortDefinition) holder.getSort()).setProperty("name");
((MutableSortDefinition) holder.getSort()).setIgnoreCase(false);
holder.resort();
assertTrue("Correct source", holder.getSource() == tbs);
assertTrue("Correct number of elements", holder.getNrOfElements() == 3);
assertTrue("Correct number of pages", holder.getNrOfPages() == 2);
assertTrue("Correct page size", holder.getPageSize() == 2);
assertTrue("Correct page number", holder.getPage() == 0);
assertTrue("First page", holder.isFirstPage());
assertFalse("Last page", holder.isLastPage());
assertTrue("Correct first element", holder.getFirstElementOnPage() == 0);
assertTrue("Correct last element", holder.getLastElementOnPage() == 1);
assertTrue("Correct page list size", holder.getPageList().size() == 2);
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb3);
assertTrue("Correct page list contents", holder.getPageList().get(1) == tb1);
((MutableSortDefinition) holder.getSort()).setProperty("name");
holder.resort();
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb2);
assertTrue("Correct page list contents", holder.getPageList().get(1) == tb1);
((MutableSortDefinition) holder.getSort()).setProperty("name");
holder.resort();
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb3);
assertTrue("Correct page list contents", holder.getPageList().get(1) == tb1);
holder.setPage(1);
assertTrue("Correct page list size", holder.getPageList().size() == 1);
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb2);
((MutableSortDefinition) holder.getSort()).setProperty("age");
holder.resort();
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb1);
assertTrue("Correct page list contents", holder.getPageList().get(1) == tb3);
((MutableSortDefinition) holder.getSort()).setIgnoreCase(true);
holder.resort();
assertTrue("Correct page list contents", holder.getPageList().get(0) == tb1);
assertTrue("Correct page list contents", holder.getPageList().get(1) == tb3);
holder.nextPage();
assertEquals(1, holder.getPage());
holder.previousPage();
assertEquals(0, holder.getPage());
holder.nextPage();
assertEquals(1, holder.getPage());
holder.nextPage();
assertEquals(1, holder.getPage());
holder.previousPage();
assertEquals(0, holder.getPage());
holder.previousPage();
assertEquals(0, holder.getPage());
}
public void testRefreshablePagedListHolder() {
String s;
int n;
MockSourceProvider provider = new MockSourceProvider();
RefreshablePagedListHolder holder = new RefreshablePagedListHolder(provider);
holder.setFilter(new MockFilter());
BeanWrapper bw = new BeanWrapperImpl(holder);
holder.refresh(false);
n = holder.getNrOfElements();
assertTrue("A:number of elements: " + n, n == 12);
n = holder.getNrOfPages();
assertTrue("A:number of pages" + n, n == 2);
n = holder.getPageSize();
assertTrue("A:page size: " + n, n == 10);
n = holder.getPage();
assertTrue("A:page number: " + n, n == 0);
n = holder.getFirstElementOnPage();
assertTrue("A:first element: " + n, n == 0);
n = holder.getLastElementOnPage();
assertTrue("A:last element: " + n, n == 9);
n = holder.getPageList().size();
assertTrue("A:page list size: " + n, n == 10);
assertTrue("A:correct filter", holder.getFilter() instanceof MockFilter);
n = holder.getMaxLinkedPages();
assertTrue("A:maxLinkedPages: " + n, n == RefreshablePagedListHolder.DEFAULT_MAX_LINKED_PAGES);
n = holder.getFirstLinkedPage();
assertTrue("A:first display page: " + n, n == 0);
n = holder.getLastLinkedPage();
assertTrue("A:last display page: " + n, n == 1);
assertTrue("A:sort must be not null", holder.getSort().getProperty() != null);
n = holder.getSort().getProperty().length();
assertTrue("A:sort: " + n, n == 0);
s = ((TestBean)holder.getPageList().get(0)).getName();
assertTrue("A:page list contents0: " + s, s.equals("Calogero"));
s = ((TestBean)holder.getPageList().get(4)).getName();
assertTrue("A:page list contents4: " + s, s.equals("Jesus"));
n = ((MockSourceProvider) holder.getSourceProvider()).getNrOfCalls();
assertTrue("Correct number of times called: " + n, n == 1);
// Go to the second page
Map cmd = new HashMap();
cmd.put("page", "1");
bw.setPropertyValues(cmd);
holder.refresh(false);
n = holder.getPage();
assertTrue("B:page number with array map: " + n, n == 1);
n = holder.getPageList().size();
assertTrue("B:page list size: " + n, n == 2);
n = holder.getFirstElementOnPage();
assertTrue("B:first element: " + n, n == 10);
n = holder.getLastElementOnPage();
assertTrue("B:last element: " + n, n == 11);
s = ((TestBean)holder.getPageList().get(0)).getName();
assertTrue("B:page list contents0: " + s, s.equals("Toma"));
s = ((TestBean)holder.getPageList().get(1)).getName();
assertTrue("B:page list contents1: " + s, s.equals("Sergio"));
// Return to the first page and sort by name setting the page size to 5
cmd.clear();
cmd.put("sort.property", "name");
cmd.put("pageSize", "2");
bw.setPropertyValues(cmd);
holder.refresh(false);
n = holder.getNrOfPages();
assertTrue("C:number of pages: " + n, n == 6);
n = holder.getPageSize();
assertTrue("C:page size: " + n, n == 2);
n = holder.getPage();
assertTrue("C:page number: " + n, n == 0);
n = holder.getFirstLinkedPage();
assertTrue("C:first display page: " + n, n == 0);
n = holder.getLastLinkedPage();
assertTrue("C:last display page: " + n, n == 5);
n = holder.getFirstElementOnPage();
assertTrue("C:first element: " + n, n == 0);
n = holder.getLastElementOnPage();
assertTrue("C:last element: " + n, n == 1);
n = holder.getPageList().size();
assertTrue("C:page list size: " + n, n == 2);
s = ((TestBean)holder.getPageList().get(0)).getName();
assertTrue("C:page list contents0: " + s, s.equals("amid"));
s = ((TestBean)holder.getPageList().get(1)).getName();
assertTrue("C:page list contents1: " + s, s.equals("Aziz"));
assertTrue("C:sort must be not null", holder.getSort().getProperty() != null);
s = holder.getSort().getProperty();
assertTrue("C:sort: " + s, s.equals("name"));
n = ((MockSourceProvider) holder.getSourceProvider()).getNrOfCalls();
assertTrue("Correct number of times called: " + n, n == 1);
// Ignore case in sort, maxLinkedPages set to 3
cmd.clear();
cmd.put("sort.ignoreCase", "false");
cmd.put("maxLinkedPages", "3");
bw.setPropertyValues(cmd);
holder.refresh(false);
s = ((TestBean)holder.getPageList().get(0)).getName();
assertTrue("D:page list contents0: " + s, s.equals("Aziz"));
s = ((TestBean)holder.getPageList().get(1)).getName();
assertTrue("D:page list contents1: " + s, s.equals("Calogero"));
n = holder.getFirstLinkedPage();
assertTrue("D:first display page: " + n, n == 0);
n = holder.getLastLinkedPage();
assertTrue("D:last display page: " + n, n == 2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -