001/* 002 * Stallion Core: A Modern Web Framework 003 * 004 * Copyright (C) 2015 - 2016 Stallion Software LLC. 005 * 006 * This program is free software: you can redistribute it and/or modify it under the terms of the 007 * GNU General Public License as published by the Free Software Foundation, either version 2 of 008 * the License, or (at your option) any later version. This program is distributed in the hope that 009 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 011 * License for more details. You should have received a copy of the GNU General Public License 012 * along with this program. If not, see <http://www.gnu.org/licenses/gpl-2.0.html>. 013 * 014 * 015 * 016 */ 017 018package io.stallion.testing; 019 020import io.stallion.monitoring.ExceptionEmailRunnable; 021import org.apache.commons.io.IOUtils; 022import org.apache.commons.lang3.StringUtils; 023 024import javax.servlet.ServletOutputStream; 025import javax.servlet.WriteListener; 026import java.io.ByteArrayOutputStream; 027import java.io.IOException; 028import java.io.PrintWriter; 029import java.io.UnsupportedEncodingException; 030import java.nio.charset.Charset; 031 032 033public class MockOutputStream extends ServletOutputStream { 034 private ByteArrayOutputStream writer; 035 public MockOutputStream() { 036 this.writer = new ByteArrayOutputStream(); 037 } 038 039 @Override 040 public boolean isReady() { 041 return true; 042 } 043 044 @Override 045 public void setWriteListener(WriteListener writeListener) { 046 047 } 048 049 @Override 050 public void write(int b) throws IOException { 051 052 this.writer.write(b); 053 } 054 055 public String toString() { 056 return StringUtils.toEncodedString(writer.toByteArray(), Charset.forName("UTF-8")); 057 } 058}