package jnpf.dmsService.recordprint;
|
|
import jnpf.exception.DataException;
|
import org.junit.jupiter.api.Test;
|
|
import java.util.Arrays;
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
class DmsRecordPrintPageParserTest {
|
|
private final DmsRecordPrintPageParser parser = new DmsRecordPrintPageParser();
|
|
/**
|
* 验证页码集合支持区间、中文分隔符、去重并按升序返回。
|
*/
|
@Test
|
void parsesRangesAndRemovesDuplicatePages() throws Exception {
|
assertEquals(Arrays.asList(1, 2, 3, 5), parser.parse("[\"5\", \"1-3\", \"2\"]", 5));
|
}
|
|
/**
|
* 验证“全部”会展开为源文件的所有页面。
|
*/
|
@Test
|
void expandsAllPages() throws Exception {
|
assertEquals(Arrays.asList(1, 2, 3), parser.parse("全部", 3));
|
}
|
|
/**
|
* 验证页码超过源文件范围时拒绝打印。
|
*/
|
@Test
|
void rejectsPageOutsideFileRange() {
|
DataException exception = assertThrows(DataException.class,
|
() -> parser.parse("1,4", 3));
|
|
assertEquals("分散打印页码超出文件范围:4,文件共3页", exception.getMessage());
|
}
|
}
|