Skip to content

Commit

Permalink
fixes ordering in bulk import
Browse files Browse the repository at this point in the history
  • Loading branch information
conker84 committed May 30, 2019
1 parent e95febc commit d665e4c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
9 changes: 7 additions & 2 deletions src/main/java/apoc/export/csv/CsvFormat.java
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,10 @@ private Set<String> generateHeaderNode(Map.Entry<Iterable<Label>, List<Node>> en
headerNode.add("id:ID");
Map<String,Class> keyTypes = new LinkedHashMap<>();
entrySet.getValue().forEach(node -> updateKeyTypes(keyTypes, node));
headerNode.addAll(keyTypes.entrySet().stream().map(stringClassEntry -> formatHeader(stringClassEntry)).collect(Collectors.toCollection(LinkedHashSet::new)));
headerNode.addAll(keyTypes.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.map(stringClassEntry -> formatHeader(stringClassEntry))
.collect(Collectors.toCollection(LinkedHashSet::new)));
headerNode.add(":LABEL");
return headerNode;
}
Expand All @@ -213,7 +216,9 @@ private Set<String> generateHeaderRelationship(Map.Entry<RelationshipType, List<
Set<String> headerNode = new LinkedHashSet<>();
Map<String,Class> keyTypes = new LinkedHashMap<>();
entrySet.getValue().forEach(relationship -> updateKeyTypes(keyTypes, relationship));
headerNode.addAll(keyTypes.entrySet().stream().map(stringClassEntry -> formatHeader(stringClassEntry)).collect(Collectors.toCollection(LinkedHashSet::new)));
headerNode.addAll(keyTypes.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.map(stringClassEntry -> formatHeader(stringClassEntry)).collect(Collectors.toCollection(LinkedHashSet::new)));
headerNode.add(":START_ID");
headerNode.add(":END_ID");
headerNode.add(":TYPE");
Expand Down
18 changes: 9 additions & 9 deletions src/test/java/apoc/export/csv/ExportCsvNeo4jAdminTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,22 @@
public class ExportCsvNeo4jAdminTest {

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_HEADER_TYPES_NODE = String
.format("id:ID;born_2D:point;born_3D:point;localtime:localtime;time:time;dateTime:datetime;localDateTime:localdatetime;date:date;duration:duration;:LABEL%n");
.format("id:ID;born_2D:point;born_3D:point;date:date;dateTime:datetime;duration:duration;localDateTime:localdatetime;localtime:localtime;time:time;:LABEL%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_TYPES_NODE = String
.format("3;{crs:cartesian,x:2.3,y:4.5};{crs:wgs-84-3d,latitude:56.7,longitude:12.78,height:100.0};12:50:35.556;12:50:35.556+01:00;2018-10-30T12:50:35.556+01:00;2018-10-30T19:32:24;2018-10-30;P5M1DT12H;Types%n");
.format("3;{crs:cartesian,x:2.3,y:4.5};{crs:wgs-84-3d,latitude:56.7,longitude:12.78,height:100.0};2018-10-30;2018-10-30T12:50:35.556+01:00;P5M1DT12H;2018-10-30T19:32:24;12:50:35.556;12:50:35.556+01:00;Types%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_HEADER_NODE_ADDRESS = String
.format("id:ID;name;street;:LABEL%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_HEADER_NODE_ADDRESS1 = String
.format("id:ID;street;name;city;:LABEL%n");
.format("id:ID;city;name;street;:LABEL%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_HEADER_NODE_USER = String
.format("id:ID;name;age:long;:LABEL%n");
.format("id:ID;age:long;name;:LABEL%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_HEADER_NODE_USER1 = String
.format("id:ID;name;age:long;male:boolean;kids;:LABEL%n");
.format("id:ID;age:long;kids;male:boolean;name;:LABEL%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_HEADER_RELATIONSHIP_KNOWS = String
.format(":START_ID;:END_ID;:TYPE%n");
Expand All @@ -52,14 +52,14 @@ public class ExportCsvNeo4jAdminTest {
"22;;via Benni;Address%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_NODE_ADDRESS1 = String
.format("20;Via Garibaldi, 7;Andrea;Milano;\"Address1;Address\"%n");
.format("20;Milano;Andrea;Via Garibaldi, 7;\"Address1;Address\"%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_NODE_USER = String
.format("1;bar;42;User%n" +
"2;;12;User%n");
.format("1;42;bar;User%n" +
"2;12;;User%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_NODE_USER1 = String
.format("0;foo;42;true;[a,b,c];\"User1;User\"%n");
.format("0;42;[a,b,c];true;foo;\"User1;User\"%n");

private static final String EXPECTED_NEO4J_ADMIN_IMPORT_RELATIONSHIP_KNOWS = String
.format("0;1;KNOWS%n");
Expand Down

0 comments on commit d665e4c

Please sign in to comment.