dnet-hadoop/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/raw/MigrateMongoMdstoresApplica...

70 lines
2.2 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_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));
}
}