mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
904f6c7ea8
Closes #803 Signed-off-by: Benety Goh <benety@mongodb.com>
41 lines
1.6 KiB
JavaScript
41 lines
1.6 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()
|