package org.gradoop.flink.io.impl.csv; import org.gradoop.flink.io.api.DataSink; import org.gradoop.flink.io.api.DataSource; import org.gradoop.flink.io.impl.edgelist.VertexLabeledEdgeListDataSourceTest; import org.gradoop.flink.model.GradoopFlinkTestBase; import org.gradoop.flink.model.impl.LogicalGraph; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; public class CSVDataSinkTest extends GradoopFlinkTestBase { @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); @Test public void testWrite() throws Exception { String tmpPath = temporaryFolder.getRoot().getPath(); LogicalGraph input = getSocialNetworkLoader() .getDatabase() .getDatabaseGraph(true); DataSink csvDataSink = new CSVDataSink(tmpPath, getConfig()); csvDataSink.write(input, true); getExecutionEnvironment().execute(); DataSource csvDataSource = new CSVDataSource(tmpPath, getConfig()); LogicalGraph output = csvDataSource.getLogicalGraph(); collectAndAssertTrue(input.equalsByElementData(output)); } @Test public void testWriteWithExistingMetaData() throws Exception { String tmpPath = temporaryFolder.getRoot().getPath(); String csvPath = VertexLabeledEdgeListDataSourceTest.class .getResource("/data/csv/input") .getFile(); String gdlPath = CSVDataSourceTest.class .getResource("/data/csv/expected/expected.gdl") .getFile(); LogicalGraph input = getLoaderFromFile(gdlPath).getLogicalGraphByVariable("expected"); DataSink csvDataSink = new CSVDataSink(tmpPath, csvPath + "/metadata.csv", getConfig()); csvDataSink.write(input, true); getExecutionEnvironment().execute(); DataSource csvDataSource = new CSVDataSource(tmpPath, getConfig()); LogicalGraph output = csvDataSource.getLogicalGraph(); collectAndAssertTrue(input.equalsByElementData(output)); } }