diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index b04d93d43dcda10ef5266c97184fa063990fbdff..b2758b0a6abe55329d30fb9658e0547e5fcb150d 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -1,3 +1,5 @@
+require('babel-core/register');
+
 const fs = require('fs');
 
 const gulp = require('gulp');
@@ -74,11 +76,15 @@ gulp.task('test', ['pre-test'], () => {
     gulp.src('test/test.js', {read: false})
     .pipe(mocha())
     .pipe(istanbul.writeReports())
-    .pipe(istanbul.enforceThresholds({ thresholds: { global: 75 } }))
-    .once('error', () => {
+    .pipe(istanbul.enforceThresholds({
+        thresholds: {
+            global: 80 
+        }
+    }))
+    .on('error', () => {
         process.exit(1);
     })
-    .once('end', () => {
+    .on('end', () => {
         process.exit();
     });
 });
diff --git a/package.json b/package.json
index d477028f1cc2935964241cde6376b3fd33c40cfc..acc29cd2e3d6ff9a605fde13cfaa6774243b6307 100644
--- a/package.json
+++ b/package.json
@@ -39,6 +39,7 @@
     "babel-register": "^6.14.0",
     "babelify": "^7.3.0",
     "browserify": "^13.1.0",
+    "chai-xml": "^0.3.1",
     "docdash": "^0.4.0",
     "eslint": "^3.3.1",
     "eslint-config-airbnb": "^10.0.1",
diff --git a/src/libs/routes/enrollment.js b/src/libs/routes/enrollment.js
index b6f434ce0d47c873995975287765fe3bd3f890ff..9fe6e903bdbe9bc10b89181866a920792b832533 100644
--- a/src/libs/routes/enrollment.js
+++ b/src/libs/routes/enrollment.js
@@ -48,11 +48,6 @@ enrollmentApp.get('/adm_dependency', (req, res, next) => {
     next();
 }, query, response('adm_dependency'));
 
-enrollmentApp.get('/data', (req, res, next) => {
-    req.sql = squel.select().from('turmas');
-    next();
-}, query, response('data'));
-
 // Parse the filters and dimensions parameter in the query
 enrollmentApp.use('/', parseParams('filter', [
     'min_year',
diff --git a/src/server.js b/src/server.js
index f18adf4916a38c192e4ab986a5fd17c5254fe206..0eef8dfa5fb4764522f0b1c0be02da239603d347 100644
--- a/src/server.js
+++ b/src/server.js
@@ -18,3 +18,6 @@ app.set('ip', process.env.IP || config.get('ip') || '127.0.0.1');
 const server = app.listen(app.get('port'), () => {
     log.info(`Express server listening on port ${server.address().port}`);
 });
+
+// For testing
+module.exports = server;
diff --git a/src/test/test.js b/src/test/test.js
index a7e17edac1b67ebeb0a9b1f3f18951f54e78b6f6..066b7b77c9651dbde50b97cd6ab730c78053d27b 100644
--- a/src/test/test.js
+++ b/src/test/test.js
@@ -1,9 +1,15 @@
+process.env.NODE_ENV = 'test';
+
 const chai = require('chai');
 
 const dirtyChai = require('dirty-chai');
 
 chai.use(dirtyChai);
 
+const chaiXml = require('chai-xml');
+
+chai.use(chaiXml);
+
 const chaiHttp = require('chai-http');
 
 const assert = chai.assert;
@@ -32,6 +38,48 @@ describe('API is running', () => {
 });
 
 describe('request enrollments', () => {
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment/year_range')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('start_year');
+                res.body.result[0].should.have.property('end_year');
+                done();
+            });
+    });
+
+    it('should list the education level', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment/education_level')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('id');
+                res.body.result[0].should.have.property('name');
+                done();
+            });
+    });
+
+    it('should list the administrative dependencies', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment/adm_dependency ')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('id');
+                res.body.result[0].should.have.property('name');
+                done();
+            });
+    });
+
     it('should list enrollments', (done) => {
         chai.request(server)
             .get('/api/v1/enrollment')
@@ -45,6 +93,84 @@ describe('request enrollments', () => {
                 done();
             });
     });
+
+    it('should list enrollments with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment?filter=min_year:2010,state:41')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list enrollments with invalid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment?filter=foo:2010,bar:41')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list enrollments with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment?dims=region,state,adm_dependency_id,location_id&filter=min_year:2014,region:4')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('region_name');
+                res.body.result[0].should.have.property('state_name');
+                res.body.result[0].should.have.property('adm_dependency_name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list enrollments with invalid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment?dims=foo,bar')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list enrollments with valid dimensions and filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment?dims=region,state,education_level_id,school&filter=min_year:2013,max_year:2014,city:3287')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('region_name');
+                res.body.result[0].should.have.property('state_name');
+                res.body.result[0].should.have.property('school_name');
+                res.body.result[0].should.have.property('education_level');
+                res.body.result[0].should.have.property('total');
+                res.body.result[0].should.have.property('year');
+                done();
+            });
+    });
+
+
 });
 
 describe('request regions', () => {
@@ -239,3 +365,34 @@ describe('request schools', () => {
             })
     })
 });
+
+describe('test response', () => {
+    it('should list all regions in json', (done) => {
+        chai.request(server)
+            .get('/api/v1/region')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                done();
+            });
+    });
+
+    it('should list all regions in xml', (done) => {
+        chai.request(server)
+            .get('/api/v1/region?format=xml')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.xml;
+                done();
+            });
+    });
+
+    it('should list all regions in csv', (done) => {
+        chai.request(server)
+            .get('/api/v1/region?format=csv')
+            .end((err, res) => {
+                res.should.have.status(200);
+                done();
+            });
+    });
+});