package jnpf.dmsService;
|
|
import jnpf.exception.DataException;
|
import org.junit.jupiter.api.Test;
|
import java.time.LocalDate;
|
import java.time.ZoneId;
|
import java.util.Date;
|
import static org.junit.jupiter.api.Assertions.*;
|
|
class DmsDownloadDeadlineTest {
|
@Test
|
void usesApplicationDaysInsteadOfFixedHours() {
|
ZoneId zone = ZoneId.of("Asia/Shanghai");
|
Date expected = Date.from(LocalDate.now(zone).plusDays(3).atTime(23, 59, 59).atZone(zone).toInstant());
|
assertEquals(expected, DmsDownloadDeadline.resolve("3", "detail-1"));
|
}
|
|
@Test
|
void zeroDaysEndsToday() {
|
ZoneId zone = ZoneId.of("Asia/Shanghai");
|
assertEquals(Date.from(LocalDate.now(zone).atTime(23, 59, 59).atZone(zone).toInstant()),
|
DmsDownloadDeadline.resolve("0", "detail-1"));
|
}
|
|
@Test
|
void noDeadlineMustBeExplicit() {
|
assertNull(DmsDownloadDeadline.resolve(" na ", "detail-1"));
|
assertThrows(DataException.class, () -> DmsDownloadDeadline.resolve(null, "detail-1"));
|
assertThrows(DataException.class, () -> DmsDownloadDeadline.resolve("", "detail-1"));
|
}
|
|
@Test
|
void rejectsInvalidApplicationDeadline() {
|
assertThrows(DataException.class, () -> DmsDownloadDeadline.resolve("-1", "detail-1"));
|
assertThrows(DataException.class, () -> DmsDownloadDeadline.resolve("invalid", "detail-1"));
|
}
|
}
|