1. 1var sqlite3 = require('..');
2. 1var assert = require('assert');
3. 1
4. 1describe('map', function() {
5. 1 it('test Database#map() with two columns', function(done) {
6. 1 var count = 10;
7. 1 var inserted = 0;
8. 1
9. 1 var db = new sqlite3.Database(':memory:');
10. 1 db.serialize(function() {
11. 1 db.run("CREATE TABLE foo (id INT, value TEXT)");
12. 1
13. 1 var stmt = db.prepare("INSERT INTO foo VALUES(?, ?)");
14. 5 for (var i = 5; i < count; i++) {
15. 5 stmt.run(i, 'Value for ' + i, function(err) {
16. 0 if (err) throw err;
17. 5 inserted++;
18. 5 });
19. 5 }
20. 1 stmt.finalize();
21. 1
22. 1 db.map("SELECT * FROM foo", function(err, map) {
23. 0 if (err) throw err;
24. 1 assert.deepEqual(map, { 5: 'Value for 5', 6: 'Value for 6', 7: 'Value for 7', 8: 'Value for 8', 9: 'Value for 9' });
25. 1 assert.equal(inserted, 5);
26. 1 done();
27. 1 });
28. 1 });
29. 1 });
30. 1
31. 1 it('test Database#map() with three columns', function(done) {
32. 1 var db = new sqlite3.Database(':memory:');
33. 1
34. 1 var count = 10;
35. 1 var inserted = 0;
36. 1
37. 1 db.serialize(function() {
38. 1 db.run("CREATE TABLE foo (id INT, value TEXT, other TEXT)");
39. 1
40. 1 var stmt = db.prepare("INSERT INTO foo VALUES(?, ?, ?)");
41. 5 for (var i = 5; i < count; i++) {
42. 5 stmt.run(i, 'Value for ' + i, null, function(err) {
43. 0 if (err) throw err;
44. 5 inserted++;
45. 5 });
46. 5 }
47. 1 stmt.finalize();
48. 1
49. 1 db.map("SELECT * FROM foo", function(err, map) {
50. 0 if (err) throw err;
51. 1 assert.deepEqual(map, {
52. 1 5: { id: 5, value: 'Value for 5', other: null },
53. 1 6: { id: 6, value: 'Value for 6', other: null },
54. 1 7: { id: 7, value: 'Value for 7', other: null },
55. 1 8: { id: 8, value: 'Value for 8', other: null },
56. 1 9: { id: 9, value: 'Value for 9', other: null }
57. 1 });
58. 1 assert.equal(inserted, 5);
59. 1 done();
60. 1 });
61. 1 });
62. 1 });
63. 1});
64. 1