/src/fitnesse/testutil/MockSocket.java
Java | 88 lines | 74 code | 12 blank | 2 comment | 1 complexity | a090631d99d77aa0945eebc5ce7ff586 MD5 | raw file
Possible License(s): BSD-2-Clause, BSD-3-Clause, GPL-2.0
- // Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
- // Released under the terms of the CPL Common Public License version 1.0.
- package fitnesse.testutil;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.PipedInputStream;
- import java.io.PipedOutputStream;
- import java.net.InetSocketAddress;
- import java.net.Socket;
- import java.net.SocketAddress;
- public class MockSocket extends Socket {
- InputStream input;
- OutputStream output;
- private String host;
- private boolean closed;
- public MockSocket() {
- try {
- PipedInputStream serverInput = new PipedInputStream();
- @SuppressWarnings("unused")
- PipedOutputStream clientOutput = new PipedOutputStream(serverInput);
- PipedInputStream clientInput = new PipedInputStream();
- PipedOutputStream serverOutput = new PipedOutputStream(clientInput);
- input = serverInput;
- output = serverOutput;
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- public MockSocket(String input) {
- this.input = new ByteArrayInputStream(input.getBytes());
- output = new ByteArrayOutputStream();
- }
- public MockSocket(InputStream input, OutputStream output) {
- this.input = input;
- this.output = output;
- }
- public synchronized InputStream getInputStream() {
- return input;
- }
- public synchronized OutputStream getOutputStream() {
- return output;
- }
- public void close() {
- closed = true;
- try {
- input.close();
- output.close();
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- }
- public boolean isClosed() {
- return closed;
- }
- public String getOutput() {
- if (output instanceof ByteArrayOutputStream) {
- try {
- return ((ByteArrayOutputStream) output).toString("UTF-8");
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- } else
- return "";
- }
- public void setHost(String host) {
- this.host = host;
- }
- public SocketAddress getRemoteSocketAddress() {
- return new InetSocketAddress(host, 123);
- }
- }