diff --git a/README.md b/README.md index 1fa4212d29dc75fc1ae233b90e8cc46b49437555..a525fde7562747f20d63e29c0da2e6797a4dd98f 100644 --- a/README.md +++ b/README.md @@ -108,4 +108,52 @@ public interface TacheDAO { Ce DAO est utilisé dans la classe `Tache` qui représente une tâche particulière. Les tâches sont manipulées via la classe `TodoService`. -Si vous regardez le code de la classe `Tache`, vous constaterez que nous avons choisi d'identifier les tâches au moyen un identifiant unique ([UUID](https://fr.wikipedia.org/wiki/Universally_unique_identifier)). Comme ce type n'est pas géré nativement par JDBI, nous avons dû utiliser un [mécanisme d'extension](https://jdbi.org/#_custom_arguments) permettant la conversion entre le type `java.util.UUID` et `String` (classes `UUIDArgument` et `UUIDArgumentFactory`). +Si vous regardez le code de la classe `Tache`, vous constaterez que nous avons choisi d'identifier les tâches au moyen d'un identifiant unique ([UUID](https://fr.wikipedia.org/wiki/Universally_unique_identifier)). Comme ce type n'est pas géré nativement par JDBI, nous avons dû utiliser un [mécanisme d'extension](https://jdbi.org/#_custom_arguments) permettant la conversion entre le type `java.util.UUID` et `String` (classes `UUIDArgument` et `UUIDArgumentFactory`). + +# Développement de la ressource +Dans la mesure où nous allons maintenant avoir des tests, ce développement se fera en TDD. + +## Définition de l'API pour notre gestion des tâches + +| URI | Méthode | MIME | Réponse | +--- +| /taches | GET | application/json | liste des tâches | +| | | application/xml | | +--- +| /taches | POST | application/json | | +| | | application/x-www-form-urlencoded | la tâche crée | +--- +| /taches/{id} | GET | application/json | la tâche | +| /taches/{id} | PUT | application/json | la nouvelle tâche | +| | | | | +## Récupérer une tâche +Nous pouvons déjà lancer les tests pour voir ce qu'il se passe : `mvn test`. + +~~~ +Results : + +Tests in error: + get_with_id_should_return_task(fr.ulille.iut.todo.ressource.TodoRessourceTest): HTTP 404 Not Found + +Tests run: 9, Failures: 0, Errors: 1, Skipped: 0 +~~~ + +Le test en erreur correspond à la fonctionnalité à développer : + +~~~java +@Test + public void get_with_id_should_return_task() { + Tache tache = new Tache(); + tache.setNom("test"); + tache.setDescription("description"); + dao.insert(tache); + + Tache returned = target("taches").path(tache.getId().toString()).request().get(Tache.class); + + assertEquals(tache, returned); + } +~~~ + +Pour ce test, nous créons un objet `Tache` qui est ensuite directement inséré dans la base grâce au DAO. Nous utilisons ensuite l'API [Client](https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest3x/client.html) pour faire notre requête `GET`. Pour simplifier le développement des tests, nous utilisons les [classes de test de Jersey](https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest3x/test-framework.html). + +Vous pouvez maintenant développer la méthode correspondante dans la classe `TodoRessource`. diff --git a/src/test/java/fr/ulille/iut/todo/ressource/TodoRessourceTest.java b/src/test/java/fr/ulille/iut/todo/ressource/TodoRessourceTest.java index e4d33b056a40fe4e9d5ad71b5643db6f8cc10468..d626939f423078aed26c1ec9856f324ab9a15a0d 100644 --- a/src/test/java/fr/ulille/iut/todo/ressource/TodoRessourceTest.java +++ b/src/test/java/fr/ulille/iut/todo/ressource/TodoRessourceTest.java @@ -94,6 +94,10 @@ public class TodoRessourceTest extends JerseyTest { assertEquals(tache, returned); } + @Test + public void get_with_wrong_id_should_return_404() { + } + @Test public void get_for_description_should_work() { }