-
Los casos en los que se debería arrojar una excepción de tipo ExcepcionParametrosInvalidos son:
- Tarifa menor o igual a 0
- Días de antelación negativos
- Edad menor o igual a 0, o mayor a 120 años
-
Tabla de clases de equivalencia
Número Clases de equivalencia Resultado correcto / incorrecto 1 Tarifa menor o igual a 0 Incorrecto/ @throws ExcepcionParametrosInvalidos 2 Días de antelación negativos Incorrecto/ @throws ExcepcionParametrosInvalidos 3 Edad menor o igual a 0, o mayor a 120 años Incorrecto/ @throws ExcepcionParametrosInvalidos 4 Días de antelación mayor a 20 Correcto / 15% de descuento 5 Edad menor a 18 Correcto / 5% de descuento 6 Edad mayor a 65 Correcto / 8% de descuento 7 Días de antelación menor a 20 y edad mayor a 18 y edad menor a 65 Correcto sin descuento 8 Días de antelación mayor a 20 y edad menor a 18 Correcto / 20% de descuento 9 Días de antelación mayor a 20 y edad mayor a 65 Correcto / 23% de descuento Nota: En el caso de las excepciones, se da por sentado que si no botó las excepciones (validadas desde el inicio) por defecto se sabe que no cumplen las condiciones necesarias para que haya error. Por ejemplo: Si se ingresa al caso donde hay descuento por ser menor de edad, entonces la tarifa debe ser mayor a 0. Por tal motivo, no consideramos necesario escribirlo explícitamente.
-
Casos de prueba clases de equivalencia
- Tarifa menor o igual a 0:
- Entrada: tarifaBase = - $ 580.000, diasAntelacion = 45, edad = 30
- Salida: ExcepcionParametrosInvalidos / Tarifa negativa
- Días de antelación negativos
- Entrada: tarifaBase = $ 580.000, diasAntelacion = -45, edad = 30
- Salida: ExcepcionParametrosInvalidos / Días de antelación negativos
- Edad menor o igual a 0, o mayor a 120 años
- Entrada: tarifaBase = $ 580.000, diasAntelacion = 45, edad = 0
- Salida: ExcepcionParametrosInvalidos / Edad invalida
- Días de antelación mayor a 20
- Entrada: tarifaBase = $ 580.000, diasAntelacion = 45, edad = 30
- Salida: $493.000 / Con 15% de descuento
- Edad menor a 18
- Entrada: tarifaBase = $ 580.000, diasAntelacion = 10, edad = 15
- Salida: $551.000 / Con 5% de descuento
- Edad mayor a 65
- Entrada: tarifaBase = $ 580.000, diasAntelacion = 10, edad = 70
- Salida: $533.600 / Con 8% de descuento
- Días de antelación menor a 20 y edad mayor a 18 y edad menor a 65
- Entrada: tarifaBase = $ 580.000, diasAntelacion = 45, edad = 20
- Salida: $580.000 / Sin descuento
- Días de antelación mayor a 20 y edad menor a 18
- Entrada: tarifaBase = $ 580.000, diasAntelacion = 45, edad = 15
- Salida: $464.000 / Con 20% de descuento
- Días de antelación mayor a 20 y edad mayor a 65
- Entrada: tarifaBase = $ 580.000, diasAntelacion = 45, edad = 80
- Salida: $446.600 / Con 23% de descuento
- Tarifa menor o igual a 0:
-
Condiciones límite
| Número condición de frontera | Variable | Límite inferior | Límite superior | Número de clase de equivalencia |
|---|---|---|---|---|
| 1 | tarifaBase | -∞ | 0 | 1 |
| 2 | diasAntelacion | -∞ | -1 | 2 |
| 3 | edad | -∞ | 0 | 3 |
| 4 | edad | 121 | ∞ | 3 |
| 5 | diasAntelacion | 21 | ∞ | 4, 8 y 9 |
| 6 | edad | 1 | 17 | 5 y 8 |
| 7 | edad | 66 | 120 | 6 7 9 |
| 8 | diasAntelacion | 0 | 20 | 7 |
| 9 | edad | 18 | 65 | 7 |
| 10 | tarifaBase | 1 | ∞ | Cualquiera menos 1 |
Nota: Los infinitos los usamos porque no sabemos el rango que se implementará para esos parámetros.
-
Casos de prueba para condiciones límite
- -∞ < tarifaBase <= 0
- Entrada: tarifaBase = -5, diasAntelacion = 5, edad = 30
- Salida: ExcepcionParametrosInvalidos / Tarifa negativa
- -∞ < diasAntelacion <= -1
- Entrada: tarifaBase = $ 70.000, diasAntelacion = -5, edad = 30
- Salida: ExcepcionParametrosInvalidos / Días de antelación negativos
- < edad < ∞ - Entrada: tarifaBase = $ 70.000, diasAntelacion = 5, edad = -30 - Salida: ExcepcionParametrosInvalidos / Edad negativa
- 121 <= edad < ∞
- Entrada: tarifaBase = $ 70.000, diasAntelacion = 5, edad = 130
- Salida: ExcepcionParametrosInvalidos / Edad negativa
- 21 <= diasAntelacion < ∞
- Entrada: tarifaBase = $ 70.000, diasAntelacion = 100, edad = 30
- Salida: $ 59.500 / 15% de descuento
- 1 <= edad <= 17
- Entrada: tarifaBase = $ 70.000, diasAntelacion = 3, edad = 15
- Salida: $ 66.500 / 5% de descuento
- 66 <= edad <= 120;
- Entrada: tarifaBase = $ 70.000, diasAntelacion = 3, edad = 70
- Salida: $ 64.400 / 8% de descuento
- 0 <= diasAntelacion <= 20;
- Entrada: tarifaBase = $ 70.000, diasAntelacion = 3, edad = 30
- Salida: $ 70.000 / Sin descuento
- 18 <= edad <= 65;
- Entrada: tarifaBase = $ 70.000, diasAntelacion = 3, edad = 30
- Salida: $ 70.000 / Sin descuento
- 1 <= tarifaBase < ∞ - Entrada: tarifaBase = $ 70.000, diasAntelacion = 50, edad = 17 - Salida: $ 56.000 / 20% de descuento
- -∞ < tarifaBase <= 0