diff --git a/test/dataset/in/data/URL.json b/test/dataset/in/data/URL.json
new file mode 100644
index 0000000..87bbfdb
--- /dev/null
+++ b/test/dataset/in/data/URL.json
@@ -0,0 +1,35 @@
+{
+ "addParameters": [{
+ "label": "Devrait créer l'url suivante : http://www.test.tu/test",
+ "arguments": {
+ "url": "http://www.test.tu/test",
+ "parameters": {}
+ },
+ "result": {
+ "equal": "http://www.test.tu/test?"
+ }
+ }, {
+ "label": "Devrait créer l'url suivante : http://www.test.tu/test?a=1",
+ "arguments": {
+ "url": "http://www.test.tu/test",
+ "parameters": {
+ "a": 1
+ }
+ },
+ "result": {
+ "equal": "http://www.test.tu/test?a=1"
+ }
+ }, {
+ "label": "Devrait créer l'url suivante : http://www.test.tu/test?a=1&b=2",
+ "arguments": {
+ "url": "http://www.test.tu/test",
+ "parameters": {
+ "a": 1,
+ "b": 2
+ }
+ },
+ "result": {
+ "equal": "http://www.test.tu/test?a=1&b=2"
+ }
+ }]
+}
\ No newline at end of file
diff --git a/test/dataset/in/data/XML.json b/test/dataset/in/data/XML.json
new file mode 100644
index 0000000..56c9880
--- /dev/null
+++ b/test/dataset/in/data/XML.json
@@ -0,0 +1,32 @@
+{
+ "load": [{
+ "label": "Devrait parser un fichier xml",
+ "path": "./dataset/in/resources/file.mods.xml",
+ "result": {
+ "be": "object"
+ }
+ }, {
+ "label": "Ne devrait pas parser de xml (fichier vide)",
+ "path": "./dataset/in/resources/empty.mods.xml",
+ "result": {
+ "equal": null
+ }
+ }],
+ "select": [{
+ "label": "Devrait trouver l'identifiant ISSN dans le fichier xml",
+ "path": "./dataset/in/resources/file.mods.xml",
+ "arguments": {
+ "selector": ".type:val(\"ISSN\") ~ .$t"
+ },
+ "result": {
+ "equal": "0000000000000000000000000000000000000000"
+ }
+ }, {
+ "label": "Ne devrait pas trouver d'identifiant ISBN dans le fichier xml",
+ "path": "./dataset/in/resources/file.mods.xml",
+ "arguments": {
+ "selector": ".type:val(\"ISBN\") ~ .$t"
+ },
+ "result": {}
+ }]
+}
\ No newline at end of file
diff --git a/test/dataset/in/data/directories.json b/test/dataset/in/data/directories.json
new file mode 100644
index 0000000..4811ce2
--- /dev/null
+++ b/test/dataset/in/data/directories.json
@@ -0,0 +1,9 @@
+{
+ "sync":[{
+ "label": "Devrait créer un répertoire dans : ./test/dataset/out/mkdirp",
+ "arguments": "./test/dataset/out/mkdirp",
+ "result": {
+ "be": "undefined"
+ }
+ }]
+}
\ No newline at end of file
diff --git a/test/dataset/in/data/enrichments.json b/test/dataset/in/data/enrichments.json
new file mode 100644
index 0000000..760f444
--- /dev/null
+++ b/test/dataset/in/data/enrichments.json
@@ -0,0 +1,89 @@
+{
+ "save": [{
+ "label": "Devrait sauvegarder l'objet dans une nouvelle clé",
+ "arguments": {
+ "options": {
+ "enrichment": {
+ "foo": "bar"
+ },
+ "label": "li-utils"
+ },
+ "enrichments": {}
+ },
+ "result": {
+ "equal": 1
+ }
+ }, {
+ "label": "Devrait sauvegarder l'objet dans une clé existante",
+ "arguments": {
+ "options": {
+ "enrichment": {
+ "foo": "bar"
+ },
+ "label": "li-utils"
+ },
+ "enrichments": {
+ "li-utils": [{
+ "foo": "foo"
+ }]
+ }
+ },
+ "result": {
+ "equal": 1
+ }
+ }, {
+ "label": "Ne devrait rien faire (existe déjà)",
+ "arguments": {
+ "options": {
+ "enrichment": {
+ "foo": "bar"
+ },
+ "label": "li-utils"
+ },
+ "enrichments": {
+ "li-utils": [{
+ "foo": "bar"
+ }]
+ }
+ },
+ "result": {
+ "equal": 0
+ }
+ }],
+ "write": [{
+ "label": "Devrait écrire correctement le fichier",
+ "arguments": {
+ "options": {
+ "template": "./test/dataset/in/resources/file.tei.tpl",
+ "data": {
+ "value": "Hello World!"
+ },
+ "output": {
+ "directory": "./test/dataset/out/",
+ "filename": "file.tei"
+ }
+ }
+ },
+ "result": {
+ "not": true,
+ "equal": null
+ }
+ }, {
+ "label": "Devrait rencontrer une erreur de Lecture/Écriture",
+ "arguments": {
+ "options": {
+ "template": "./test/dataset/in/resources/incorrect.tei.tpl",
+ "data": {
+ "value": "Hello World!"
+ },
+ "output": {
+ "directory": "./test/dataset/out/",
+ "filename": "file.tei"
+ }
+ }
+ },
+ "result": {
+ "equal": null
+ }
+ }]
+}
\ No newline at end of file
diff --git a/test/dataset/in/data/files.json b/test/dataset/in/data/files.json
new file mode 100644
index 0000000..1e878e3
--- /dev/null
+++ b/test/dataset/in/data/files.json
@@ -0,0 +1,174 @@
+{
+ "createPath": [{
+ "label": "Devrait retourner un chemin correctement construit (non null)",
+ "arguments": {
+ "corpusPath": "/my/path/",
+ "id": "0000000000000000000000000000000000000000",
+ "type": "enrichments",
+ "label": "mymodule",
+ "extension": ".tei.xml"
+ },
+ "result": {
+ "not": true,
+ "equal": null
+ }
+ }, {
+ "label": "Devrait retourner null",
+ "arguments": {
+ "corpusPath": "/my/path/",
+ "type": "enrichments",
+ "label": "mymodule",
+ "extension": ".tei.xml"
+ },
+ "result": {
+ "equal": null
+ }
+ }],
+ "get": [{
+ "label": "Devrait trouver un fichier mods dans les metadata",
+ "container": "metadata",
+ "arguments": {
+ "options": {
+ "mime": "application/mods+xml"
+ }
+ },
+ "result": {
+ "not": true,
+ "equal": null
+ }
+ }, {
+ "label": "Ne devrait pas trouver un fichier mods dans les metadata",
+ "container": "metadata",
+ "arguments": {
+ "options": {
+ "mime": "application/mods+xml",
+ "original": true
+ }
+ },
+ "result": {
+ "equal": null
+ }
+ }, {
+ "label": "Devrait trouver un fichier mods dans les metadata (avec une RegExp)",
+ "regExp": ["mime"],
+ "container": "metadata",
+ "arguments": {
+ "options": {
+ "mime": "mods",
+ "original": false
+ }
+ },
+ "result": {
+ "not": true,
+ "equal": null
+ }
+ }, {
+ "label": "Ne devrait pas trouver un fichier mods dans les metadata (avec une RegExp)",
+ "regExp": ["mime"],
+ "container": "metadata",
+ "arguments": {
+ "options": {
+ "mime": "mods+xml",
+ "original": true
+ }
+ },
+ "result": {
+ "equal": null
+ }
+ }],
+ "selectAll": [{
+ "label": "Devrait trouver 3 images dans les annexes (avec une RegExp)",
+ "regExp": ["mime"],
+ "container": "annexes",
+ "arguments": {
+ "options": [{
+ "mime": "image",
+ "original": true
+ }]
+ },
+ "result": {
+ "length": 3
+ }
+ }, {
+ "label": "Ne devrait rien trouver dans les annexes (avec une RegExp)",
+ "regExp": ["mime"],
+ "container": "annexes",
+ "arguments": {
+ "options": [{
+ "mime": "text",
+ "original": true
+ }]
+ },
+ "result": {
+ "length": 0
+ }
+ }, {
+ "label": "Devrait trouver 2 images (jpeg) dans les annexes (sans RegExp)",
+ "regExp": ["mime"],
+ "container": "annexes",
+ "arguments": {
+ "options": [{
+ "mime": "image/jpeg",
+ "original": true
+ }]
+ },
+ "result": {
+ "length": 2
+ }
+ }, {
+ "label": "Ne devrait rien trouver dans les annexes (sans RegExp)",
+ "regExp": ["mime"],
+ "container": "annexes",
+ "arguments": {
+ "options": [{
+ "mime": "text/plain",
+ "original": true
+ }]
+ },
+ "result": {
+ "length": 0
+ }
+ }],
+ "select": [{
+ "label": "Devrait trouver un fichier texte dans les données fulltext",
+ "container": "fulltext",
+ "arguments": {
+ "options": [{
+ "mime": "text/plain",
+ "original": false
+ }, {
+ "mime": "text/plain",
+ "original": true
+ }]
+ },
+ "result": {
+ "not": true,
+ "equal": null
+ }
+ }, {
+ "label": "Devrait trouver une image dans les annexes (avec une RegExp)",
+ "regExp": ["mime"],
+ "container": "annexes",
+ "arguments": {
+ "options": [{
+ "mime": "image",
+ "original": true
+ }]
+ },
+ "result": {
+ "not": true,
+ "equal": null
+ }
+ }, {
+ "label": "Ne devrait pas trouver un fichier texte dans les annexes",
+ "container": "annexes",
+ "arguments": {
+ "options": [{
+ "mime": "text/plain"
+ }]
+ },
+ "result": {
+ "equal": null
+ }
+ }]
+}
\ No newline at end of file
diff --git a/test/dataset/in/data/paths.json b/test/dataset/in/data/paths.json
new file mode 100644
index 0000000..3b7f5ac
--- /dev/null
+++ b/test/dataset/in/data/paths.json
@@ -0,0 +1,14 @@
+{
+ "init": [{
+ "label": "Devrait créer le chemin suivant : /root/my/absolute/path/",
+ "arguments": {
+ "paths": {
+ "test": "./my/absolute/path/"
+ },
+ "root": "/root/"
+ },
+ "result": {
+ "equal": "/root/my/absolute/path/"
+ }
+ }]
+}
\ No newline at end of file
diff --git a/test/dataset/in/data/resources.json b/test/dataset/in/data/resources.json
new file mode 100644
index 0000000..d7b8e0d
--- /dev/null
+++ b/test/dataset/in/data/resources.json
@@ -0,0 +1,13 @@
+{
+ "require": [{
+ "label": "Devrait charger toutes les ressources",
+ "arguments": {
+ "paths": {
+ "myResource": "./dataset/in/resources/myResource.json"
+ }
+ },
+ "result": {
+ "property": "myResource"
+ }
+ }]
+}
\ No newline at end of file
diff --git a/test/dataset/in/empty.mods.xml b/test/dataset/in/empty.mods.xml
deleted file mode 100644
index e69de29..0000000
--- a/test/dataset/in/empty.mods.xml
+++ /dev/null
diff --git a/test/dataset/in/file.mods.xml b/test/dataset/in/file.mods.xml
deleted file mode 100644
index cedc10a..0000000
--- a/test/dataset/in/file.mods.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 0000000000000000000000000000000000000000
-
\ No newline at end of file
diff --git a/test/dataset/in/resources/empty.mods.xml b/test/dataset/in/resources/empty.mods.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/dataset/in/resources/empty.mods.xml
diff --git a/test/dataset/in/resources/file.mods.xml b/test/dataset/in/resources/file.mods.xml
new file mode 100644
index 0000000..cedc10a
--- /dev/null
+++ b/test/dataset/in/resources/file.mods.xml
@@ -0,0 +1,4 @@
+
+
+ 0000000000000000000000000000000000000000
+
\ No newline at end of file
diff --git a/test/dataset/in/resources/file.tei.tpl b/test/dataset/in/resources/file.tei.tpl
new file mode 100644
index 0000000..b26a235
--- /dev/null
+++ b/test/dataset/in/resources/file.tei.tpl
@@ -0,0 +1 @@
+{{value}}
\ No newline at end of file
diff --git a/test/dataset/in/test.URL.json b/test/dataset/in/test.URL.json
deleted file mode 100644
index 87bbfdb..0000000
--- a/test/dataset/in/test.URL.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "addParameters": [{
- "label": "Devrait créer l'url suivante : http://www.test.tu/test",
- "arguments": {
- "url": "http://www.test.tu/test",
- "parameters": {}
- },
- "result": {
- "equal": "http://www.test.tu/test?"
- }
- }, {
- "label": "Devrait créer l'url suivante : http://www.test.tu/test?a=1",
- "arguments": {
- "url": "http://www.test.tu/test",
- "parameters": {
- "a": 1
- }
- },
- "result": {
- "equal": "http://www.test.tu/test?a=1"
- }
- }, {
- "label": "Devrait créer l'url suivante : http://www.test.tu/test?a=1&b=2",
- "arguments": {
- "url": "http://www.test.tu/test",
- "parameters": {
- "a": 1,
- "b": 2
- }
- },
- "result": {
- "equal": "http://www.test.tu/test?a=1&b=2"
- }
- }]
-}
\ No newline at end of file
diff --git a/test/dataset/in/test.XML.json b/test/dataset/in/test.XML.json
deleted file mode 100644
index 7cc7c2c..0000000
--- a/test/dataset/in/test.XML.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "load": [{
- "label": "Devrait parser un fichier xml",
- "path": "./dataset/in/file.mods.xml",
- "result": {
- "be": "object"
- }
- }, {
- "label": "Ne devrait pas parser de xml (fichier vide)",
- "path": "./dataset/in/empty.mods.xml",
- "result": {
- "equal": null
- }
- }],
- "select": [{
- "label": "Devrait trouver l'identifiant ISSN dans le fichier xml",
- "path": "./dataset/in/file.mods.xml",
- "arguments": {
- "selector": ".type:val(\"ISSN\") ~ .$t"
- },
- "result": {
- "equal": "0000000000000000000000000000000000000000"
- }
- }, {
- "label": "Ne devrait pas trouver d'identifiant ISBN dans le fichier xml",
- "path": "./dataset/in/file.mods.xml",
- "arguments": {
- "selector": ".type:val(\"ISBN\") ~ .$t"
- },
- "result": {}
- }]
-}
\ No newline at end of file
diff --git a/test/dataset/in/test.directories.json b/test/dataset/in/test.directories.json
deleted file mode 100644
index 4811ce2..0000000
--- a/test/dataset/in/test.directories.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "sync":[{
- "label": "Devrait créer un répertoire dans : ./test/dataset/out/mkdirp",
- "arguments": "./test/dataset/out/mkdirp",
- "result": {
- "be": "undefined"
- }
- }]
-}
\ No newline at end of file
diff --git a/test/dataset/in/test.files.json b/test/dataset/in/test.files.json
deleted file mode 100644
index 847f579..0000000
--- a/test/dataset/in/test.files.json
+++ /dev/null
@@ -1,174 +0,0 @@
-{
- "selectAll": [{
- "label": "Devrait trouver 3 images dans les annexes (avec une RegExp)",
- "regExp": ["mime"],
- "container": "annexes",
- "arguments": {
- "options": [{
- "mime": "image",
- "original": true
- }]
- },
- "result": {
- "length": 3
- }
- }, {
- "label": "Ne devrait rien trouver dans les annexes (avec une RegExp)",
- "regExp": ["mime"],
- "container": "annexes",
- "arguments": {
- "options": [{
- "mime": "text",
- "original": true
- }]
- },
- "result": {
- "length": 0
- }
- }, {
- "label": "Devrait trouver 2 images (jpeg) dans les annexes (sans RegExp)",
- "regExp": ["mime"],
- "container": "annexes",
- "arguments": {
- "options": [{
- "mime": "image/jpeg",
- "original": true
- }]
- },
- "result": {
- "length": 2
- }
- }, {
- "label": "Ne devrait rien trouver dans les annexes (sans RegExp)",
- "regExp": ["mime"],
- "container": "annexes",
- "arguments": {
- "options": [{
- "mime": "text/plain",
- "original": true
- }]
- },
- "result": {
- "length": 0
- }
- }],
- "select": [{
- "label": "Devrait trouver un fichier texte dans les données fulltext",
- "container": "fulltext",
- "arguments": {
- "options": [{
- "mime": "text/plain",
- "original": false
- }, {
- "mime": "text/plain",
- "original": true
- }]
- },
- "result": {
- "not": true,
- "equal": null
- }
- }, {
- "label": "Devrait trouver une image dans les annexes (avec une RegExp)",
- "regExp": ["mime"],
- "container": "annexes",
- "arguments": {
- "options": [{
- "mime": "image",
- "original": true
- }]
- },
- "result": {
- "not": true,
- "equal": null
- }
- }, {
- "label": "Ne devrait pas trouver un fichier texte dans les annexes",
- "container": "annexes",
- "arguments": {
- "options": [{
- "mime": "text/plain"
- }]
- },
- "result": {
- "equal": null
- }
- }],
- "get": [{
- "label": "Devrait trouver un fichier mods dans les metadata",
- "container": "metadata",
- "arguments": {
- "options": {
- "mime": "application/mods+xml"
- }
- },
- "result": {
- "not": true,
- "equal": null
- }
- }, {
- "label": "Ne devrait pas trouver un fichier mods dans les metadata",
- "container": "metadata",
- "arguments": {
- "options": {
- "mime": "application/mods+xml",
- "original": true
- }
- },
- "result": {
- "equal": null
- }
- }, {
- "label": "Devrait trouver un fichier mods dans les metadata (avec une RegExp)",
- "regExp": ["mime"],
- "container": "metadata",
- "arguments": {
- "options": {
- "mime": "mods",
- "original": false
- }
- },
- "result": {
- "not": true,
- "equal": null
- }
- }, {
- "label": "Ne devrait pas trouver un fichier mods dans les metadata (avec une RegExp)",
- "regExp": ["mime"],
- "container": "metadata",
- "arguments": {
- "options": {
- "mime": "mods+xml",
- "original": true
- }
- },
- "result": {
- "equal": null
- }
- }],
- "createPath": [{
- "label": "Devrait retourner un chemin correctement construit (non null)",
- "arguments": {
- "corpusPath": "/my/path/",
- "id": "0000000000000000000000000000000000000000",
- "type": "enrichments",
- "label": "mymodule",
- "extension": ".tei.xml"
- },
- "result": {
- "not": true,
- "equal": null
- }
- }, {
- "label": "Devrait retourner null",
- "arguments": {
- "corpusPath": "/my/path/",
- "type": "enrichments",
- "label": "mymodule",
- "extension": ".tei.xml"
- },
- "result": {
- "equal": null
- }
- }]
-}
\ No newline at end of file
diff --git a/test/dataset/in/test.paths.json b/test/dataset/in/test.paths.json
deleted file mode 100644
index 3b7f5ac..0000000
--- a/test/dataset/in/test.paths.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "init": [{
- "label": "Devrait créer le chemin suivant : /root/my/absolute/path/",
- "arguments": {
- "paths": {
- "test": "./my/absolute/path/"
- },
- "root": "/root/"
- },
- "result": {
- "equal": "/root/my/absolute/path/"
- }
- }]
-}
\ No newline at end of file
diff --git a/test/dataset/in/test.resources.json b/test/dataset/in/test.resources.json
deleted file mode 100644
index 21288bc..0000000
--- a/test/dataset/in/test.resources.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "load": [{
- "label": "Devrait charger toutes les ressources",
- "arguments": {
- "paths": {
- "myResource": "./dataset/in/resources/myResource.json"
- }
- },
- "result": {
- "length": 1
- }
- }]
-}
\ No newline at end of file
diff --git a/test/run.js b/test/run.js
index b6684af..99fe31b 100644
--- a/test/run.js
+++ b/test/run.js
@@ -10,12 +10,13 @@
// Données de test
var docObject = require('./dataset/in/docObject.sample.json'),
dataset = {
- "paths": require('./dataset/in/test.paths.json'),
- "resources": require('./dataset/in/test.resources.json'),
- "files": require('./dataset/in/test.files.json'),
- "directories": require('./dataset/in/test.directories.json'),
- "XML": require('./dataset/in/test.XML.json'),
- "URL": require('./dataset/in/test.URL.json')
+ "paths": require('./dataset/in/data/paths.json'),
+ "resources": require('./dataset/in/data/resources.json'),
+ "files": require('./dataset/in/data/files.json'),
+ "enrichments": require('./dataset/in/data/enrichments.json'),
+ "directories": require('./dataset/in/data/directories.json'),
+ "XML": require('./dataset/in/data/XML.json'),
+ "URL": require('./dataset/in/data/URL.json')
};
// Mapping indiquant quelle fonction de test et quelles données utiliser pour chaque fonction
@@ -24,12 +25,17 @@
"init": testOf_pathsInit
},
"resources": {
- "load": testOf_resourcesLoad
+ "require": testOf_resourcesRequire
},
"files": {
- "selectAll": testOf_fileRepresentation,
+ "createPath": null,
+ "get": testOf_fileRepresentation,
"select": testOf_fileRepresentation,
- "get": testOf_fileRepresentation
+ "selectAll": testOf_fileRepresentation
+ },
+ "enrichments": {
+ "save": testOf_enrichmentsSave,
+ "write": testOf_enrichmentsWrite
},
"directories": {
"sync": null
@@ -48,12 +54,22 @@
* - myObject.paths.
* - init()
*
+ * - myObject.resources.
+ * - require()
+ *
* - myObject.files.
* - selectAll()
* - select()
* - get()
* - createPath()
*
+ * - myObject.enrichments.
+ * - write()
+ * - save()
+ *
+ * - myObject.directories.
+ * - sync()
+ *
* - myObject.XML.
* - load()
* - select()
@@ -80,21 +96,11 @@
/**
* Fonction de test à appliquée pour :
- * - myObject.resources.laod()
+ * - myObject.resources.require()
*/
-function testOf_resourcesLoad(fn, item, cb) {
+function testOf_resourcesRequire(fn, item, cb) {
var paths = myObject.paths.init(item.arguments.paths, __dirname);
- var result = fn(paths);
- return cb(Object.keys(result));
-}
-
-/**
- * Fonction de test à appliquée pour :
- * - myObject.XML.load()
- */
-function testOf_xmlLoad(fn, item, cb) {
- var xmlStr = fs.readFileSync(path.join(__dirname, item.path), 'utf-8');
- return cb(fn(xmlStr));
+ return cb(fn(paths));
}
/**
@@ -110,6 +116,36 @@
/**
* Fonction de test à appliquée pour :
+ * - myObject.enrichments.save()
+ */
+function testOf_enrichmentsSave(fn, item, cb) {
+ var before = (item.arguments.enrichments && item.arguments.enrichments[item.arguments.options.label]) ? item.arguments.enrichments[item.arguments.options.label].length : 0, // Nombre d'enrichissement avant
+ result = fn(item.arguments.enrichments, item.arguments.options),
+ after = result[item.arguments.options.label].length; // Nombre d'enrichissement aprés
+ cb(after - before);
+}
+
+/**
+ * Fonction de test à appliquée pour :
+ * - myObject.enrichments.write()
+ */
+function testOf_enrichmentsWrite(fn, item, cb) {
+ fn(item.arguments.options, function(err) {
+ cb(err);
+ });
+}
+
+/**
+ * Fonction de test à appliquée pour :
+ * - myObject.XML.load()
+ */
+function testOf_xmlLoad(fn, item, cb) {
+ var xmlStr = fs.readFileSync(path.join(__dirname, item.path), 'utf-8');
+ return cb(fn(xmlStr));
+}
+
+/**
+ * Fonction de test à appliquée pour :
* - myObject.XML.select()
*/
function testOf_xmlSelect(fn, item, cb) {