
- Por Giulio Perrone
- ·
- Publicado 17-abr-2023 10:18:38
Hechizo
Historia: Durance ha encontrado un libro de magia en una de sus aventuras y ha decidido aprender a encantar sus armas. Debido a la naturaleza..
El objetivo es construir un cajero automático y nuestra primera tarea es crear el software que desglosará qué billetes y monedas debe recibir el cliente cuando intente hacer un retiro.
El contenido del cajero es:
| Valor | Tipo |
|-------|---------|
| 500 | billete |
| 200 | billete |
| 100 | billete |
| 50 | billete |
| 20 | billete |
| 10 | billete |
| 5 | billete |
| 2 | modena |
| 1 | moneda |
Entrada:
Como usuario
Quiero retirar 1725€
Salida:
2 billetes de 200
1 billete de 20
1 billete de 10
2 monedas de 2
Obsesión primitiva y pareja ajustada a la presentación
public interface ATM {
public String withdraw(int quantity);
}
Devuelve una lista de DTO u Objetos de Valor
public interface ATM {
public List<Money> withdraw(int quantity);
}
Outside-in
public interface ATM {
public void withdraw(int quantity);
}
El cajero automático tiene la siguiente distribución de dinero.
El estado inicial de cualquier cajero automático
| Valor | Tipo | Número de unidades|
|-------|---------|-------------------|
| 500 | billete | 2 |
| 200 | billete | 3 |
| 100 | billete | 5 |
| 50 | billete | 12 |
| 20 | billete | 20 |
| 10 | billete | 50 |
| 5 | billete | 100 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Estado inicial del cajero automático:
| Valor | Tipo | Número de unidades|
|-------|---------|-------------------|
| 500 | billete | 2 |
| 200 | billete | 3 |
| 100 | billete | 5 |
| 50 | billete | 12 |
| 20 | billete | 20 |
| 10 | billete | 50 |
| 5 | billete | 100 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Entrada
Como usuario
Quiero retirar 1725€
Salida
2 billetes de 500
3 billetes de 200
1 billetes de 100
1 billetes de 20
1 billete de 5
Estado del cajero automático después de la salida
| Valor | Tipo | Número de unidades |
|-------|---------|---------------------|
| 500 | billete | 0 |
| 200 | billete | 0 |
| 100 | billete | 4 |
| 50 | billete | 12 |
| 20 | billete | 19 |
| 10 | billete | 50 |
| 5 | billete | 99 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Entrada
Como usuario
He retirado 1825€
Salida
4 billetes de 100
12 billetes de 50
19 billetes de 20
44 billetes de 10
1 billetes de 5
Estado del cajero automático después de la salida
| Valor | Tipo | Número de unidades|
|-------|---------|-------------------|
| 500 | billete | 0 |
| 200 | billete | 0 |
| 100 | billete | 0 |
| 50 | billete | 0 |
| 20 | billete | 0 |
| 10 | billete | 6 |
| 5 | billete | 98 |
| 2 | moneda | 250 |
| 1 | moneda | 500 |
Los ejemplos gráficos que ves son una referencia de cómo funciona la kata, no tienes que aplicarlos si no quieres.
Historia: Durance ha encontrado un libro de magia en una de sus aventuras y ha decidido aprender a encantar sus armas. Debido a la naturaleza..
Introducción Con el propósito de practicar TDD, esta es una de las katas más avanzadas que puedes hacer. A estas alturas ya deberías dominar las..
Introducción Como un desarrollador que escribe blogs quiero una herramienta que me ayude a entender mejor el texto que estoy redactando. Para ello..
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores