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 ElnRecordFillTicketServiceTest {
|
|
@Test
|
public void recordFillTicketUsesTheCanonicalRecordContext() {
|
Map<String, String> payload = validPayload();
|
ElnRecordFillTicketService service = new ElnRecordFillTicketService(
|
ticket -> JsonUtil.getObjectToString(payload));
|
|
ElnRecordFillTicketService.FillTicketContext context = service.parse("ticket-1");
|
|
assertEquals("eln.record", context.getBizModule());
|
assertEquals("eln.record.fill", context.getBizScene());
|
}
|
|
@Test
|
public void parsesStrictBoundContext() {
|
ElnRecordFillTicketService service = new ElnRecordFillTicketService(ticket -> JsonUtil.getObjectToString(validPayload()));
|
|
ElnRecordFillTicketService.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 = ElnRecordFillTicketService.InvalidFillTicketException.class)
|
public void rejectsWrongScope() {
|
Map<String, String> payload = validPayload();
|
payload.put("scope", "other");
|
new ElnRecordFillTicketService(ticket -> JsonUtil.getObjectToString(payload)).parse("ticket-1");
|
}
|
|
@Test(expected = ElnRecordFillTicketService.InvalidFillTicketException.class)
|
public void rejectsTheRetiredTemplateFillContext() {
|
Map<String, String> payload = validPayload();
|
payload.put("scope", "onlyoffice:eln-template-fill");
|
payload.put("bizModule", "eln.template");
|
payload.put("bizScene", "eln.template.fill");
|
new ElnRecordFillTicketService(ticket -> JsonUtil.getObjectToString(payload)).parse("ticket-1");
|
}
|
|
@Test(expected = ElnRecordFillTicketService.InvalidFillTicketException.class)
|
public void rejectsMissingBinding() {
|
Map<String, String> payload = validPayload();
|
payload.remove("tenantId");
|
new ElnRecordFillTicketService(ticket -> JsonUtil.getObjectToString(payload)).parse("ticket-1");
|
}
|
|
@Test(expected = ElnRecordFillTicketService.InvalidFillTicketException.class)
|
public void rejectsExpiredTicket() {
|
new ElnRecordFillTicketService(ticket -> null).parse("ticket-1");
|
}
|
|
@Test(expected = ElnRecordFillTicketService.InvalidFillTicketException.class)
|
public void rejectsLegacyMapPayload() {
|
new ElnRecordFillTicketService(ticket -> validPayload()).parse("ticket-1");
|
}
|
|
private Map<String, String> validPayload() {
|
Map<String, String> payload = new LinkedHashMap<>();
|
payload.put("scope", "onlyoffice:eln-record-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.record");
|
payload.put("bizScene", "eln.record.fill");
|
payload.put("pluginGuid", "asc.{7F4E8F35-5D66-47F8-A5B4-6AB3FAACF565}");
|
return payload;
|
}
|
}
|