use of org.folio.dao.util.RecordType in project mod-source-record-storage by folio-org.
the class RecordServiceTest method getRecordsBySnapshotId.
private void getRecordsBySnapshotId(TestContext context, String uuid, RecordType parsedRecordType, Record.RecordType recordType) {
Async async = context.async();
List<Record> records = TestMocks.getRecords();
RecordCollection recordCollection = new RecordCollection().withRecords(records).withTotalRecords(records.size());
saveRecords(recordCollection.getRecords()).onComplete(batch -> {
if (batch.failed()) {
context.fail(batch.cause());
}
String snapshotId = uuid;
Condition condition = RECORDS_LB.SNAPSHOT_ID.eq(UUID.fromString(snapshotId));
List<OrderField<?>> orderFields = new ArrayList<>();
orderFields.add(RECORDS_LB.ORDER.sort(SortOrder.ASC));
recordService.getRecords(condition, parsedRecordType, orderFields, 0, 1, TENANT_ID).onComplete(get -> {
if (get.failed()) {
context.fail(get.cause());
}
List<Record> expected = records.stream().filter(r -> r.getRecordType().equals(recordType)).filter(r -> r.getSnapshotId().equals(snapshotId)).sorted(comparing(Record::getOrder)).collect(Collectors.toList());
context.assertEquals(expected.size(), get.result().getTotalRecords());
compareRecords(context, expected.get(0), get.result().getRecords().get(0));
async.complete();
});
});
}
use of org.folio.dao.util.RecordType in project mod-source-record-storage by folio-org.
the class RecordServiceTest method streamRecordsBySnapshotId.
private void streamRecordsBySnapshotId(TestContext context, String s, RecordType parsedRecordType, Record.RecordType recordType) {
Async async = context.async();
List<Record> records = TestMocks.getRecords();
RecordCollection recordCollection = new RecordCollection().withRecords(records).withTotalRecords(records.size());
saveRecords(recordCollection.getRecords()).onComplete(batch -> {
if (batch.failed()) {
context.fail(batch.cause());
}
String snapshotId = s;
Condition condition = RECORDS_LB.SNAPSHOT_ID.eq(UUID.fromString(snapshotId));
List<OrderField<?>> orderFields = new ArrayList<>();
orderFields.add(RECORDS_LB.ORDER.sort(SortOrder.ASC));
Flowable<Record> flowable = recordService.streamRecords(condition, parsedRecordType, orderFields, 0, 10, TENANT_ID);
List<Record> expected = records.stream().filter(r -> r.getRecordType().equals(recordType)).filter(r -> r.getSnapshotId().equals(snapshotId)).sorted(comparing(Record::getOrder)).collect(Collectors.toList());
List<Record> actual = new ArrayList<>();
flowable.doFinally(() -> {
context.assertEquals(expected.size(), actual.size());
compareRecords(context, expected.get(0), actual.get(0));
async.complete();
}).collect(() -> actual, List::add).subscribe();
});
}
use of org.folio.dao.util.RecordType in project mod-source-record-storage by folio-org.
the class RecordServiceTest method saveMarcRecordsWithExpectedErrors.
private void saveMarcRecordsWithExpectedErrors(TestContext context, Record.RecordType recordType) {
Async async = context.async();
List<Record> expected = TestMocks.getRecords().stream().filter(record -> record.getRecordType().equals(recordType)).map(record -> record.withSnapshotId(TestMocks.getSnapshot(0).getJobExecutionId())).map(record -> record.withErrorRecord(TestMocks.getErrorRecord(0))).collect(Collectors.toList());
RecordCollection recordCollection = new RecordCollection().withRecords(expected).withTotalRecords(expected.size());
recordService.saveRecords(recordCollection, TENANT_ID).onComplete(batch -> {
if (batch.failed()) {
context.fail(batch.cause());
}
context.assertEquals(0, batch.result().getErrorMessages().size());
context.assertEquals(expected.size(), batch.result().getTotalRecords());
expected.sort(comparing(Record::getId));
batch.result().getRecords().sort(comparing(Record::getId));
compareRecords(context, expected, batch.result().getRecords());
checkRecordErrorRecords(context, batch.result().getRecords(), TestMocks.getErrorRecord(0).getContent().toString(), TestMocks.getErrorRecord(0).getDescription());
RecordDaoUtil.countByCondition(postgresClientFactory.getQueryExecutor(TENANT_ID), DSL.trueCondition()).onComplete(count -> {
if (count.failed()) {
context.fail(count.cause());
}
context.assertEquals(expected.size(), count.result());
async.complete();
});
});
}
Aggregations