package net.sf.appstatus.web.pages;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.output.NullWriter;
import org.junit.Test;
import net.sf.appstatus.core.AppStatus;
import net.sf.appstatus.web.IPage;
import net.sf.appstatus.web.StatusWebHandler;
public class StatusTest {
@Test
public void testMaintenance() throws UnsupportedEncodingException, IOException {
final AppStatus appStatus = new AppStatus();
// Maintenance is on
appStatus.setMaintenance(true);
final StatusWebHandler statusWeb = new StatusWebHandler();
statusWeb.setAppStatus(appStatus);
statusWeb.setApplicationName("test");
final Map<String, IPage> pages = new HashMap<String, IPage>();
final StatusPage page = new StatusPage();
pages.put(page.getId(), page);
statusWeb.setPages(pages);
statusWeb.init();
final HttpServletRequest servlet = mock(HttpServletRequest.class);
final HttpServletRequest request = mock(HttpServletRequest.class);
final HttpServletResponse response = mock(HttpServletResponse.class);
final StubServletOutputStream sos = new StubServletOutputStream();
when(response.getWriter()).thenReturn(new PrintWriter(new NullWriter()));
when(response.getOutputStream()).thenReturn(sos);
page.doGet(statusWeb, request, response);
verify(response).setStatus(503);
}
@Test
public void testSuccess() throws UnsupportedEncodingException, IOException {
final AppStatus appStatus = new AppStatus();
final StatusWebHandler statusWeb = new StatusWebHandler();
statusWeb.setAppStatus(appStatus);
statusWeb.setApplicationName("test");
final Map<String, IPage> pages = new HashMap<String, IPage>();
final StatusPage page = new StatusPage();
pages.put(page.getId(), page);
statusWeb.setPages(pages);
statusWeb.init();
final HttpServletRequest servlet = mock(HttpServletRequest.class);
final HttpServletRequest request = mock(HttpServletRequest.class);
final HttpServletResponse response = mock(HttpServletResponse.class);
final StubServletOutputStream sos = new StubServletOutputStream();
when(response.getWriter()).thenReturn(new PrintWriter(new NullWriter()));
when(response.getOutputStream()).thenReturn(sos);
page.doGet(statusWeb, request, response);
verify(response).setStatus(200);
}
}