Se actualiza la lógica que procesa la ruta
[isfdt166-ansi-edi2-2024-server.git] / gherkin / especie_modificar.feature
blob46b9b031d64f611dd275aeaa4c243f8a25683a00
1 # language: es
2 Característica: Modificar una especie
4   Dado el sistema de turnos para una veterinaria, como administrador, se editan
5   las especies que pueden ser atendidas.
7   Escenario: El administrador modifica una especie existente
8     Dada una especie cargada en el sistema
9     E identificada por un ID
10     Cuando el admin edita la especie
11     Y el cambio es válido
12     Y la acción se realiza a través de la API REST
13     Y la llamada se hace a la ruta '/especie/{ID}'
14     Y el verbo HTTP es 'PUT'
15     Y se envía un objeto JSON que respeta el formato:
16     """
17     {
18       "nombre": [STRING]
19     }
20     """
21     Entonces el sistema retorna el código 200
22     Y un objeto representando a la especie actualizada
23     Y el objeto es un JSON que respeta el formato:
24     """
25     {
26       "id": [NUMBER],
27       "nombre": [STRING]
28     }
29     """
31   Escenario: El administrador edita una especie y duplica una existente
32     Dada una especie cargada en el sistema
33     E identificada por un ID
34     Cuando el admin edita la especie
35     Y el nuevo nombre duplica una especie existente
36     Y la acción se realiza a través de la API REST
37     Y la llamada se hace a la ruta '/especie/{ID}'
38     Y el verbo HTTP es 'PUT'
39     Y se envía un objeto JSON que respeta el formato:
40     """
41     {
42       "nombre": [STRING]
43     }
44     """
45     Entonces el sistema retorna el código 403
46     Y un objeto con el mensaje
47     """
48     La especie que intenta definir ya existe
49     """
50     Y el objeto es un JSON que respeta el formato:
51     """
52     {
53       "mensaje": [STRING]
54     }
55     """
57   Escenario: El administrador edita una especie con nombre inválido
58     Dada una especie cargada en el sistema
59     E identificada por un ID
60     Cuando el admin edita la especie
61     Y el nuevo nombre sea mayor a 30 caracteres
62     O que contenga números
63     O que contenga caracteres inválidos
64     Y la acción se realiza a través de la API REST
65     Y la llamada se hace a la ruta '/especie/{ID}'
66     Y el verbo HTTP es 'PUT'
67     Y se envía un objeto JSON que respeta el formato:
68     """
69     {
70       "nombre": [STRING]
71     }
72     """
73     Entonces el sistema retorna el código 422
74     Y un objeto con el mensaje
75     """
76     Nombre de especie inválido
77     """
78     Y el objeto es un JSON que respeta el formato:
79     """
80     {
81       "mensaje": [STRING]
82     }
83     """
85   Escenario: El administrador modifica una especie inexistente
86     Dado el ID de una especie inexistente
87     Cuando el admin edita la especie
88     Entonces el sistema retorna el código 404
89     Y un objeto con el mensaje
90     """
91     ID invalido o inexistente
92     """
93     Y el objeto es un JSON que respeta el formato:
94     """
95     {
96       "mensaje": [STRING]
97     }
98     """