package jnpf.bizcommon.onlyoffice.controller; import jnpf.bizcommon.onlyoffice.entity.OnlyOfficeCallbackParam; import jnpf.bizcommon.onlyoffice.exception.UploadEditCallbackException; import jnpf.bizcommon.onlyoffice.service.OnlyOfficeService; import jnpf.exception.DataException; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; public class OnlyOfficeControllerTest { @Test public void uploadSaveFailureIsReportedToDocumentServer() { OnlyOfficeService service = mock(OnlyOfficeService.class); doThrow(new UploadEditCallbackException(new DataException("附件保存失败"))) .when(service).handleCallback(any(), isNull()); assertEquals(1, new OnlyOfficeController(service).callback(new OnlyOfficeCallbackParam(), null).get("error")); } @Test public void originalBusinessFailureKeepsAcknowledgementContract() { OnlyOfficeService service = mock(OnlyOfficeService.class); OnlyOfficeController controller = new OnlyOfficeController(service); doThrow(new DataException("原场景业务异常")).when(service).handleCallback(any(), isNull()); assertEquals(0, controller.callback(new OnlyOfficeCallbackParam(), null).get("error")); doThrow(new IllegalStateException("原场景系统异常")).when(service).handleCallback(any(), isNull()); assertEquals(0, controller.callback(new OnlyOfficeCallbackParam(), null).get("error")); } @Test public void successfulCallbackIsAcknowledged() { OnlyOfficeService service = mock(OnlyOfficeService.class); assertEquals(0, new OnlyOfficeController(service).callback(new OnlyOfficeCallbackParam(), null).get("error")); } }