Ce code est un exercice pour apprendre à faire évoluer fonctionnellement du code Legacy en prenant le temps d'écrire des tests unitaires et de refactorer.
Vous avez besoin de Maven 3 et d'un JDK 8 pour cet exercice
Vous avez deux web services qui se lance en tapant la commande :
mvn clean install tomcat6:run
Pour commencer ce premier refactoring, faites un checkout avec la commande git suivante :
git checkout -b exo1 step0
Refactorer le premier web service accessible à l'URL http://localhost:8080/indianajones/rest/results en affichant le turnover qui manque au rapport. Le XML affiché a cette forme là :
<report>
<title>Quaterly Report</title>
<frame>2012 - 2012</frame>
<results>
<result>
<lob>UX</lob>
<manager>Bob</manager>
<net>40.0</net>
<alertNet>Alert : Net Profit too low</alertNet>
<operatingExpense>80.0</operatingExpense>
<alertExpense>Alert : Too much notes</alertExpense>
</result>
</results>
</report>
Il doit maintenant ressembler à ça :
<report>
<title>Quaterly Report</title>
<frame>2012 - 2012</frame>
<results>
<result>
<lob>UX</lob>
<manager>Bob</manager>
<net>40.0</net>
<alertNet>Alert : Net Profit too low</alertNet>
<operatingExpense>80.0</operatingExpense>
<alertExpense>Alert : Too much notes</alertExpense>
<turnover>11</turnover>
</result>
</results>
</report>
Veillez à rendre le code le plus propre possible avec un maximum de tests unitaires (vous pouvez utiliser Mockito). Vous avez à peu près 15 minutes ... Une solution possible se trouve en exécutant la commande suivante :
git checkout step1
Pour commencer ce premier refactoring, faites un checkout avec la commande git suivante :
git checkout -b exo2 step1
Refactorer le premier web service accessible à l'URL http://localhost:8080/indianajones/json/results en affichant des élements supplémentaires. Le JSON affiché a cette forme là :
[{"manager":"Mathieu","departement":"Media","operatingExpense":4000.0,"netProfit":4000.0,"year":2013,"underKpiMessage":true,"hasTooMuchExpense":true,"turnover":9}]
Il doit maintenant ressembler à ça :
[{"manager":"Mathieu","year":2013,"underKpiMessage":"ALERT KPI","hasTooMuchExpense":"ALERT EXPENSE","departement":"Media","netProfit":4000.0,"operatingExpense":4000.0,"underKpi":true,"hasTooMuchExpense":true,"turnover":9}]
Encore une fois, veillez à rendre le code le plus propre possible avec un maximum de tests unitaires (vous pouvez utiliser Mockito). Et vous avez encore à peu près 15 minutes ... Une solution possible se trouve en exécutant la commande suivante :
git checkout step2