package jnpf.controller; import jakarta.servlet.http.HttpServletResponse; import jnpf.fileStorage.dms.DmsFileDownloadStorageService; import org.junit.Test; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import java.lang.reflect.Method; import java.util.UUID; import static org.junit.Assert.assertArrayEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; public class DmsFileDownloadControllerTest { @Test public void exposesTicketBoundAttachmentDownloadRoute() throws Exception { DmsFileDownloadStorageService service = mock(DmsFileDownloadStorageService.class); DmsFileDownloadController controller = new DmsFileDownloadController(service); UUID fileVersionId = UUID.randomUUID(); HttpServletResponse response = mock(HttpServletResponse.class); controller.stream(fileVersionId, "download-ticket", null, response); controller.stream(fileVersionId, "download-ticket", "pdf", response); verify(service).stream(fileVersionId, "download-ticket", null, response); verify(service).stream(fileVersionId, "download-ticket", "pdf", response); assertArrayEquals(new String[]{"/Dms/Download"}, DmsFileDownloadController.class.getAnnotation(RequestMapping.class).value()); Method stream = DmsFileDownloadController.class.getDeclaredMethod( "stream", UUID.class, String.class, String.class, HttpServletResponse.class); assertArrayEquals(new String[]{"/{fileVersionId}"}, stream.getAnnotation(GetMapping.class).value()); org.springframework.web.bind.annotation.RequestParam format = stream.getParameters()[2] .getAnnotation(org.springframework.web.bind.annotation.RequestParam.class); org.junit.Assert.assertEquals("format", format.value()); org.junit.Assert.assertFalse(format.required()); } }