@Before public void setUp() throws Exception { outputStream = new ByteArrayOutputStream(); factory = mock(HttpServletResponseImplFactory.class); HttpServletResponseImpl response = mock(HttpServletResponseImpl.class); printWriter = new PrintWriter(outputStream); when(response.getWriter()).thenReturn(printWriter); when(factory.createFromSocket(any(Socket.class))).thenReturn(response); serviceUnavailableHandler = new ServiceUnavailableHandler(factory); }
@Test public void shouldHandleServerRunnable() throws Exception { serviceUnavailableHandler.rejectedExecution(mock(ServerRunnable.class), null); verify(factory, times(1)).createFromSocket(any(Socket.class)); printWriter.flush(); assertThat(outputStream.toString(), containsString("503")); } }
public ServiceContainer(final ServerConfig serverConfig) { HeadersParser headersParser = new HeadersParser(); requestWrapperFactory = new HttpServletRequestImplFactory(headersParser, new QueryStringParser(), new RequestStatusParser(), new CookieParser(), new MultipartHeadersPartParser(headersParser), serverConfig.getTempPath() ); responseFactory = new HttpServletResponseImplFactory( new HeadersSerializer(), new CookieHeaderSerializer(new DateProvider()), new StreamHelper( new RangeHelper(), new RangePartHeaderSerializer() ) ); threadPoolExecutor = new ThreadPoolExecutor(1, serverConfig.getMaxServerThreads(), DEFAULT_TIME_UNITS, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(serverConfig.getMaxServerThreads() * MAX_THREADS_MULTIPLIER), Executors.defaultThreadFactory(), new ServiceUnavailableHandler(responseFactory) ); httpErrorHandlerResolver = new HttpErrorHandlerResolverImpl(serverConfig); pathHelper = new PathHelper(); }
@Test public void shouldIgnoreRunnableThatIsNotServerRunnable() throws Exception { serviceUnavailableHandler.rejectedExecution(mock(Runnable.class), null); verify(factory, never()).createFromSocket(any(Socket.class)); }