0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-30 17:10:48 +01:00
mongodb/jstests/tool/csvimport1.js
2016-05-28 17:55:12 -04:00

71 lines
1.7 KiB
JavaScript

// csvimport1.js
t = new ToolTest("csvimport1");
c = t.startDB("foo");
base = [];
base.push({
a: 1,
b: "this is some text.\nThis text spans multiple lines, and just for fun\ncontains a comma",
"c": "This has leading and trailing whitespace!"
});
base.push({
a: 2,
b: "When someone says something you \"put it in quotes\"",
"c": "I like embedded quotes/slashes\\backslashes"
});
base.push({
a: 3,
b: " This line contains the empty string and has leading and trailing whitespace inside the quotes! ",
"c": ""
});
base.push({a: 4, b: "", "c": "How are empty entries handled?"});
base.push({a: 5, b: "\"\"", c: "\"This string is in quotes and contains empty quotes (\"\")\""});
base.push({a: "a", b: "b", c: "c"});
assert.eq(0, c.count(), "setup");
t.runTool("import",
"--file",
"jstests/tool/data/csvimport1.csv",
"-d",
t.baseName,
"-c",
"foo",
"--type",
"csv",
"-f",
"a,b,c");
assert.soon(base.length + " == c.count()", "after import 1 ");
a = c.find().sort({a: 1}).toArray();
for (i = 0; i < base.length; i++) {
delete a[i]._id;
assert.docEq(base[i], a[i], "csv parse " + i);
}
c.drop();
assert.eq(0, c.count(), "after drop");
t.runTool("import",
"--file",
"jstests/tool/data/csvimport1.csv",
"-d",
t.baseName,
"-c",
"foo",
"--type",
"csv",
"--headerline");
assert.soon("c.findOne()", "no data after sleep");
assert.eq(base.length - 1, c.count(), "after import 2");
x = c.find().sort({a: 1}).toArray();
for (i = 0; i < base.length - 1; i++) {
delete x[i]._id;
assert.docEq(base[i], x[i], "csv parse with headerline " + i);
}
t.stop();