mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-30 17:10:48 +01:00
71 lines
1.7 KiB
JavaScript
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();
|