IND$FILE Browse!
This commit is contained in:
@@ -125,4 +125,66 @@ public class FTConfigTest {
|
||||
String cmd = config.buildCommand();
|
||||
assertEquals("IND$FILE PUT FILE01 (BINARY NOCRLF REPLACE", cmd);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPdsAllocationCommand() {
|
||||
FTConfig config = new FTConfig();
|
||||
config.setHostType(FTConfig.HostType.TSO);
|
||||
config.setDirection(FTConfig.Direction.SEND);
|
||||
config.setHostFilename("'USER.PDS.DATA'");
|
||||
config.setTransferMode(FTConfig.TransferMode.ASCII);
|
||||
config.setCrAction(FTConfig.CrAction.REMOVE);
|
||||
config.setRecfm("FB");
|
||||
config.setLrecl("80");
|
||||
config.setBlksize("3120");
|
||||
config.setPrimarySpace(15);
|
||||
config.setSecondarySpace(5);
|
||||
config.setDirectoryBlocks(10);
|
||||
config.setUnits(FTConfig.AllocationUnit.TRACKS);
|
||||
|
||||
String cmd = config.buildCommand();
|
||||
assertEquals("IND$FILE PUT 'USER.PDS.DATA' ASCII CRLF RECFM(F) LRECL(80) BLKSIZE(3120) SPACE(15,5,10) TRACKS", cmd);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPdsParseOptionsThreeParameters() {
|
||||
FTConfig config = new FTConfig();
|
||||
config.setDirection(FTConfig.Direction.SEND);
|
||||
config.setHostFilename("SYS1.PARMLIB");
|
||||
config.parseOptions("TSO ASCII CRLF SPACE(20,10,15) TRACKS");
|
||||
|
||||
assertEquals(20, config.getPrimarySpace());
|
||||
assertEquals(10, config.getSecondarySpace());
|
||||
assertEquals(15, config.getDirectoryBlocks());
|
||||
assertEquals(FTConfig.AllocationUnit.TRACKS, config.getUnits());
|
||||
assertEquals("IND$FILE PUT SYS1.PARMLIB ASCII CRLF SPACE(20,10,15) TRACKS", config.buildCommand());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPdsParseOptionsWithDirToken() {
|
||||
FTConfig config = new FTConfig();
|
||||
config.setDirection(FTConfig.Direction.SEND);
|
||||
config.setHostFilename("SYS1.PROCLIB");
|
||||
config.parseOptions("TSO ASCII CRLF SPACE(10,5) DIR(20) CYLINDERS");
|
||||
|
||||
assertEquals(10, config.getPrimarySpace());
|
||||
assertEquals(5, config.getSecondarySpace());
|
||||
assertEquals(20, config.getDirectoryBlocks());
|
||||
assertEquals(FTConfig.AllocationUnit.CYLINDERS, config.getUnits());
|
||||
assertEquals("IND$FILE PUT SYS1.PROCLIB ASCII CRLF SPACE(10,5,20) CYLINDERS", config.buildCommand());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPdsSetSpaceWithThreeArguments() {
|
||||
FTConfig config = new FTConfig();
|
||||
config.setDirection(FTConfig.Direction.SEND);
|
||||
config.setHostFilename("MY.PDS");
|
||||
config.setSpace("12,4,8");
|
||||
|
||||
assertEquals(12, config.getPrimarySpace());
|
||||
assertEquals(4, config.getSecondarySpace());
|
||||
assertEquals(8, config.getDirectoryBlocks());
|
||||
assertEquals(FTConfig.AllocationUnit.TRACKS, config.getUnits());
|
||||
assertTrue(config.buildCommand().contains("SPACE(12,4,8) TRACKS"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,4 +121,34 @@ public class DirectoryParserTest {
|
||||
assertEquals("GENPASS", entries.get(1).getFilename());
|
||||
assertEquals("REXX", entries.get(1).getFiletype());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testContinuousScreenBufferParsingCms() {
|
||||
// Continuous 80-character rows without newlines (as produced by unformatted 3270 presentation space)
|
||||
String row1 = String.format("%-80s", "PROFILE EXEC A1 V 80 25 1 2026-05-10 14:22:01");
|
||||
String row2 = String.format("%-80s", "TEST DATA A1 F 80 100 2 2026-08-01 09:15:00");
|
||||
String row3 = String.format("%-80s", "Ready; T=0.01/0.01 12:00:00");
|
||||
String continuousScreen = row1 + row2 + row3;
|
||||
|
||||
List<CMSDirectoryEntry> entries = CMSDirectoryParser.parse(continuousScreen);
|
||||
assertEquals(2, entries.size(), "Should parse 2 CMS entries and ignore Ready;");
|
||||
assertEquals("PROFILE", entries.get(0).getFilename());
|
||||
assertEquals("TEST", entries.get(1).getFilename());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testContinuousScreenBufferParsingTso() {
|
||||
// Continuous 80-character rows without newlines for ISPF DSLIST
|
||||
String row1 = String.format("%-80s", "Dslist - Data Sets Matching USER.*");
|
||||
String row2 = String.format("%-80s", "Command - Enter \"/\" to select action Tracks Dsorg Recfm Volume");
|
||||
String row3 = String.format("%-80s", " USER.TEST.CNTL 15 PO FB TSO001");
|
||||
String row4 = String.format("%-80s", " USER.TEST.DATA 10 PS FB TSO001");
|
||||
String row5 = String.format("%-80s", "***");
|
||||
String continuousScreen = row1 + row2 + row3 + row4 + row5;
|
||||
|
||||
List<TSODirectoryEntry> entries = TSODirectoryParser.parse(continuousScreen);
|
||||
assertEquals(2, entries.size(), "Should parse 2 TSO entries and ignore ***");
|
||||
assertEquals("USER.TEST.CNTL", entries.get(0).getName());
|
||||
assertEquals("USER.TEST.DATA", entries.get(1).getName());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user