-
Notifications
You must be signed in to change notification settings - Fork 165
/
layers.test.js
40 lines (36 loc) · 1.42 KB
/
layers.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var mapnik = require('mapnik');
var assert = require('assert');
var fs = require('fs');
var path = require('path');
describe('mapnik.Layer ', function() {
it('should throw with invalid usage', function() {
// no 'new' keyword
assert.throws(function() { mapnik.Layer('foo'); });
// invalid args
assert.throws(function() { new mapnik.Layer(); });
assert.throws(function() { new mapnik.Layer(1); });
assert.throws(function() { new mapnik.Layer('a', 'b', 'c'); });
assert.throws(function() { new mapnik.Layer(new mapnik.Layer('foo')); });
});
it('should initialize properly', function() {
var layer = new mapnik.Layer('foo', '+init=epsg:4326');
assert.equal(layer.name, 'foo');
assert.equal(layer.srs, '+init=epsg:4326');
assert.deepEqual(layer.styles, []);
// will be empty/undefined
assert.ok(!layer.datasource);
var options = {
type: 'shape',
file: './examples/data/world_merc.shp'
};
var ds = new mapnik.Datasource(options);
layer.datasource = ds;
assert.ok(layer.datasource instanceof mapnik.Datasource);
// json representation
var meta = layer.describe();
assert.equal(meta.name, 'foo');
assert.equal(meta.srs, '+init=epsg:4326');
assert.deepEqual(meta.styles, []);
assert.deepEqual(meta.datasource, options);
});
});