-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtestsCamiones.wtest
77 lines (61 loc) · 2.34 KB
/
testsCamiones.wtest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import camiones.*
import deposito.*
import cosos.*
import errores.*
describe "Tests de Camiones" {
const optimus = new Camion(cargaMaxima = 1000)
const bulto = new Bulto(pesoPallet = 70,
caja = new Caja(peso = 12, elemento="ketchup"),
cantidadCajas = 50)
const caja = new Caja(peso = 10, elemento="ketchup")
const bidon = new Bidon(litros = 200, liquido = new Liquido(densidad=0.8, nombre="aceite"))
const ultraMagnus = new Camion(cargaMaxima = 1000)
const cybertron = new Deposito(camiones = #{optimus, ultraMagnus})
method initialize() {
optimus.cargar(bulto)
optimus.cargar(caja)
optimus.cargar(bidon)
ultraMagnus.cargar(bulto)
ultraMagnus.cargar(caja)
ultraMagnus.cargar(caja)
ultraMagnus.cargar(caja)
ultraMagnus.cargar(caja)
}
test "Test carga total de Camion como viene del enunciado" {
assert.equals(840, optimus.cargaActual())
}
test "Camion puede cargar una caja de 160kg" {
assert.that(optimus.puedeAceptar( new Caja(peso = 160, elemento="ketchup") ))
}
test "Camion NO puede cargar una caja de 161kg" {
assert.notThat(optimus.puedeAceptar( new Caja(peso = 161, elemento="ketchup") ))
}
test "Ultra Magnus solo lleva un elemento y es KETCHUP" {
assert.equals(#{"ketchup"}, ultraMagnus.elementosCargados())
}
test "Deposito Cybertron con Optimus y Ultra Magnus, ambos llevan ketchup" {
assert.equals(#{optimus, ultraMagnus},
cybertron.camionesCargando("ketchup"))
}
test "Deposito Cybertron solo Optimus lleva aceite" {
assert.equals(#{optimus},
cybertron.camionesCargando("aceite"))
}
test "Elemento comun entre Optimus y su hermano Ultra Magnus es Ketchup" {
assert.equals(#{"ketchup"}, ultraMagnus.elementosCompartidos(optimus))
}
test "El coso más liviano de Optimus es la caja de 10kg" {
assert.equals(caja, optimus.cosoMasLiviano())
}
}
describe "Estados de Camión" {
const optimus = new Camion(cargaMaxima = 1000)
test "Optimus, da error al salir de reparación, estando disponible" {
assert.throwsExceptionLike(
new NoEstaEnReparacionException(message = "Estado incorrecto!"),
{ optimus.salirDeReparacion() } )
}
test "Optimus entra en reparación sin lanzar error, estando disponible" {
assert.doesNotThrowException({ optimus.entrarEnReparacion() })
}
}