package jnpf.dmsService;
|
|
import jnpf.util.JsonUtil;
|
import org.junit.jupiter.api.Test;
|
|
import java.util.LinkedHashMap;
|
import java.util.Map;
|
|
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
class DmsQianpiyeTicketServiceTest {
|
|
@Test
|
void acceptsFullyBoundQianpiyeTicket() {
|
DmsQianpiyeTicketService service = new DmsQianpiyeTicketService(ticket -> JsonUtil.getObjectToString(payload()));
|
|
assertDoesNotThrow(() -> service.validate("ticket"));
|
}
|
|
@Test
|
void rejectsTicketsForAnotherPlugin() {
|
Map<String, String> invalid = payload();
|
invalid.put("pluginGuid", "asc.{wrong}");
|
DmsQianpiyeTicketService service = new DmsQianpiyeTicketService(ticket -> JsonUtil.getObjectToString(invalid));
|
|
assertThrows(DmsQianpiyeTicketService.InvalidQianpiyeTicketException.class,
|
() -> service.validate("ticket"));
|
}
|
|
@Test
|
void acceptsAnIssuedBeforeFileTypeWasBoundTicketAsAnAnnexFile() {
|
Map<String, String> legacy = payload();
|
legacy.remove("fileType");
|
DmsQianpiyeTicketService service = new DmsQianpiyeTicketService(ticket -> JsonUtil.getObjectToString(legacy));
|
|
assertEquals("annex", service.validate("ticket").getFileType());
|
}
|
|
private static Map<String, String> payload() {
|
Map<String, String> payload = new LinkedHashMap<>();
|
payload.put("scope", "onlyoffice:dms-qianpiye");
|
payload.put("tenantId", "tenant-1");
|
payload.put("userId", "user-1");
|
payload.put("fileId", "file-1");
|
payload.put("fileType", "annex");
|
payload.put("bizModule", "dms");
|
payload.put("bizScene", "dms.qianpiye");
|
payload.put("pluginGuid", "asc.{C764F7D6-055D-4C7D-97FD-83D2C4440585}");
|
return payload;
|
}
|
}
|