Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider daed1038 rédigé par Zomzog's avatar Zomzog
Parcourir les fichiers

User

parent 0b98beea
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -14,15 +14,15 @@ cette implémentation utilisera une liste en mémoire pour la persistance.
== Exo 1
En utilisant l'approche des @Bean,
créer un fichier AppConfig qui gère la création des beans movieservice et Database
créer un fichier AppConfig qui gère la création des beans userService et Database
Dans la classe de test Exercice#exo1_1 charger le context Spring à partir de AppConfig
pour obtenir une instance de movieservice
pour obtenir une instance de userService
== Exo 2
Avec la même approche,
ajouter la création d'un bean Supermovieservice.
ajouter la création d'un bean SuperuserService.
Il doit partager la même instance de `Database`.
......@@ -42,7 +42,7 @@ Le test doit passer, le test exo1_2 ne passe plus.
== Exo 4
Supprimer le constructeur de Supermovieservice et utiliser l'injection avec Autowired pour ce service.
Supprimer le constructeur de SuperuserService et utiliser l'injection avec Autowired pour ce service.
Le test exo1_3 doit toujours fonctionner
......@@ -65,7 +65,7 @@ Elle doit répondre aux mêmes tests que ListDatabaseTest
== Exo 7
Dans AppConfig créer le bean de HashDatabase en scope Singleton
Utiliser ce bean pour supermovieservice.
Utiliser ce bean pour superUserService.
Le test suivant doit passer
......@@ -73,11 +73,11 @@ Le test suivant doit passer
@Test
fun exo1_7() {
val context = AnnotationConfigApplicationContext(AppConfig::class.java)
val movieservice = context.getBean(movieservice::class.java)
val supermovieservice = context.getBean(Supermovieservice::class.java)
val userService = context.getBean(UserService::class.java)
val superuserService = context.getBean(SuperUserService::class.java)
assertThat(movieservice.database).isInstanceOf(ListDatabase::class)
assertThat(supermovieservice.database).isInstanceOf(HashDatabase::class)
assertThat(userService.database).isInstanceOf(ListDatabase::class)
assertThat(superUserService.database).isInstanceOf(HashDatabase::class)
}
```
......@@ -94,7 +94,7 @@ Le test suivant doit passer.
class Exo8 {
@Autowired
private lateinit var movieservice: movieservice
private lateinit var userService: UserService
@Test
fun exo_8() {
......@@ -108,7 +108,7 @@ class Exo8 {
Ajouter les dépendances de test `io.mockk:mockk-jvm:1.13.12` et `com.ninja-squad:springmockk:4.0.2`
Dans la class Exo8,
remplacer la Database de movieservice par un mock.
remplacer la Database de userService par un mock.
Ajouter ce test et le compléter pour qu'il soit valide.
......@@ -118,8 +118,8 @@ fun exo_9() {
// GIVEN TODO
// THEN
assertThrows<NoSuchElementException> { movieservice.delete(user()) }
movieservice.delete(user(UUID.randomUUID()))
assertThrows<NoSuchElementException> { userService.delete(user()) }
userService.delete(user(UUID.randomUUID()))
}
```
......@@ -143,12 +143,12 @@ class HelloController {
Lancer **Application.kt qui est à la racine du projet (clic droit -> run).
Appeler GET 192.168.1.44:8080/hello et vérifier que la réponse est bien world.
Appeler GET localhost:8080/hello et vérifier que la réponse est bien world.
Par exemple en CURL
```bash
curl -XGET -v 192.168.1.44:8080/hello
curl -XGET -v localhost:8080/hello
...
< HTTP/1.1 200
...
......@@ -174,7 +174,7 @@ L'implémentation se fera dans une classe MovieController.
Le premier endpoint POST `/api/movies` qui prend le JSON d'un film, l'enregistre dans la Map et répond un HTTP 201 avec le contenu du film en body.
Exemple d'appel:
----
curl --location '192.168.1.44:8080/api/movies' \
curl --location 'localhost:8080/api/movies' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Jurassic Park",
......@@ -192,7 +192,7 @@ Modifier le endpoint pour que si on envoie deux fois la même nom de film, la r
Exemple d'appel:
----
curl --location '192.168.1.44:8080/api/movies' \
curl --location 'localhost:8080/api/movies' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Jurassic Park",
......@@ -200,7 +200,7 @@ curl --location '192.168.1.44:8080/api/movies' \
"releaseDate": 1993,
"languages": [ "VO", "VFF", "VFQ"]
}' &&
curl --location '192.168.1.44:8080/api/movies' \
curl --location 'localhost:8080/api/movies' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Jurassic Park",
......@@ -218,7 +218,7 @@ Un appel à GET `/api/movies` doit répondre 200 avec la liste des utilisateurs
Exemple d'appel:
----
curl --location '192.168.1.44:8080/api/movies'
curl --location 'localhost:8080/api/movies'
----
Reponse:
[source,json]
......@@ -244,13 +244,13 @@ Ajouter un endpoint GET `/api/movies/{name}` qui retourne :
Exemple d'appel:
----
curl -v --location '192.168.1.44:8080/api/movies/Dune'
curl -v --location 'localhost:8080/api/movies/Dune'
HTTP/1.1 404
----
----
curl --location '192.168.1.44:8080/api/movies/Inception'
curl --location 'localhost:8080/api/movies/Inception'
----
Reponse:
[source,json]
......@@ -274,7 +274,7 @@ Ajouter un endpoint PUT `/api/movies/{name}` qui retourne :
Exemple d'appel:
----
curl --location --request PUT '192.168.1.44:8080/api/movies/Inception' \
curl --location --request PUT 'localhost:8080/api/movies/Inception' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Inception",
......@@ -301,7 +301,7 @@ Reponse:
----
----
curl -v --location --request PUT '192.168.1.44:8080/api/movies/Inception' \
curl -v --location --request PUT 'localhost:8080/api/movies/Inception' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "My Little Pony",
......@@ -316,7 +316,7 @@ HTTP/1.1 400
----
----
curl -v --location --request PUT '192.168.1.44:8080/api/movies/Dune' \
curl -v --location --request PUT 'localhost:8080/api/movies/Dune' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Dune",
......@@ -338,13 +338,13 @@ Ajouter un endpoint DELETE `/api/movies/{name}` qui retourne :
Exemple d'appel:
----
curl -v --location --request DELETE '192.168.1.44:8080/api/movies/Inception'
curl -v --location --request DELETE 'localhost:8080/api/movies/Inception'
HTTP/1.1 204
----
----
curl -v --location --request DELETE '192.168.1.44:8080/api/movies/Dune'
curl -v --location --request DELETE 'localhost:8080/api/movies/Dune'
HTTP/1.1 404
----
......@@ -355,7 +355,7 @@ Ajouter sur la liste des films la possibilité de filtrer par note.
Exemple d'appel:
----
curl --location '192.168.1.44:8080/api/movies?rating=99'
curl --location 'localhost:8080/api/movies?rating=99'
----
Reponse:
......@@ -381,7 +381,7 @@ filtrer la liste des résultats
Exemple d'appel:
----
curl --header "Accept-Language: VFF" --location '192.168.1.44:8080/api/movies'
curl --header "Accept-Language: VFF" --location 'localhost:8080/api/movies'
----
Reponse:
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter