add corresponding tests
@@ -38,12 +38,7 @@ import org.openrefine.wikidata.updates.ItemUpdate;
import org.openrefine.wikidata.updates.ItemUpdateBuilder;
import org.testng.annotations.Test;
import org.wikidata.wdtk.datamodel.helpers.Datamodel;
-import org.wikidata.wdtk.datamodel.interfaces.Claim;
-import org.wikidata.wdtk.datamodel.interfaces.ItemIdValue;
-import org.wikidata.wdtk.datamodel.interfaces.Snak;
-import org.wikidata.wdtk.datamodel.interfaces.SnakGroup;
-import org.wikidata.wdtk.datamodel.interfaces.Statement;
-import org.wikidata.wdtk.datamodel.interfaces.StatementRank;
+import org.wikidata.wdtk.datamodel.interfaces.*;
import com.google.refine.browsing.Engine;
import com.google.refine.model.Project;
@@ -139,6 +134,35 @@ public class QuickStatementsExporterTest extends WikidataRefineTest {
assertEquals("Q1377\tP38\tQ865528\tP38\tQ1377\n", export(update));
}
+ /**
+ * issue #2320
+ *
+ * A statement with different references should be duplicated,
+ * but each with a different reference.
+ */
+ @Test
+ public void testReferences()
+ throws IOException {
+ Statement baseStatement = TestingData.generateStatement(qid1, qid2);
+ Statement otherStatement = TestingData.generateStatement(qid2, qid1);
+
+ Snak snak1 = baseStatement.getClaim().getMainSnak();
+ Snak snak2 = otherStatement.getClaim().getMainSnak();
+ SnakGroup group1 = Datamodel.makeSnakGroup(Collections.singletonList(snak1));
+ SnakGroup group2 = Datamodel.makeSnakGroup(Collections.singletonList(snak2));
+ Claim claim = Datamodel.makeClaim(qid1, baseStatement.getClaim().getMainSnak(),
+ Collections.singletonList(group2));
+
+ Reference reference1 = Datamodel.makeReference(Collections.singletonList(group1));
+ Reference reference2 = Datamodel.makeReference(Collections.singletonList(group2));
+
+ Statement statement = Datamodel.makeStatement(claim, Arrays.asList(reference1, reference2), StatementRank.NORMAL, "");
+ ItemUpdate update = new ItemUpdateBuilder(qid1).addStatement(statement).build();
+
+ assertEquals("Q1377\tP38\tQ865528\tP38\tQ1377\tS38\tQ865528\n" +
+ "Q1377\tP38\tQ865528\tP38\tQ1377\tS38\tQ1377\n", export(update));
+ }
+
@Test
public void testNoSchema()
throws IOException {
