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}