/** * Copyright (c) Red Hat, Inc., contributors and others 2004 - 2014. All rights reserved * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.jboss.tools.aesh.core.console; import java.io.InputStream; import java.io.OutputStream; import org.jboss.tools.aesh.core.document.Document; import org.jboss.tools.aesh.core.internal.io.AeshInputStream; import org.jboss.tools.aesh.core.test.util.TestDocument; import org.junit.Assert; import org.junit.Test; public class AbstractConsoleTest { private final static byte[] OUT_BUFFER = new byte[] { 'o', 'u', 't' }; private final static byte[] ERROR_BUFFER = new byte[] { 'e', 'r', 'r', 'o', 'r' }; private String replacedString = null; private AbstractConsole console = new AbstractConsole() { @Override public void start() {} @Override public void stop() {} }; private Document testDocument = new TestDocument() { @Override public void replace(int offset, int length, String string) { replacedString = string; } }; @Test public void testSendInput() throws Exception { byte[] buffer = new byte[4]; Assert.assertNull(console.getInputStream()); Assert.assertNotEquals("test", new String(buffer)); AeshInputStream inputStream = new AeshInputStream(); console.setInputStream(inputStream); console.sendInput("test"); inputStream.read(buffer); Assert.assertEquals("test", new String(buffer)); } @Test public void testConnect() throws Exception { Assert.assertNull(replacedString); Assert.assertNull(console.getInputStream()); Assert.assertNull(console.getOutputStream()); Assert.assertNull(console.getErrorStream()); console.connect(testDocument); InputStream inputStream = console.getInputStream(); OutputStream outputStream = console.getOutputStream(); OutputStream errorStream = console.getErrorStream(); Assert.assertNotNull(inputStream); Assert.assertNotNull(outputStream); Assert.assertNotNull(errorStream); outputStream.write(OUT_BUFFER); Assert.assertEquals("out", replacedString); errorStream.write(ERROR_BUFFER); Assert.assertEquals("error", replacedString); } @Test public void testDisconnect() throws Exception { console.connect(testDocument); OutputStream outputStream = console.getOutputStream(); OutputStream errorStream = console.getErrorStream(); outputStream.write(OUT_BUFFER); Assert.assertEquals("out", replacedString); errorStream.write(ERROR_BUFFER); Assert.assertEquals("error", replacedString); replacedString = null; console.disconnect(); outputStream.write(OUT_BUFFER); Assert.assertNull(replacedString); errorStream.write(ERROR_BUFFER); Assert.assertNull(replacedString); Assert.assertNull(console.getInputStream()); Assert.assertNull(console.getOutputStream()); Assert.assertNull(console.getErrorStream()); } }