79 lines
2.5 KiB
Java
79 lines
2.5 KiB
Java
|
|
package eu.dnetlib.dhp.oa.graph.raw;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.bson.Document;
|
|
import org.junit.jupiter.api.Assertions;
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
|
import org.junit.jupiter.api.io.TempDir;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import com.mongodb.client.MongoDatabase;
|
|
|
|
import eu.dnetlib.dhp.common.MdstoreClient;
|
|
import io.fares.junit.mongodb.MongoExtension;
|
|
import io.fares.junit.mongodb.MongoForAllExtension;
|
|
|
|
public class MigrateMongoMdstoresApplicationTest {
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(MigrateMongoMdstoresApplicationTest.class);
|
|
|
|
public static final String COLL_NAME = "9eed8a4d-bb41-47c3-987f-9d06aee0dec0::1453898911558";
|
|
|
|
@RegisterExtension
|
|
public static MongoForAllExtension mongo = MongoForAllExtension.defaultMongo();
|
|
|
|
@BeforeAll
|
|
public static void setUp() throws IOException {
|
|
MongoDatabase db = mongo.getMongoClient().getDatabase(MongoExtension.UNIT_TEST_DB);
|
|
|
|
db.getCollection(COLL_NAME).insertOne(Document.parse(read("mdstore_record.json")));
|
|
db.getCollection("metadata").insertOne(Document.parse(read("mdstore_metadata.json")));
|
|
db.getCollection("metadataManager").insertOne(Document.parse(read("mdstore_metadataManager.json")));
|
|
}
|
|
|
|
@Test
|
|
public void test_MdstoreClient() throws IOException {
|
|
try (MdstoreClient client = new MdstoreClient(mongo.getMongoClient(), MongoExtension.UNIT_TEST_DB)) {
|
|
for (String xml : client.listRecords(COLL_NAME)) {
|
|
Assertions.assertTrue(StringUtils.isNotBlank(xml));
|
|
}
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void test_MigrateMongoMdstoresApplication(@TempDir Path tmpPath) throws Exception {
|
|
|
|
final String seqFile = "test_records.seq";
|
|
Path outputPath = tmpPath.resolve(seqFile);
|
|
|
|
try (MigrateMongoMdstoresApplication app = new MigrateMongoMdstoresApplication(
|
|
outputPath.toString(),
|
|
mongo.getMongoClient(),
|
|
MongoExtension.UNIT_TEST_DB)) {
|
|
app.execute("oai_dc", "store", "native");
|
|
}
|
|
|
|
Assertions
|
|
.assertTrue(
|
|
Files
|
|
.list(tmpPath)
|
|
.filter(f -> seqFile.contains(f.getFileName().toString()))
|
|
.findFirst()
|
|
.isPresent());
|
|
}
|
|
|
|
private static String read(String filename) throws IOException {
|
|
return IOUtils.toString(MigrateMongoMdstoresApplicationTest.class.getResourceAsStream(filename));
|
|
}
|
|
|
|
}
|