This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
package haus.nightmare.lib3270j.printer;
|
||||
|
||||
import haus.nightmare.lib3270j.ConnectionConfig;
|
||||
import haus.nightmare.lib3270j.charset.EbcdicTranslator;
|
||||
import haus.nightmare.lib3270j.datastream.DataStreamProcessor;
|
||||
import haus.nightmare.lib3270j.screen.ScreenBuffer;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class PrinterPhase6Test {
|
||||
|
||||
private PrinterConfig printerConfig;
|
||||
private Telnet3270EP printer;
|
||||
private PD3270 pd;
|
||||
private EbcdicTranslator translator;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
printerConfig = new PrinterConfig("localhost", 23, "PRT_LU1");
|
||||
printerConfig.setAssociatedDisplayLuName("DSP_LU1");
|
||||
pd = new PD3270(printerConfig);
|
||||
translator = new EbcdicTranslator("037");
|
||||
printer = new Telnet3270EP(printerConfig, pd, translator);
|
||||
pd.openPrinter(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConnectionConfigToPrinterConfigMapping() {
|
||||
ConnectionConfig ccfg = new ConnectionConfig("10.0.0.1", 992, true);
|
||||
ccfg.setLuName("DSP01");
|
||||
ccfg.setAssociatedPrinterLu("PRT01");
|
||||
ccfg.setCodePage("1047");
|
||||
|
||||
PrinterConfig pcfg = ccfg.toPrinterConfig();
|
||||
assertEquals("10.0.0.1", pcfg.getHost());
|
||||
assertEquals(992, pcfg.getPort());
|
||||
assertTrue(pcfg.isUseTls());
|
||||
assertEquals("PRT01", pcfg.getPrinterLuName());
|
||||
assertEquals("DSP01", pcfg.getAssociatedDisplayLuName());
|
||||
assertEquals("1047", pcfg.getCodePage());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDataStreamProcessorEmbeddedScsRouting() {
|
||||
ScreenBuffer screen = new ScreenBuffer(haus.nightmare.lib3270j.TerminalModel.IBM_3279_4, translator);
|
||||
DataStreamProcessor dsp = new DataStreamProcessor(screen, translator);
|
||||
PrintSCS3270 scs = new PrintSCS3270(printerConfig, pd, translator);
|
||||
|
||||
dsp.setEmbeddedScsProcessor(scs);
|
||||
assertSame(scs, dsp.getEmbeddedScsProcessor());
|
||||
|
||||
byte[] helloEbc = translator.stringToEbcdic("EMBEDDED SCS");
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
stream.write(helloEbc, 0, helloEbc.length);
|
||||
stream.write(PrinterConstants.SCS_NL);
|
||||
|
||||
byte[] payload = stream.toByteArray();
|
||||
dsp.processSCSData(payload, 0, payload.length);
|
||||
|
||||
String text = pd.getCapturedText();
|
||||
assertTrue(text.contains("EMBEDDED SCS"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryReplyBuilderAuxDevice() {
|
||||
ScreenBuffer screen = new ScreenBuffer(haus.nightmare.lib3270j.TerminalModel.IBM_3279_4, translator);
|
||||
haus.nightmare.lib3270j.datastream.QueryReplyBuilder qrb = new haus.nightmare.lib3270j.datastream.QueryReplyBuilder(screen);
|
||||
|
||||
byte[] auxDev = qrb.buildAuxDevice();
|
||||
assertNotNull(auxDev);
|
||||
assertTrue(auxDev.length >= 10);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTelnet3270EPClientFacade() {
|
||||
Telnet3270EPClient client = new Telnet3270EPClient(printerConfig);
|
||||
assertNotNull(client.getPD());
|
||||
assertNotNull(client.getSCS());
|
||||
assertNotNull(client.getPrintPS());
|
||||
assertNotNull(client.getConfig());
|
||||
|
||||
// Test direct print through client
|
||||
byte[] testText = translator.stringToEbcdic("CLIENT PRINT");
|
||||
client.printDirectBytes(testText, 0, testText.length);
|
||||
client.getSCS().flushLineBuffer();
|
||||
|
||||
String captured = client.getPD().getCapturedText();
|
||||
assertTrue(captured.contains("CLIENT PRINT"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user