Vending Machine Kata
Descripción
La Vending Machine Kata es un ejercicio de programación que simula el funcionamiento de una máquina expendedora. El objetivo es diseñar e implementar un sistema que gestione la compra de productos, el manejo de inventario y la devolución de cambio. Es una excelente oportunidad para practicar el diseño orientado a objetos, la gestión de estados y la implementación de lógica de negocio compleja.
Objetivo de la kata
El objetivo de esta kata es crear una máquina expendedora que pueda:
- Mostrar el inventario de productos disponibles.
- Aceptar el dinero del cliente.
- Dispensar productos.
- Devolver el cambio adecuado.
- Manejar situaciones de inventario insuficiente o cambio insuficiente.
Instrucciones
- Definir el modelo:
- Define las clases necesarias para representar la máquina expendedora, los productos y el inventario.
- Define las clases y métodos para manejar el dinero (monedas y billetes).
- Implementar la lógica de negocio:
- Implementa métodos para agregar dinero a la máquina.
- Implementa métodos para seleccionar un producto y dispensarlo si se han cumplido todas las condiciones.
- Implementa la lógica para devolver el cambio adecuado.
- Manejo de estados y excepciones:
- Asegúrate de manejar correctamente los estados de la máquina (por ejemplo, esperando dinero, dispensando producto, devolviendo cambio).
- Implementa la lógica para manejar situaciones excepcionales como inventario insuficiente o falta de cambio.
- Pruebas:
- Escribe pruebas unitarias para verificar el correcto funcionamiento de cada componente de la máquina expendedora.
- Asegúrate de probar casos límite y situaciones excepcionales.