blob: f04b6cfabe763662164500c7741f0a9e8a6a28e2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2017 SAP AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Lazar Kirchev, SAP AG - initial contribution
******************************************************************************/
package org.eclipse.equinox.console.supportability;
import org.eclipse.equinox.console.common.ConsoleInputHandler;
import org.eclipse.equinox.console.common.ConsoleInputStream;
import org.junit.Assert;
import org.junit.Test;
import java.io.ByteArrayOutputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class ConsoleInputHandlerTests {
private static final long WAIT_TIME = 10000;
@Test
public void testHandler() throws Exception {
try (PipedInputStream input = new PipedInputStream(); PipedOutputStream output = new PipedOutputStream(input)) {
ConsoleInputStream in = new ConsoleInputStream();
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ConsoleInputHandler handler = new ConsoleInputHandler(input, in, byteOut);
byte[] testInput = new byte[] { 'a', 'b', 'c', 'd', 'e', '\r', '\n' };
byte[] expected = new byte[] { 'a', 'b', 'c', 'd', 'e', '\n' };
output.write(testInput);
output.flush();
handler.start();
try {
Thread.sleep(WAIT_TIME);
} catch (Exception e) {
// do nothing
}
byte[] read = new byte[expected.length];
in.read(read, 0, expected.length);
for (int i = 0; i < expected.length; i++) {
Assert.assertEquals(
"Incorrect char read. Position " + i + ", expected " + expected[i] + ", read " + read[i],
expected[i], read[i]);
}
}
}
}