package jnpf.elnService; import jnpf.util.JsonUtil; import org.junit.Test; import java.util.LinkedHashMap; import java.util.Map; import static org.junit.Assert.assertEquals; public class TemplateFillTicketServiceTest { @Test public void parsesStrictBoundContext() { TemplateFillTicketService service = new TemplateFillTicketService(ticket -> JsonUtil.getObjectToString(validPayload())); TemplateFillTicketService.FillTicketContext context = service.parse("ticket-1"); assertEquals("tenant-1", context.getTenantId()); assertEquals("user-1", context.getUserId()); assertEquals("file-1", context.getFileId()); assertEquals("record-1", context.getBizDataId()); } @Test(expected = TemplateFillTicketService.InvalidFillTicketException.class) public void rejectsWrongScope() { Map payload = validPayload(); payload.put("scope", "other"); new TemplateFillTicketService(ticket -> JsonUtil.getObjectToString(payload)).parse("ticket-1"); } @Test(expected = TemplateFillTicketService.InvalidFillTicketException.class) public void rejectsMissingBinding() { Map payload = validPayload(); payload.remove("tenantId"); new TemplateFillTicketService(ticket -> JsonUtil.getObjectToString(payload)).parse("ticket-1"); } @Test(expected = TemplateFillTicketService.InvalidFillTicketException.class) public void rejectsExpiredTicket() { new TemplateFillTicketService(ticket -> null).parse("ticket-1"); } @Test(expected = TemplateFillTicketService.InvalidFillTicketException.class) public void rejectsLegacyMapPayload() { new TemplateFillTicketService(ticket -> validPayload()).parse("ticket-1"); } private Map validPayload() { Map payload = new LinkedHashMap<>(); payload.put("scope", "onlyoffice:eln-template-fill"); payload.put("tenantId", "tenant-1"); payload.put("userId", "user-1"); payload.put("fileId", "file-1"); payload.put("bizDataId", "record-1"); payload.put("bizModule", "eln.template"); payload.put("bizScene", "eln.template.fill"); payload.put("pluginGuid", "asc.{7F4E8F35-5D66-47F8-A5B4-6AB3FAACF565}"); return payload; } }