Skip to content
Snippets Groups Projects
Commit 27284b4b authored by Yvan Peter's avatar Yvan Peter
Browse files

ajout commentaires + readme

parent ce6ec12f
Branches
No related tags found
No related merge requests found
......@@ -152,7 +152,7 @@ ingrédient. Elle porte des méthodes pour passer de cette
représentation aux DTO.
Cela permet de découpler l'implémentation de la ressource qui traite
les requêtes HTTP, de la donnée manipulée.
les requêtes HTTP et la donnée manipulée.
Cette classe pourrait
porter des comportements liés à cette donnée (par ex. calcul de TVA).
......@@ -188,8 +188,34 @@ d'un premier test.
ingredients = response.readEntity(new GenericType<List<IngredientDto>>(){});
assertEquals(0, ingredients.size());
}
En héritant de JerseyTest, votre classe de test se comporte comme un
[`Client`
JAX-RS](https://docs.oracle.com/javaee/7/api/javax/ws/rs/client/Client.html). La
méthode `target()` notamment permet de préparer une requête sur une
URI particulière.
Vous pouvez compiler votre code ainsi que les tests au moyen
des commandes `mvn compile` et `mvn test-compile`. La compilation du
code et des tests se fera automatiquement si nécessaire quand vous
faites un `mvn test`.
Pour pouvoir compiler ce premier test, il faut au minimum fournir le
DTO `IngredientDto`.
Pour commencer, on se contentera de l'implémentation minimale
suivante :
package fr.ulille.iut.pizzaland.dto;
public class IngredientDto {
public IngredientDto() {
}
}
A ce stade, vous pouvez lancer un premier test au moyen de la commande
`mvn test`. Évidemment, ce test va échouer.
......@@ -201,15 +227,8 @@ A ce stade, vous pouvez lancer un premier test au moyen de la commande
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
Vous pouvez compiler votre code ainsi que les tests au moyen
des commandes `mvn compile` et `mvn test-compile`. La compilation du
code et des tests se fera automatiquement si nécessaire quand vous
faites un `mvn test`.
Pour réussir, ce premier test, nous allons mettre en place la
ressource `IngredientResource` ainsi que
le DTO (Data Transfer Object) qui représentera les données
transportées dans les requêtes et réponses HTTP.
ressource `IngredientResource`.
Une première implémentation de la ressource pourra avoir la forme
suivante :
......@@ -229,18 +248,6 @@ suivante :
return new ArrayList<IngredientDto>();
}
}
Pour réussir ce premier test, on se contentera de l'implémentation
suivante du DTO :
package fr.ulille.iut.pizzaland.dto;
public class IngredientDto {
public IngredientDto() {
}
}
Avec cette première implémentation, on va pouvoir tester notre
ressource :
......
......@@ -18,6 +18,11 @@ import static org.junit.Assert.assertEquals;
import java.util.List;
import java.util.logging.Logger;
/*
* JerseyTest facilite l'écriture des tests en donnant accès aux
* méthodes de l'interface javax.ws.rs.client.Client.
* la méthode configure() permet de démarrer la ressource à tester
*/
public class IngredientResourceTest extends JerseyTest {
private static final Logger LOGGER = Logger.getLogger(IngredientResourceTest.class.getName());
......@@ -26,6 +31,9 @@ public class IngredientResourceTest extends JerseyTest {
return new ApiV1();
}
// Les méthodes setEnvUp() et tearEnvDown() serviront à terme à initialiser la base de données
// et les DAO
// https://stackoverflow.com/questions/25906976/jerseytest-and-junit-throws-nullpointerexception
@Before
public void setEnvUp() {
......@@ -39,8 +47,22 @@ public class IngredientResourceTest extends JerseyTest {
@Test
public void testGetEmptyList() {
// La méthode target() permet de préparer une requête sur une URI.
// La classe Response permet de traiter la réponse HTTP reçue.
Response response = target("/ingredients").request().get();
// On vérifie le code de la réponse (200 = OK)
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
// On vérifie la valeur retournée (liste vide)
// L'entité (readEntity() correspond au corps de la réponse HTTP.
// La classe javax.ws.rs.core.GenericType<T> permet de définir le type
// de la réponse lue.
List<IngredientDto> ingredients;
ingredients = response.readEntity(new GenericType<List<IngredientDto>>(){});
assertEquals(0, ingredients.size());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment