4. Description des tests d’intégration#
4.1. Tests des classes#
Pour lancer les tests d’intégration, il est conseillé d’utiliser docker-compose afin de disposer d’un environnement de test plus complet:
docker-compose up -d road2
docker-compose exec road2 npm run itest
C’est l’approche bottom-up qui a été choisie pour ces tests. On va tester les classes qui dépendent d’une autre pour fonctionner. On testera donc les classes suivantes dans l’ordre indiqué:
Premier niveau:
apisManager (ExpressJS, api, log4js)
baseManager (base, log4js)
looseConstraint (constraint)
line (geometry, proj4, polyline)
point (geometry, proj4)
polygon (geoemtry, turf, proj4, polyline)
operation (parameter)
resourceParameter (parameter)
serverManager (server, ExpressJS, log4js, fs, assert)
healthRequest (request)
healthResponse (response)
serviceRequest (request)
Deuxième niveau:
routeRequest (request, point)
isochroneRequest (request, point)
nearestRequest (request, point)
resourceOperation (resourceParameter)
boolParameter (resourceParameter)
enumParameter (resourceParameter)
floatParameter (resourceParameter)
pointParameter (resourceParameter, point, log4js)
constraintParameter (resourceParameter, constraint, looseConstraint)
intParameter (resourceParameter)
isochroneResponse (response, point, geometry)*
nearestResponse (response, point, geometry)
step (line, duration, distance)
source (baseManager, projectionManager)
Troisième niveau:
parameterManager (parameter, boolParameter, enumParameter, floatParameter, pointParameter, constraintParameter, log4js)
resource (resourceOperation)
portion (point, step, duration, distance)
Quatrième niveau:
operationManager (parameterManager, operation, resourceOperation, log4js)
osrmResource (resource, resourceOperation)
pgrResource (resource, resourceOperation, log4js)
route (line, portion, duration, distance)
Cinquième niveau:
routeResponse (response, point, route)
Sixième niveau:
osrmSource (source, osrm, routeResponse, nearestResponse, route, portion, line, point, step, distance, duration, errorManager, log4js)
pgrSource (source, routeResponse, isochroneResponse, route, portion, line, point, polygon, step, distance, duration, errorManager, gisManager, copyManager, simplify, turf, looseConstraint, log4js)
Septième niveau:
sourceManager (osrmSource, pgrSource, errorManager, storageManager, operationManager, log4js)
Huitième niveau:
resourceManager (osrmResource, pgrResource, sourceManager, operationManager, log4js)
Neuvième niveau:
service (apisManager, resourceManager, sourceManager, operationManager, baseManager, projectionManager, serverManager, errorManager, ExpressJS, log4js)
Dixième niveau:
serviceManager (service, serviceProcess, log4js)
serviceProcess (serviceAdministered, service, log4js, fork)
Onzième niveau:
administrator (express, log4js, helmet, path, fs, assert, serverManager, serviceManager, apisManager)
Autres:
road2.js
controller.js de l’api simple 1.0.0
index.js de l’api simple 1.0.0
init.js de l’api simple 1.0.0
update.js de l’api simple 1.0.0
4.2. Tests des dépendances#
4.2.1. Liste des dépendances et de leurs usages#
@mapbox/polyline
geometry/line.js
encode()
toGeoJSON()
fromGeoJSON()
geometry/polygon.js
encode()
toGeoJSON()
fromGeoJSON()
@turf/turf
apis/simple/1.0.0/controller/controller.js
bbox()
lineSlice()
geometry/polygon.js
polygon()
polygonToLine()
sources/pgrSource.js
point()
truncate()
lineSlice()
nearestPointOnLine()
length()
cleanCoords()
assert
deepStrictEqual()
equal()
deepEqual()
cors
service/service.js
()
express
administrator/administrator.js
()
use()
Router()
router.use()
json()
set
got
utils/httpQuery.js
()
post()
helmet
administrator/administrator.js
()
service/service.js
()
https-proxy-agent
utils/httpQuery.js
()
log4js
configure()
getLogger()
nconf
road2.js
use()
get()
argv().get()
argv().env()
proj4
geography/projectionManager.js
defs()
()
osrm
sources/sourceManager.js
sources/osrmSource.js
route()
nearest()
pg {Pool}
base/base.js
Pool()
pool.on(‘error’)
pool.end()
base/baseManager.js
sources/sourcesManager.js
sources/pgrSource.js
query()