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 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 legacy = payload(); legacy.remove("fileType"); DmsQianpiyeTicketService service = new DmsQianpiyeTicketService(ticket -> JsonUtil.getObjectToString(legacy)); assertEquals("annex", service.validate("ticket").getFileType()); } private static Map payload() { Map 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; } }