mongotiles
Version:
mongotiles is a tilelive backend plug-in for MongoDB GridFS
54 lines (43 loc) • 1.45 kB
text/coffeescript
# Unit tests
assert = require 'assert'
mongo = require 'mongodb'
tilelive = require 'tilelive'
mbtiles = require('mbtiles').registerProtocols(tilelive)
mongotiles = require('../lib/index.js').registerProtocols(tilelive)
describe 'Copy test', () ->
source = sink = null
db = null
collection = null
before (done) ->
server = new mongo.Server '127.0.0.1', 27017
db = new mongo.Db 'mongotiles_test', server, {w:0}
db.open () ->
db.collection "testcoll.files", { w: 0 }, (err, coll) =>
collection = coll
done(err)
it 'should open the mbtiles source', (done) ->
tilelive.load 'mbtiles://' + __dirname + '/test_tiles.mbtiles', (err, s) ->
source = s
done err
it 'should open the mongotiles sink', (done) ->
tilelive.load 'mongotiles://127.0.0.1:27017/mongotiles_test/testcoll', (err, s) ->
sink = s
done err
it 'should copy 342 files', (done) ->
this.timeout 15000
readStream = tilelive.createReadStream source,
type: 'scanline'
bbox: [ -180, -84, 180, 84 ]
minzoom: 0
maxzoom: 4
readStream.on 'error', (e) -> throw e
writeStream = tilelive.createWriteStream sink
writeStream.on 'error', (e) -> throw e
writeStream.on 'stop', () ->
collection.count (err, c) ->
assert.equal c, 342
done err
readStream.pipe(writeStream)
after (done) ->
db.dropDatabase () ->
db.close true, done