package org.gradoop.flink.io.impl.tlf;
import org.gradoop.flink.io.api.DataSource;
import org.gradoop.flink.model.GradoopFlinkTestBase;
import org.gradoop.flink.model.impl.GraphCollection;
import org.gradoop.flink.model.impl.GraphTransactions;
import org.gradoop.flink.util.FlinkAsciiGraphLoader;
import org.junit.Test;
public class TLFDataSourceTest extends GradoopFlinkTestBase {
/**
* Test method for
*
* {@link TLFDataSource#getGraphTransactions()}
* @throws Exception
*/
@Test
public void testRead() throws Exception {
String tlfFile = TLFDataSinkTest.class
.getResource("/data/tlf/io_test_string.tlf").getFile();
// create datasource
DataSource dataSource = new TLFDataSource(tlfFile, config);
//get transactions
GraphTransactions transactions = dataSource.getGraphTransactions();
String asciiGraphs = "" +
"g1[(v1:A)-[:a]->(v2:B)-[:b]->(v1)]" +
"g2[(v1:A)-[:a]->(v2:B)<-[:b]-(v1)]";
FlinkAsciiGraphLoader loader = getLoaderFromString(asciiGraphs);
collectAndAssertTrue(
loader.getGraphCollectionByVariables("g1","g2").equalsByGraphData(
GraphCollection.fromTransactions(transactions)
)
);
}
/**
* Test method for
*
* {@link TLFDataSource#getGraphTransactions()}
* @throws Exception
*/
@Test
public void testReadWithDictionary() throws Exception {
String tlfFile = TLFDataSinkTest.class
.getResource("/data/tlf/io_test.tlf").getFile();
String tlfVertexDictionaryFile = TLFDataSinkTest.class
.getResource("/data/tlf/io_test_vertex_dictionary.tlf").getFile();
String tlfEdgeDictionaryFile = TLFDataSinkTest.class
.getResource("/data/tlf/io_test_edge_dictionary.tlf").getFile();
// create datasource
DataSource dataSource = new TLFDataSource(tlfFile, tlfVertexDictionaryFile,
tlfEdgeDictionaryFile, config);
//get transactions
GraphTransactions transactions = dataSource.getGraphTransactions();
String asciiGraphs = "" +
"g1[(v1:A)-[:a]->(v2:B)-[:b]->(v1)]" +
"g2[(v1:A)-[:a]->(v2:B)<-[:b]-(v1)]";
FlinkAsciiGraphLoader loader = getLoaderFromString(asciiGraphs);
collectAndAssertTrue(
loader.getGraphCollectionByVariables("g1","g2").equalsByGraphData(
GraphCollection.fromTransactions(transactions)
)
);
}
}