mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
46 lines
2.8 KiB
Markdown
46 lines
2.8 KiB
Markdown
# Especificaciones de la Rosa Dorada (Gilded Rose)
|
|
|
|
Bienvenido al equipo de **Gilded Rose**.
|
|
Como quizá sabes, 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 a medida que se aproxima la fecha de venta.
|
|
|
|
Tenemos un sistema instalado que actualiza automáticamente el `inventario`.
|
|
Este sistema fue desarrollado por un muchacho con poco sentido común llamado Leeroy, que ahora se dedica a nuevas aventuras.
|
|
Tu tarea es agregar una nueva característica al sistema para que podamos comenzar a vender una nueva categoría de items.
|
|
|
|
## Descripción preliminar
|
|
|
|
Pero primero, vamos a introducir el 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 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, la `calidad` se degrada al doble de velocidad
|
|
* La `calidad` de un artículo nunca es negativa
|
|
* El "Queso Brie envejecido" (`Aged brie`) incrementa su `calidad` a medida que se pone viejo
|
|
* Su `calidad` aumenta en `1` unidad cada día
|
|
* luego de la `fecha de venta` su `calidad` aumenta `2` unidades por día
|
|
* La `calidad` de un artículo nunca es mayor a `50`
|
|
* El artículo "Sulfuras" (`Sulfuras`), siendo un artículo legendario, no modifica su `fecha de venta` ni se degrada en `calidad`
|
|
* Una "Entrada al Backstage", como el queso brie, incrementa su `calidad` a medida que la `fecha de venta` se aproxima
|
|
* si faltan 10 días o menos para el concierto, la `calidad` se incrementa en `2` unidades
|
|
* si faltan 5 días o menos, la `calidad` se incrementa en `3` unidades
|
|
* luego de la `fecha de venta` la `calidad` cae a `0`
|
|
|
|
## El requerimiento
|
|
|
|
Hace poco contratamos a un proveedor de artículos *conjurados mágicamente*.
|
|
Esto requiere una actualización del sistema:
|
|
|
|
* Los artículos `conjurados` degradan su `calidad` al doble de velocidad que los normales
|
|
|
|
Siéntete libre de realizar cualquier cambio al mensaje `updateQuality` y agregar el código que sea necesario, mientras que todo siga funcionando correctamente. Sin embargo, **no alteres el objeto `Item` ni sus propiedades** ya que pertenecen al goblin que está en ese rincón, que en un ataque de ira te va a liquidar de un golpe porque no cree en la cultura de código compartido.
|
|
|
|
## Notas finales
|
|
|
|
Para aclarar: un artículo nunca puede tener una `calidad` superior a `50`, sin embargo las Sulfuras siendo un artículo legendario posee una calidad inmutable de `80`.
|