Search in sources :

Example 1 with SourceRecord

use of org.folio.rest.jaxrs.model.SourceRecord in project mod-source-record-storage by folio-org.

the class QuickMarcKafkaHandlerTest method shouldUpdateParsedRecordAndSendRecordUpdatedEvent.

@Test
public void shouldUpdateParsedRecordAndSendRecordUpdatedEvent(TestContext context) throws InterruptedException {
    Async async = context.async();
    ParsedRecord parsedRecord = record.getParsedRecord();
    Future<Record> future = recordService.saveRecord(record, TENANT_ID);
    ParsedRecordDto parsedRecordDto = new ParsedRecordDto().withId(record.getMatchedId()).withParsedRecord(new ParsedRecord().withContent(UPDATED_PARSED_RECORD_CONTENT)).withRelatedRecordVersion("1").withRecordType(ParsedRecordDto.RecordType.MARC_BIB);
    var payload = new HashMap<String, String>();
    payload.put("PARSED_RECORD_DTO", Json.encode(parsedRecordDto));
    cluster.send(createRequest(payload));
    String observeTopic = formatTopicName(kafkaConfig.getEnvId(), getDefaultNameSpace(), TENANT_ID, QM_SRS_MARC_RECORD_UPDATED.name());
    cluster.observeValues(ObserveKeyValues.on(observeTopic, 1).observeFor(30, TimeUnit.SECONDS).build());
    future.onComplete(ar -> {
        if (ar.failed()) {
            context.fail(ar.cause());
        }
        recordService.getSourceRecordById(record.getMatchedId(), IdType.RECORD, TENANT_ID).onComplete(getNew -> {
            if (getNew.failed()) {
                context.fail(getNew.cause());
            }
            context.assertTrue(getNew.result().isPresent());
            SourceRecord updatedRecord = getNew.result().get();
            context.assertNotEquals(parsedRecord.getId(), updatedRecord.getParsedRecord().getId());
            context.assertNotEquals(record.getSnapshotId(), updatedRecord.getSnapshotId());
            recordDao.getRecordByCondition(Tables.RECORDS_LB.ID.eq(UUID.fromString(record.getId())), TENANT_ID).onComplete(getOld -> {
                if (getOld.failed()) {
                    context.fail(getOld.cause());
                }
                context.assertTrue(getOld.result().isPresent());
                Record existingRecord = getOld.result().get();
                context.assertEquals(State.OLD, existingRecord.getState());
                context.assertEquals(0, existingRecord.getGeneration());
                context.assertEquals(parsedRecord.getId(), existingRecord.getParsedRecord().getId());
                context.assertEquals(parsedRecord.getContent(), existingRecord.getParsedRecord().getContent());
                context.assertEquals(record.getSnapshotId(), existingRecord.getSnapshotId());
                async.complete();
            });
        });
    });
}
Also used : HashMap(java.util.HashMap) Async(io.vertx.ext.unit.Async) ParsedRecordDto(org.folio.rest.jaxrs.model.ParsedRecordDto) RawRecord(org.folio.rest.jaxrs.model.RawRecord) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Record(org.folio.rest.jaxrs.model.Record) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Test(org.junit.Test)

Example 2 with SourceRecord

use of org.folio.rest.jaxrs.model.SourceRecord in project mod-source-record-storage by folio-org.

the class RecordServiceTest method getMarcSourceRecordsByListOfIdsThatAreDeleted.

private void getMarcSourceRecordsByListOfIdsThatAreDeleted(TestContext context, Record.RecordType recordType, RecordType parsedRecordType) {
    Async async = context.async();
    List<Record> records = TestMocks.getRecords().stream().map(record -> {
        Record deletedRecord = new Record().withId(record.getId()).withSnapshotId(record.getSnapshotId()).withMatchedId(record.getMatchedId()).withRecordType(record.getRecordType()).withState(State.DELETED).withGeneration(record.getGeneration()).withOrder(record.getOrder()).withLeaderRecordStatus(record.getLeaderRecordStatus()).withRawRecord(record.getRawRecord()).withParsedRecord(record.getParsedRecord()).withAdditionalInfo(record.getAdditionalInfo()).withExternalIdsHolder(record.getExternalIdsHolder());
        if (Objects.nonNull(record.getMetadata())) {
            deletedRecord.withMetadata(record.getMetadata());
        }
        if (Objects.nonNull(record.getErrorRecord())) {
            deletedRecord.withErrorRecord(record.getErrorRecord());
        }
        return deletedRecord;
    }).collect(Collectors.toList());
    RecordCollection recordCollection = new RecordCollection().withRecords(records).withTotalRecords(records.size());
    saveRecords(recordCollection.getRecords()).onComplete(batch -> {
        if (batch.failed()) {
            context.fail(batch.cause());
        }
        List<String> ids = records.stream().filter(r -> r.getRecordType().equals(recordType)).map(Record::getMatchedId).collect(Collectors.toList());
        recordService.getSourceRecords(ids, IdType.RECORD, parsedRecordType, true, TENANT_ID).onComplete(get -> {
            if (get.failed()) {
                context.fail(get.cause());
            }
            List<SourceRecord> expected = records.stream().filter(r -> r.getRecordType().equals(recordType)).map(RecordDaoUtil::toSourceRecord).sorted(comparing(SourceRecord::getRecordId)).collect(Collectors.toList());
            get.result().getSourceRecords().sort(comparing(SourceRecord::getRecordId));
            context.assertEquals(expected.size(), get.result().getTotalRecords());
            compareSourceRecords(context, expected, get.result().getSourceRecords());
            async.complete();
        });
    });
}
Also used : TestContext(io.vertx.ext.unit.TestContext) Async(io.vertx.ext.unit.Async) DSL(org.jooq.impl.DSL) RecordDaoImpl(org.folio.dao.RecordDaoImpl) RawRecord(org.folio.rest.jaxrs.model.RawRecord) RunWith(org.junit.runner.RunWith) Condition(org.jooq.Condition) ArrayList(java.util.ArrayList) CompositeFuture(io.vertx.core.CompositeFuture) RecordType(org.folio.dao.util.RecordType) RecordsBatchResponse(org.folio.rest.jaxrs.model.RecordsBatchResponse) RecordState(org.folio.rest.jooq.enums.RecordState) RECORDS_LB(org.folio.rest.jooq.Tables.RECORDS_LB) Flowable(io.reactivex.Flowable) IdType(org.folio.dao.util.IdType) ExternalIdsHolder(org.folio.rest.jaxrs.model.ExternalIdsHolder) After(org.junit.After) AsyncResult(io.vertx.core.AsyncResult) Comparator.comparing(java.util.Comparator.comparing) AdditionalInfo(org.folio.rest.jaxrs.model.AdditionalInfo) SortOrder(org.jooq.SortOrder) TestMocks(org.folio.TestMocks) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Before(org.junit.Before) GenericCompositeFuture(org.folio.okapi.common.GenericCompositeFuture) RecordDao(org.folio.dao.RecordDao) DuplicateEventException(org.folio.kafka.exception.DuplicateEventException) Record(org.folio.rest.jaxrs.model.Record) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) Test(org.junit.Test) VertxUnitRunner(io.vertx.ext.unit.junit.VertxUnitRunner) SnapshotDaoUtil(org.folio.dao.util.SnapshotDaoUtil) UUID(java.util.UUID) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) Future(io.vertx.core.Future) ParsedRecordDto(org.folio.rest.jaxrs.model.ParsedRecordDto) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) OffsetDateTime(java.time.OffsetDateTime) ChronoUnit(java.time.temporal.ChronoUnit) State(org.folio.rest.jaxrs.model.Record.State) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) OrderField(org.jooq.OrderField) Assertions(org.junit.jupiter.api.Assertions) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) Async(io.vertx.ext.unit.Async) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) RawRecord(org.folio.rest.jaxrs.model.RawRecord) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Record(org.folio.rest.jaxrs.model.Record) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord)

Example 3 with SourceRecord

use of org.folio.rest.jaxrs.model.SourceRecord in project mod-source-record-storage by folio-org.

the class RecordServiceTest method getMarcSourceRecords.

private void getMarcSourceRecords(TestContext context, 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());
        }
        Condition condition = DSL.trueCondition();
        List<OrderField<?>> orderFields = new ArrayList<>();
        recordService.getSourceRecords(condition, parsedRecordType, orderFields, 0, 10, TENANT_ID).onComplete(get -> {
            if (get.failed()) {
                context.fail(get.cause());
            }
            List<SourceRecord> expected = records.stream().filter(r -> r.getRecordType().equals(recordType)).map(RecordDaoUtil::toSourceRecord).sorted(comparing(SourceRecord::getRecordId)).collect(Collectors.toList());
            get.result().getSourceRecords().sort(comparing(SourceRecord::getRecordId));
            context.assertEquals(expected.size(), get.result().getTotalRecords());
            compareSourceRecords(context, expected, get.result().getSourceRecords());
            async.complete();
        });
    });
}
Also used : Condition(org.jooq.Condition) TestContext(io.vertx.ext.unit.TestContext) Async(io.vertx.ext.unit.Async) DSL(org.jooq.impl.DSL) RecordDaoImpl(org.folio.dao.RecordDaoImpl) RawRecord(org.folio.rest.jaxrs.model.RawRecord) RunWith(org.junit.runner.RunWith) Condition(org.jooq.Condition) ArrayList(java.util.ArrayList) CompositeFuture(io.vertx.core.CompositeFuture) RecordType(org.folio.dao.util.RecordType) RecordsBatchResponse(org.folio.rest.jaxrs.model.RecordsBatchResponse) RecordState(org.folio.rest.jooq.enums.RecordState) RECORDS_LB(org.folio.rest.jooq.Tables.RECORDS_LB) Flowable(io.reactivex.Flowable) IdType(org.folio.dao.util.IdType) ExternalIdsHolder(org.folio.rest.jaxrs.model.ExternalIdsHolder) After(org.junit.After) AsyncResult(io.vertx.core.AsyncResult) Comparator.comparing(java.util.Comparator.comparing) AdditionalInfo(org.folio.rest.jaxrs.model.AdditionalInfo) SortOrder(org.jooq.SortOrder) TestMocks(org.folio.TestMocks) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Before(org.junit.Before) GenericCompositeFuture(org.folio.okapi.common.GenericCompositeFuture) RecordDao(org.folio.dao.RecordDao) DuplicateEventException(org.folio.kafka.exception.DuplicateEventException) Record(org.folio.rest.jaxrs.model.Record) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) Test(org.junit.Test) VertxUnitRunner(io.vertx.ext.unit.junit.VertxUnitRunner) SnapshotDaoUtil(org.folio.dao.util.SnapshotDaoUtil) UUID(java.util.UUID) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) Future(io.vertx.core.Future) ParsedRecordDto(org.folio.rest.jaxrs.model.ParsedRecordDto) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) OffsetDateTime(java.time.OffsetDateTime) ChronoUnit(java.time.temporal.ChronoUnit) State(org.folio.rest.jaxrs.model.Record.State) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) OrderField(org.jooq.OrderField) Assertions(org.junit.jupiter.api.Assertions) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) Async(io.vertx.ext.unit.Async) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) ArrayList(java.util.ArrayList) RawRecord(org.folio.rest.jaxrs.model.RawRecord) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Record(org.folio.rest.jaxrs.model.Record) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) OrderField(org.jooq.OrderField)

Example 4 with SourceRecord

use of org.folio.rest.jaxrs.model.SourceRecord in project mod-source-record-storage by folio-org.

the class RecordServiceTest method getMarcSourceRecordsBetweenDates.

private void getMarcSourceRecordsBetweenDates(TestContext context, Record.RecordType recordType, RecordType parsedRecordType, OffsetDateTime earliestDate, OffsetDateTime latestDate) {
    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());
        }
        Condition condition = RECORDS_LB.CREATED_DATE.between(earliestDate, latestDate);
        List<OrderField<?>> orderFields = new ArrayList<>();
        recordService.getSourceRecords(condition, parsedRecordType, orderFields, 0, 10, TENANT_ID).onComplete(get -> {
            if (get.failed()) {
                context.fail(get.cause());
            }
            List<SourceRecord> expected = records.stream().filter(r -> r.getRecordType().equals(recordType)).map(RecordDaoUtil::toSourceRecord).sorted(comparing(SourceRecord::getRecordId)).collect(Collectors.toList());
            get.result().getSourceRecords().sort(comparing(SourceRecord::getRecordId));
            context.assertEquals(expected.size(), get.result().getTotalRecords());
            compareSourceRecords(context, expected, get.result().getSourceRecords());
            async.complete();
        });
    });
}
Also used : Condition(org.jooq.Condition) TestContext(io.vertx.ext.unit.TestContext) Async(io.vertx.ext.unit.Async) DSL(org.jooq.impl.DSL) RecordDaoImpl(org.folio.dao.RecordDaoImpl) RawRecord(org.folio.rest.jaxrs.model.RawRecord) RunWith(org.junit.runner.RunWith) Condition(org.jooq.Condition) ArrayList(java.util.ArrayList) CompositeFuture(io.vertx.core.CompositeFuture) RecordType(org.folio.dao.util.RecordType) RecordsBatchResponse(org.folio.rest.jaxrs.model.RecordsBatchResponse) RecordState(org.folio.rest.jooq.enums.RecordState) RECORDS_LB(org.folio.rest.jooq.Tables.RECORDS_LB) Flowable(io.reactivex.Flowable) IdType(org.folio.dao.util.IdType) ExternalIdsHolder(org.folio.rest.jaxrs.model.ExternalIdsHolder) After(org.junit.After) AsyncResult(io.vertx.core.AsyncResult) Comparator.comparing(java.util.Comparator.comparing) AdditionalInfo(org.folio.rest.jaxrs.model.AdditionalInfo) SortOrder(org.jooq.SortOrder) TestMocks(org.folio.TestMocks) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Before(org.junit.Before) GenericCompositeFuture(org.folio.okapi.common.GenericCompositeFuture) RecordDao(org.folio.dao.RecordDao) DuplicateEventException(org.folio.kafka.exception.DuplicateEventException) Record(org.folio.rest.jaxrs.model.Record) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) Test(org.junit.Test) VertxUnitRunner(io.vertx.ext.unit.junit.VertxUnitRunner) SnapshotDaoUtil(org.folio.dao.util.SnapshotDaoUtil) UUID(java.util.UUID) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) Future(io.vertx.core.Future) ParsedRecordDto(org.folio.rest.jaxrs.model.ParsedRecordDto) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) OffsetDateTime(java.time.OffsetDateTime) ChronoUnit(java.time.temporal.ChronoUnit) State(org.folio.rest.jaxrs.model.Record.State) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) OrderField(org.jooq.OrderField) Assertions(org.junit.jupiter.api.Assertions) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) Async(io.vertx.ext.unit.Async) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) ArrayList(java.util.ArrayList) RawRecord(org.folio.rest.jaxrs.model.RawRecord) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Record(org.folio.rest.jaxrs.model.Record) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) OrderField(org.jooq.OrderField)

Example 5 with SourceRecord

use of org.folio.rest.jaxrs.model.SourceRecord in project mod-source-record-storage by folio-org.

the class RecordServiceTest method getMarcSourceRecordsByListOfIds.

private void getMarcSourceRecordsByListOfIds(TestContext context, Record.RecordType recordType, RecordType parsedRecordType) {
    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());
        }
        List<String> ids = records.stream().filter(r -> r.getRecordType().equals(recordType)).map(Record::getMatchedId).collect(Collectors.toList());
        recordService.getSourceRecords(ids, IdType.RECORD, parsedRecordType, false, TENANT_ID).onComplete(get -> {
            if (get.failed()) {
                context.fail(get.cause());
            }
            List<SourceRecord> expected = records.stream().filter(r -> r.getRecordType().equals(recordType)).map(RecordDaoUtil::toSourceRecord).sorted(comparing(SourceRecord::getRecordId)).collect(Collectors.toList());
            sortByRecordId(get);
            context.assertEquals(expected.size(), get.result().getTotalRecords());
            compareSourceRecords(context, expected, get.result().getSourceRecords());
            async.complete();
        });
    });
}
Also used : TestContext(io.vertx.ext.unit.TestContext) Async(io.vertx.ext.unit.Async) DSL(org.jooq.impl.DSL) RecordDaoImpl(org.folio.dao.RecordDaoImpl) RawRecord(org.folio.rest.jaxrs.model.RawRecord) RunWith(org.junit.runner.RunWith) Condition(org.jooq.Condition) ArrayList(java.util.ArrayList) CompositeFuture(io.vertx.core.CompositeFuture) RecordType(org.folio.dao.util.RecordType) RecordsBatchResponse(org.folio.rest.jaxrs.model.RecordsBatchResponse) RecordState(org.folio.rest.jooq.enums.RecordState) RECORDS_LB(org.folio.rest.jooq.Tables.RECORDS_LB) Flowable(io.reactivex.Flowable) IdType(org.folio.dao.util.IdType) ExternalIdsHolder(org.folio.rest.jaxrs.model.ExternalIdsHolder) After(org.junit.After) AsyncResult(io.vertx.core.AsyncResult) Comparator.comparing(java.util.Comparator.comparing) AdditionalInfo(org.folio.rest.jaxrs.model.AdditionalInfo) SortOrder(org.jooq.SortOrder) TestMocks(org.folio.TestMocks) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Before(org.junit.Before) GenericCompositeFuture(org.folio.okapi.common.GenericCompositeFuture) RecordDao(org.folio.dao.RecordDao) DuplicateEventException(org.folio.kafka.exception.DuplicateEventException) Record(org.folio.rest.jaxrs.model.Record) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) Test(org.junit.Test) VertxUnitRunner(io.vertx.ext.unit.junit.VertxUnitRunner) SnapshotDaoUtil(org.folio.dao.util.SnapshotDaoUtil) UUID(java.util.UUID) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) Future(io.vertx.core.Future) ParsedRecordDto(org.folio.rest.jaxrs.model.ParsedRecordDto) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) OffsetDateTime(java.time.OffsetDateTime) ChronoUnit(java.time.temporal.ChronoUnit) State(org.folio.rest.jaxrs.model.Record.State) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) OrderField(org.jooq.OrderField) Assertions(org.junit.jupiter.api.Assertions) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) Async(io.vertx.ext.unit.Async) RecordCollection(org.folio.rest.jaxrs.model.RecordCollection) SourceRecordCollection(org.folio.rest.jaxrs.model.SourceRecordCollection) RawRecord(org.folio.rest.jaxrs.model.RawRecord) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord) Record(org.folio.rest.jaxrs.model.Record) ErrorRecord(org.folio.rest.jaxrs.model.ErrorRecord) ParsedRecord(org.folio.rest.jaxrs.model.ParsedRecord) RecordDaoUtil(org.folio.dao.util.RecordDaoUtil) ParsedRecordDaoUtil(org.folio.dao.util.ParsedRecordDaoUtil) SourceRecord(org.folio.rest.jaxrs.model.SourceRecord)

Aggregations

SourceRecord (org.folio.rest.jaxrs.model.SourceRecord)30 ParsedRecord (org.folio.rest.jaxrs.model.ParsedRecord)22 Async (io.vertx.ext.unit.Async)21 RawRecord (org.folio.rest.jaxrs.model.RawRecord)20 Record (org.folio.rest.jaxrs.model.Record)20 Test (org.junit.Test)20 ErrorRecord (org.folio.rest.jaxrs.model.ErrorRecord)19 ArrayList (java.util.ArrayList)17 AdditionalInfo (org.folio.rest.jaxrs.model.AdditionalInfo)17 ExternalIdsHolder (org.folio.rest.jaxrs.model.ExternalIdsHolder)17 List (java.util.List)16 Objects (java.util.Objects)16 Flowable (io.reactivex.Flowable)14 UUID (java.util.UUID)14 ParsedRecordDaoUtil (org.folio.dao.util.ParsedRecordDaoUtil)14 SnapshotDaoUtil (org.folio.dao.util.SnapshotDaoUtil)14 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)13 TestContext (io.vertx.ext.unit.TestContext)12 VertxUnitRunner (io.vertx.ext.unit.junit.VertxUnitRunner)12 SourceRecordCollection (org.folio.rest.jaxrs.model.SourceRecordCollection)10