@Test public void testProcessRequest_DefaultFanartMissing() { AdvancedFanartMediaRequestHandler handler = spy(new AdvancedFanartMediaRequestHandler()); doNothing().when(handler).sendFile(any(File.class), any(HttpServletResponse.class)); doNothing() .when(handler) .error( anyInt(), anyString(), any(HttpServletRequest.class), any(HttpServletResponse.class)); HttpServletRequest req = mock(HttpServletRequest.class); HttpServletResponse resp = mock(HttpServletResponse.class); doReturn("true").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_USE_DEFAULT); doReturn("movie").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_MEDIATYPE); doReturn("banner").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_ARTIFACTTYPE); doReturn("1").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_MEDIAFILE); handler.processRequest(req, resp); ArgumentCaptor<Integer> capture = ArgumentCaptor.forClass(Integer.class); verify(handler) .error( capture.capture(), anyString(), any(HttpServletRequest.class), any(HttpServletResponse.class)); assertEquals(HttpServletResponse.SC_NOT_FOUND, capture.getValue().intValue()); }
@Test public void testProcessRequest_DefaultFanartFromUserData() throws IOException { // but we want to test that it reads from the userdata area. File file = new File( Phoenix.getInstance().getUserPath(AdvancedFanartMediaRequestHandler.DEFAULT_FANART), "default_movie_poster.jpg"); FileUtils.touch(file); AdvancedFanartMediaRequestHandler handler = spy(new AdvancedFanartMediaRequestHandler()); doNothing().when(handler).sendFile(any(File.class), any(HttpServletResponse.class)); doNothing() .when(handler) .error( anyInt(), anyString(), any(HttpServletRequest.class), any(HttpServletResponse.class)); HttpServletRequest req = mock(HttpServletRequest.class); HttpServletResponse resp = mock(HttpServletResponse.class); doReturn("true").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_USE_DEFAULT); doReturn("movie").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_MEDIATYPE); doReturn("poster").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_ARTIFACTTYPE); doReturn("1").when(req).getParameter(AdvancedFanartMediaRequestHandler.PARAM_MEDIAFILE); handler.processRequest(req, resp); ArgumentCaptor<File> capture = ArgumentCaptor.forClass(File.class); verify(handler).sendFile(capture.capture(), any(HttpServletResponse.class)); assertEquals("default_movie_poster.jpg", capture.getValue().getName()); assertEquals("Should be 0 byte file, since we just created it", 0, capture.getValue().length()); }