Phase 6
Build and Test j3270 / Build JAR & Run Tests (push) Successful in 1m4s

This commit is contained in:
2026-08-28 13:57:09 -04:00
parent 40ebd40fe2
commit 3a576b79b4
35 changed files with 5539 additions and 275 deletions
@@ -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"));
}
}