mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 04:12:13 +00:00
42 lines
3.0 KiB
Markdown
42 lines
3.0 KiB
Markdown
# Especificaciones de la Rosa Dorada (Gilded Rose)
|
|
|
|
Bienvenido al equipo **Gilded Rose**.
|
|
Como sabrás, somos una pequeña posada ubicada estratégicamente en una prestigiosa ciudad, atendida por la amable Allison. También compramos y vendemos mercadería de alta calidad. Por desgracia, nuestra mercadería va bajando de calidad (`Quality`) a medida que se aproxima la fecha de venta.
|
|
|
|
Tenemos un sistema instalado que actualiza automáticamente nuestro inventario. Este sistema fue desarrollado por un tipo serio y práctico llamado Leeroy, que ahora se encuentra en otras aventuras.
|
|
|
|
Tu tarea es añadir una nueva funcionalidad al sistema para que podamos comenzar a vender una nueva categoría de items. Pero primero, vamos a describir como funciona el sistema:
|
|
|
|
## Descripción del sistema
|
|
|
|
- Todos los artículos (`item`) tienen una propiedad `SellIn` que denota el número de días que tenemos para venderlo
|
|
- Todos los artículos (`item`) tienen una propiedad `Quality` que denota cúan valioso es el artículo
|
|
- Al final de cada día, nuestro sistema decrementa ambos valores para cada artículo mediante el método `updateQuality`
|
|
|
|
Bastante simple, ¿no? Bueno, ahora es donde se pone interesante:
|
|
|
|
- Una vez que ha pasado la fecha recomendada de venta (`SellIn`), la calidad (`Quality`) se degrada al doble de velocidad
|
|
- La `calidad` de un artículo nunca es negativa
|
|
- El "Queso Brie envejecido" (`Aged brie`) incrementa su calidad (`Quality`) a medida que madura con los días
|
|
- Su calidad (`Quality`) aumenta en `1` unidad cada día
|
|
- Una vez expirada la fecha de venta (`SellIn`) su calidad (`Quality`) aumenta el doble día
|
|
- La calidad de un artículo (`Quality`) no puede superar `50`
|
|
- El artículo `Sulfuras`, es un artículo legendario, no necesitamos venderlo en ninguna fecha (`SellIn`) y tampoco se degrada en (`Quality`)
|
|
- El artículo "Entrada al Backstage" (`Backstage passes`), incrementa su valor (`Quality`) a medida que acerca la fecha del concierto (`SellIn`)
|
|
- Si faltan `10` días o menos para el concierto, la calidad (`Quality`) se incrementa en `2` unidades
|
|
- Si faltan `5` días o menos, la calidad (`Quality`) se incrementa en `3` unidades
|
|
- Una vez pasada fecha del concierto (`SellIn`), la entrada pierde su valor (`Quality`) y cae a `0`
|
|
|
|
## Tu tarea
|
|
|
|
Hace poco contratamos a un proveedor de artículos _conjurados mágicamente_.
|
|
Esto requiere una actualización del sistema:
|
|
|
|
- Los artículos conjurados (`Conjured`) degradan su calidad (`Quality`) el doble de rápido que los artículos normales
|
|
|
|
Siéntete libre de modificar el método `updateQuality` y agregar el código que sea necesario, siempre y cuando todo siga funcionando correctamente. Sin embargo, **no debes modificar la clase `Item` ni sus propiedades**, ya que esta pertenece a un duende que en un ataque de ira te liquidaría de un golpe ya que no cree en la cultura de código compartido.
|
|
|
|
## Notas finales
|
|
|
|
Para aclarar: un artículo nunca puede tener una calidad (`Quality`) superior a `50`, sin embargo los objetos `Sulfuras`, siendo un artículo legendario, poseen una calidad inmutable de `80`.
|