use paging::Paginator;
const TOTAL_COUNT: usize = 100;
#[test]
fn test_paginator_total_pages() {
assert_eq!(Paginator::new(TOTAL_COUNT, None).total_pages(), 4);
assert_eq!(Paginator::new(TOTAL_COUNT, 7).total_pages(), 15);
assert_eq!(Paginator::new(TOTAL_COUNT, 65536).total_pages(), 1);
assert_eq!(Paginator::new(TOTAL_COUNT, 0).total_pages(), 4);
}
#[test]
fn test_page_next_page() {
assert_eq!(
Paginator::new(TOTAL_COUNT, None)
.page(1)
.unwrap()
.next_page()
.map(|x| x.page_value().get()),
Some(2)
);
assert_eq!(
Paginator::new(TOTAL_COUNT, None)
.page(4)
.unwrap()
.next_page(),
None
);
}
#[test]
fn test_page_prev_page() {
assert_eq!(
Paginator::new(TOTAL_COUNT, None)
.page(1)
.unwrap()
.prev_page(),
None
);
assert_eq!(
Paginator::new(TOTAL_COUNT, None)
.page(3)
.unwrap()
.prev_page()
.map(|x| x.page_value().get()),
Some(2)
);
assert_eq!(
Paginator::new(TOTAL_COUNT, None)
.page(4)
.unwrap()
.prev_page()
.map(|x| x.page_value().get()),
Some(3)
);
}
#[test]
fn test_pages() {
let mut pages = Paginator::new(TOTAL_COUNT, None).pages();
assert_eq!(pages.next().unwrap().page_value().get(), 1);
assert_eq!(pages.next_back().unwrap().page_value().get(), 4);
assert_eq!(pages.next_back().unwrap().page_value().get(), 3);
assert_eq!(pages.next().unwrap().page_value().get(), 2);
assert!(pages.next().is_none());
assert!(pages.next_back().is_none());
}