swt-importer улучшил логи, добавил юнит тест

This commit is contained in:
AKurakin 2023-09-12 17:32:21 +03:00
parent 21ec74df69
commit 9507dc10be
6 changed files with 70 additions and 7 deletions

View file

@ -62,7 +62,7 @@ public class ImportToDB extends Stage {
do {
ValidationResult result = swtReader.readGroupRecords();
if (!SUCSESS.equals(result)) {
log.debug("reading error: {}.", result.message());
log.warn("reading error: {}.", result.message());
return StageResult.ERROR;
}
List<SWTRecord> records = swtReader.getGroupRecords();

View file

@ -23,6 +23,7 @@ public abstract class AbstractTemplate {
protected Logger log = LoggerFactory.getLogger(getClass());
protected Scanner scanner;
protected boolean readEnded;
protected long lineNumber;
protected abstract List<SWTRecord> getGroupRecords();
@ -31,6 +32,7 @@ public abstract class AbstractTemplate {
public AbstractTemplate(Scanner scanner) {
this.scanner = scanner;
this.readEnded = false;
this.lineNumber = 0;
}
protected ValidationResult checkNotValue(String line, String errMes) {
@ -44,10 +46,11 @@ public abstract class AbstractTemplate {
protected ValidationResult prepareNextLine(Consumer<String> lineSetter) {
while (scanner.hasNextLine()) {
lineNumber++;
lineSetter.accept(scanner.nextLine());
return SUCSESS;
}
return new ValidationResult("Bud file format.");
return new ValidationResult("Line "+ lineNumber+" Bad file format. Unexpected EOF.");
}

View file

@ -77,7 +77,7 @@ public class SDf20Template extends AbstractTemplate {
}
}
} else {
result = checkNotValue(line, "required teg: " + currentPattern.name() + ", but was: ");
result = checkNotValue(line, "Line " + lineNumber + "required teg: " + currentPattern.name() + ", but was: ");
if (!SUCSESS.equals(result)) return result;
result = prepareNextLine(this::setLine);
if (!SUCSESS.equals(result)) {

View file

@ -78,7 +78,7 @@ public class SDf21Template extends AbstractTemplate {
result = prepareNextLine(this::setLine);
if (!SUCSESS.equals(result)) return result;
} else {
result = checkNotValue(line, "required teg: " + currentPattern.name() + ", but was: ");
result = checkNotValue(line, "Line " + lineNumber + " required teg: " + currentPattern.name() + ", but was: ");
if (!SUCSESS.equals(result)) return result;
result = prepareNextLine(this::setLine);
if (!SUCSESS.equals(result)) return result;
@ -105,7 +105,7 @@ public class SDf21Template extends AbstractTemplate {
result = prepareNextLine(this::setLine);
if (!SUCSESS.equals(result)) return result;
} else {
result = checkNotValue(line, "required teg: " + currentPattern.name() + ", but was: ");
result = checkNotValue(line, "Line " + lineNumber + " required teg: " + currentPattern.name() + ", but was: ");
if (!SUCSESS.equals(result)) return result;
result = prepareNextLine(this::setLine);
if (!SUCSESS.equals(result)) return result;
@ -126,7 +126,7 @@ public class SDf21Template extends AbstractTemplate {
}
}
} else {
result = checkNotValue(line, "required teg: " + currentPattern.name() + ", but was: ");
result = checkNotValue(line, "Line " + lineNumber + " required teg: " + currentPattern.name() + ", but was: ");
if (!SUCSESS.equals(result)) return result;
result = prepareNextLine(this::setLine);
if (!SUCSESS.equals(result)) return result;

View file

@ -100,7 +100,22 @@ class ImportToDBTest {
importToDB.process(resultContainer);
Imdg<SDf21> df21Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf21, SDf21.class);
Collection<SDf21> values = df21Imdg.getAllValues();
Assertions.assertEquals(7, values.size());
Assertions.assertEquals(13, values.size());
}
@Test
void process_21_2() throws IOException {
ETable eTable = ETable.S_DF_21;
{
File swtFile = new File("src/test/resources/input", "RDC_KS_DF-21_230912125920333.txt");
ResultContainer resultContainer = createNewTask(eTable, swtFile);
resultContainer.setSwtSource(Files.readAllBytes(Paths.get(swtFile.getAbsolutePath())));
importToDB.process(resultContainer);
Imdg<SDf21> df21Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf21, SDf21.class);
Collection<SDf21> values = df21Imdg.getAllValues();
Assertions.assertEquals(3, values.size());
}
}
}

View file

@ -0,0 +1,45 @@
To:SPCE
From:CSO
Type:572
Date/Time:20230912/1259
:20:SDC230912125920
:21:NONREF
:18A:2
:35B:ISIN SU26238RMFS4:Ìèíôèí Ðîññèè:îáëèãàöèè
:60A:SHS0,
:83D:700988887ZT0:Áàíê Ðîññèè:òåõíè÷åñêèé ñ÷åò
:18A:2
:20C:Ïîðó÷. SPCEX_20230912_1
:35A:SHS230,
:23:253
:66A:RECFREE
:87D:
:30:20230912
1
2
:20C:Ïîðó÷åíèå 6520536 îò 2023-09-12
:35A:SHS120,
:23:255
:66A:DELFREE
:87D:747200000AT0
:30:20230912
2
2
:62A:SHS110,
1
2
:35B:ISIN SU26238RMFS4:Ìèíôèí Ðîññèè:îáëèãàöèè
:60A:SHS0,
:83D:747200000AT0:ÏÀÎ "Ïðîìñâÿçüáàíê":ðàçäåë îñíîâíîé äëÿ ðàñ÷åòîâ (êëèåíòñêèå ÖÁ)
:18A:1
:20C:Ïîðó÷åíèå 6520536 îò 2023-09-12
:35A:SHS120,
:23:255
:66A:RECFREE
:87D:700988887ZT0
:30:20230912
1
1
:62A:SHS120,
2
2