Skip to content

Commit 316ea29

Browse files
author
unknown
committed
Implemented all endpoint unit tests and docker startup script.
1 parent c73fa3d commit 316ea29

File tree

291 files changed

+250
-291
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

291 files changed

+250
-291
lines changed

NodejsBinding/Dockerfile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,16 @@ RUN apt-get -y update && apt-get install -y git && apt-get install -y vim && apt
77
#install necesary npm packages
88
RUN npm install -g mocha
99

10+
#move mock data files
11+
1012
#set the working directory
11-
WORKDIR /source
13+
WORKDIR /source/NodejsBinding
14+
15+
# copy move files script
16+
COPY moveFiles.sh /source/NodejsBinding/moveFiles.sh
17+
RUN chmod 755 /source/NodejsBinding/moveFiles.sh
1218

13-
CMD /bin/bash
19+
CMD ./moveFiles.sh; /bin/bash
1420

1521
VOLUME ["/source"]
22+

NodejsBinding/moveFiles.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
# create a folder for the .status files and move them
4+
cd ../mock-data
5+
mkdir status
6+
mkdir other
7+
cd response
8+
find . -name "*.status" -exec mv {} ../status \;
9+
find . -name "info.json" -exec mv {} ../other \;
10+
find . -name "ping.json" -exec mv {} ../other \;
11+
find . -name "checkVersion.json" -exec mv {} ../other \;
12+
find . -name "retry-fail.json" -exec mv {} ../other \;
13+
find . -name "bad_info.json" -exec mv {} ../other \;
14+
cd ../../NodejsBinding/test/tests
15+
mocha unittests.js

NodejsBinding/test/checkVersion.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,14 @@ checkVersion.prototype.check = function(userKey, serviceURL, callback) {
8686

8787
if (res.statusCode === 200) {
8888
return callback(err, JSON.parse(result.toString()));
89+
}else if(res.statusCode != 200){
90+
return callback(err, JSON.parse(result.toString()));
8991
}
9092
});
9193
});
9294

9395
req.on("error", function(e) {
96+
console.log(e)
9497
return callback(e);
9598
});
9699

NodejsBinding/test/info.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ info.prototype.getResults = function(parameters, userKey, serviceURL, callback)
9393

9494
// error catching for request
9595
req.on("error", function(e) {
96+
console.log(e)
9697
return callback(e);
9798
});
9899

NodejsBinding/test/tests/unittests.js

Lines changed: 218 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ var entities = require("../entities");
1515
var morphology = require("../morphology");
1616
var tokens = require("../tokens");
1717
var sentences = require("../sentences");
18+
var checkVersion = require("../checkVersion");
19+
var info = require("../info");
20+
var ping = require("../ping");
1821
var paramObj = require("../parameters");
1922
//nock.recorder.rec();
2023

@@ -321,7 +324,7 @@ function entitiesLinkedTests(index, done) {
321324
"encodedQueryParams": true
322325
})
323326
.persist()
324-
.post('/rest/v1/entities', JSON.parse(request.toString()))
327+
.post('/rest/v1/entities/linked', JSON.parse(request.toString()))
325328
.reply(status, response);
326329

327330
request = JSON.parse(request);
@@ -331,14 +334,15 @@ function entitiesLinkedTests(index, done) {
331334
}
332335
param.unit = request.unit;
333336
param.language = request.language;
337+
param.linked = true;
334338

335-
entity.getResults(param, '1234567890', 'https://api.rosette.com/rest/v1/', function(err, res) {
339+
entity.getResults(param, '7323bf299f9f593cb1d7e267e5bdc34a', 'https://api.rosette.com/rest/v1/', function(err, res) {
336340
index++;
337341
console.log(index);
338342
//console.log(JSON.stringify(expected, null, 1));
339343
//console.log(JSON.stringify(res, null, 1))
340344
//console.log(expected)
341-
console.log(res)
345+
//console.log(res)
342346
//assert.deepEqual(expected, res);
343347
assert.deepEqual(JSON.stringify(expected, null, 1), JSON.stringify(res, null, 1));
344348
setTimeout(function() {
@@ -513,7 +517,7 @@ function translatedNameTests(index, done) {
513517
//console.log(JSON.stringify(expected, null, 1));
514518
//console.log(JSON.stringify(res, null, 1))
515519
//console.log(expected)
516-
console.log(res)
520+
//console.log(res)
517521
//assert.deepEqual(expected, res);
518522
assert.deepEqual(JSON.stringify(expected, null, 1), JSON.stringify(res, null, 1));
519523
setTimeout(function() {
@@ -532,6 +536,132 @@ function translatedNameTests(index, done) {
532536

533537
}
534538

539+
// recursion function
540+
function sentencesTests(index, done) {
541+
var substring = "sentences";
542+
543+
if (index < requestArray.length) {
544+
if (requestArray[index].indexOf(substring) > -1) {
545+
546+
var sentence = new sentences();
547+
var param = new paramObj();
548+
var request = fs.readFileSync('../../../mock-data/request/' + requestArray[index]);
549+
var status = fs.readFileSync('../../../mock-data/status/' + statusArray[index]);
550+
var response = fs.readFileSync('../../../mock-data/response/' + responseArray[index]);
551+
var expected = JSON.parse(response.toString());
552+
553+
// nock interceptor for endpoint
554+
nock('https://api.rosette.com', {
555+
"encodedQueryParams": true
556+
})
557+
.persist()
558+
.post('/rest/v1/sentences', JSON.parse(request.toString()))
559+
.reply(status, response);
560+
561+
request = JSON.parse(request);
562+
param.content = request.content;
563+
if (request.contentUri != undefined) {
564+
param.contentUri = request.contentUri;
565+
}
566+
param.unit = request.unit;
567+
param.language = request.language;
568+
param.entityType = request.entityType;
569+
param.name = request.name;
570+
param.sourceLanguageOfOrigin = request.sourceLanguageOfOrigin;
571+
param.sourceLanguageOfUse = request.sourceLanguageOfUse;
572+
param.sourceScript = request.sourceScript;
573+
param.targetLanguage = request.targetLanguage;
574+
param.targetScheme = request.targetScheme;
575+
param.targetScript = request.targetScript;
576+
577+
sentence.getResults(param, '1234567890', 'https://api.rosette.com/rest/v1/', function(err, res) {
578+
index++;
579+
console.log(index);
580+
//console.log(JSON.stringify(expected, null, 1));
581+
//console.log(JSON.stringify(res, null, 1))
582+
//console.log(expected)
583+
//console.log(res)
584+
//assert.deepEqual(expected, res);
585+
assert.deepEqual(JSON.stringify(expected, null, 1), JSON.stringify(res, null, 1));
586+
setTimeout(function() {
587+
return sentencesTests(index, done);
588+
}, 700);
589+
});
590+
591+
} else {
592+
index++;
593+
return sentencesTests(index, done);
594+
}
595+
} else {
596+
console.log("done");
597+
done();
598+
}
599+
600+
}
601+
602+
// recursion function
603+
function tokensTests(index, done) {
604+
var substring = "tokens";
605+
606+
if (index < requestArray.length) {
607+
if (requestArray[index].indexOf(substring) > -1) {
608+
609+
var token = new tokens();
610+
var param = new paramObj();
611+
var request = fs.readFileSync('../../../mock-data/request/' + requestArray[index]);
612+
var status = fs.readFileSync('../../../mock-data/status/' + statusArray[index]);
613+
var response = fs.readFileSync('../../../mock-data/response/' + responseArray[index]);
614+
var expected = JSON.parse(response.toString());
615+
616+
// nock interceptor for endpoint
617+
nock('https://api.rosette.com', {
618+
"encodedQueryParams": true
619+
})
620+
.persist()
621+
.post('/rest/v1/tokens', JSON.parse(request.toString()))
622+
.reply(status, response);
623+
624+
request = JSON.parse(request);
625+
param.content = request.content;
626+
if (request.contentUri != undefined) {
627+
param.contentUri = request.contentUri;
628+
}
629+
param.unit = request.unit;
630+
param.language = request.language;
631+
param.entityType = request.entityType;
632+
param.name = request.name;
633+
param.sourceLanguageOfOrigin = request.sourceLanguageOfOrigin;
634+
param.sourceLanguageOfUse = request.sourceLanguageOfUse;
635+
param.sourceScript = request.sourceScript;
636+
param.targetLanguage = request.targetLanguage;
637+
param.targetScheme = request.targetScheme;
638+
param.targetScript = request.targetScript;
639+
640+
token.getResults(param, '1234567890', 'https://api.rosette.com/rest/v1/', function(err, res) {
641+
index++;
642+
console.log(index);
643+
//console.log(JSON.stringify(expected, null, 1));
644+
//console.log(JSON.stringify(res, null, 1))
645+
//console.log(expected)
646+
//console.log(res)
647+
//assert.deepEqual(expected, res);
648+
assert.deepEqual(JSON.stringify(expected, null, 1), JSON.stringify(res, null, 1));
649+
setTimeout(function() {
650+
return tokensTests(index, done);
651+
}, 700);
652+
});
653+
654+
} else {
655+
index++;
656+
return tokensTests(index, done);
657+
}
658+
} else {
659+
console.log("done");
660+
done();
661+
}
662+
663+
}
664+
535665

536666
describe('Rosette API language endpoint', function() {
537667
this.timeout(150000);
@@ -613,4 +743,88 @@ describe('Rosette API translated name endpoint', function() {
613743
done();
614744
});
615745
});
746+
});
747+
748+
describe('Rosette API check version endpoint', function() {
749+
this.timeout(150000);
750+
it('should return a response', function(done) {
751+
var c = new checkVersion();
752+
var status = fs.readFileSync('../../../mock-data/status/' + 'checkVersion.status');
753+
var response = fs.readFileSync('../../../mock-data/other/' + 'checkVersion.json');
754+
var expected = JSON.parse(response.toString());
755+
756+
// nock interceptor for endpoint
757+
nock('https://api.rosette.com', {"encodedQueryParams": true })
758+
.persist()
759+
.post('/rest/v1/info')
760+
.query({"clientVersion":"0.8"})
761+
.reply(status, response);
762+
763+
c.check('1234567890', 'https://api.rosette.com/rest/v1/', function(err, res) {
764+
assert.deepEqual(JSON.stringify(expected, null, 1), JSON.stringify(res, null, 1));
765+
setTimeout(function(){done();}, 300)
766+
});
767+
});
768+
});
769+
770+
describe('Rosette API info endpoint', function() {
771+
this.timeout(150000);
772+
it('should return a response', function(done) {
773+
var i = new info();
774+
var param = new paramObj();
775+
var status = fs.readFileSync('../../../mock-data/status/' + 'info.status');
776+
var response = fs.readFileSync('../../../mock-data/other/' + 'info.json');
777+
var expected = JSON.parse(response.toString());
778+
779+
// nock interceptor for endpoint
780+
nock('https://api.rosette.com', {"encodedQueryParams": true })
781+
.persist()
782+
.get('/rest/v1/info')
783+
.reply(status, response);
784+
785+
i.getResults(param, '7323bf299f9f593cb1d7e267e5bdc34a', 'https://api.rosette.com/rest/v1/', function(err, res) {
786+
assert.deepEqual(JSON.stringify(expected, null, 1), JSON.stringify(res, null, 1));
787+
setTimeout(function(){done();}, 300)
788+
});
789+
});
790+
});
791+
792+
describe('Rosette API ping endpoint', function() {
793+
this.timeout(150000);
794+
it('should return a response', function(done) {
795+
var p = new ping();
796+
var param = new paramObj();
797+
var status = fs.readFileSync('../../../mock-data/status/' + 'ping.status');
798+
var response = fs.readFileSync('../../../mock-data/other/' + 'ping.json');
799+
var expected = JSON.parse(response.toString());
800+
801+
// nock interceptor for endpoint
802+
nock('https://api.rosette.com', {"encodedQueryParams": true })
803+
.persist()
804+
.get('/rest/v1/ping')
805+
.reply(status, response);
806+
807+
p.getResults(param, '7323bf299f9f593cb1d7e267e5bdc34a', 'https://api.rosette.com/rest/v1/', function(err, res) {
808+
assert.deepEqual(JSON.stringify(expected, null, 1), JSON.stringify(res, null, 1));
809+
setTimeout(function(){done();}, 300)
810+
});
811+
});
812+
});
813+
814+
describe('Rosette API sentences endpoint', function() {
815+
this.timeout(150000);
816+
it('should make a request and return a response', function(done) {
817+
sentencesTests(0, function() {
818+
done();
819+
});
820+
});
821+
});
822+
823+
describe('Rosette API tokens endpoint', function() {
824+
this.timeout(150000);
825+
it('should make a request and return a response', function(done) {
826+
tokensTests(0, function() {
827+
done();
828+
});
829+
});
616830
});

mock-data

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
"grunt-istanbul": "^0.6.1",
4646
"grunt-jsdoc": "^1.0.0",
4747
"grunt-jslint": "^1.1.14",
48-
"nock": "^2.9.1"
48+
"nock": "^2.9.1",
49+
"mocha": "2.4.5",
50+
"chai": "3.5.0"
4951
}
5052
}

tests/mock-data/response/ara-doc-entities.status renamed to status

File renamed without changes.

tests/mock-data/response/ara-doc-categories.status

Lines changed: 0 additions & 1 deletion
This file was deleted.

tests/mock-data/response/ara-doc-entities_linked.status

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)