Skip to content

Commit

Permalink
tests listos
Browse files Browse the repository at this point in the history
  • Loading branch information
FeliQI committed Nov 27, 2024
1 parent 6cb047e commit fe3a5c1
Show file tree
Hide file tree
Showing 8 changed files with 271 additions and 48 deletions.
5 changes: 4 additions & 1 deletion adminClientes.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ import wollok.game.*
object adminCliente {
const factories = #{factoryNormal, factoryPaciente, factoryQuisquilloso}
var hayCliente = false
const ubicacion = restaurante1
var ubicacion = restaurante1

method ubicacion(_ubicacion) {
ubicacion = _ubicacion
}

method crearCliente() {
const nuevoCliente = self.clienteRandom()
Expand Down
68 changes: 42 additions & 26 deletions chefsTest.wtest
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,41 @@ import objetosParaTests.*
import wollok.game.*

describe "chefs test" {
test "remy puede moverse porque no hay ningun mueble en el medio y se mueve" {
test "remy puede caminar y correr porque no hay ningun mueble en el medio y se mueve" {
remy.mover(abajo)
assert.equals(game.at(0,3), remy.position())
assert.equals(game.at(95,48), remy.position())

remy.mover(derecha)
assert.equals(game.at(1,3), remy.position())
assert.equals(game.at(96,48), remy.position())

remy.cambiarModo()

remy.mover(abajo)
assert.equals(game.at(96,43), remy.position())

remy.mover(derecha)
assert.equals(game.at(101,43), remy.position())
}

test "remy no puede moverse porque hay un mueble arriba suyo y a su izquiera está el límite del mapa" {
remy.position(game.at(2,4))
assert.that(restaurantest.hayMuebleAqui(game.at(2,5))) //esto es arriba de remy
test "remy no puede caminar ni correr porque hay un mueble arriba suyo y a su izquiera está el límite del mapa" {
remy.position(game.at(2,53))
assert.that(restaurantest.hayMuebleAqui(game.at(2,54))) //esto es arriba de remy

assert.throwsException({ remy.moverse(arriba) })
assert.throwsException({ remy.moverse(izquierda) })

remy.cambiarModo()

assert.throwsException({ remy.moverse(arriba) })
assert.throwsException({ remy.moverse(izquierda) })
}

test "remy agarra un ingrediente (tomate) que esta abajo suyo en donde mira, en la mesada4" {
remy.mover(abajo)
remy.position(game.at(6,34))
remy.mover(izquierda)
assert.that(remy.tengoBandejaVacia())
assert.equals(abajo, remy.orientacion()) //a donde esta "mirando"
assert.equals(game.at(0,2), remy.dondeApunta())
assert.equals(izquierda, remy.orientacion()) //a donde esta "mirando"
assert.equals(game.at(4,34), remy.dondeApunta())
assert.equals(mesada4, restaurantest.muebleAqui(remy.dondeApunta()))
remy.interactuar()

Expand All @@ -37,17 +51,18 @@ describe "chefs test" {
assert.that(remy.tengoBandejaVacia())

assert.equals(derecha, remy.orientacion()) //a donde esta "mirando"
assert.equals(game.at(1,4), remy.position())
assert.equals(game.at(2,4), remy.dondeApunta())
assert.equals(game.at(96,49), remy.position())
assert.equals(game.at(97,49), remy.dondeApunta())

assert.notThat(restaurantest.hayMuebleAqui(remy.dondeApunta()))
assert.that(remy.tengoBandejaVacia())

}

test "remy no puede agarrar un ingrediente porque tiene algo en las manos ya" {
remy.bandeja(queso)
remy.mover(abajo)
remy.position(game.at(6,34))
remy.bandeja(queso)
remy.mover(izquierda)

assert.that(restaurantest.hayMuebleAqui(remy.dondeApunta()))
assert.equals(tomate, restaurantest.muebleAqui(remy.dondeApunta()).contenido())
Expand All @@ -60,14 +75,13 @@ describe "chefs test" {
}

test "remy puede soltar ingrediente porque hay una mesada en donde esta mirando" {
remy.position( game.at(5,4) )
remy.bandeja(tomate)
assert.notThat(remy.tengoBandejaVacia())
remy.mover(abajo)
remy.position( game.at(6,31) )
remy.bandeja(tomate)
assert.notThat(remy.tengoBandejaVacia())
remy.mover(izquierda)

assert.that(restaurantest.hayMuebleAqui(remy.dondeApunta()))
assert.that(restaurantest.muebleAqui(remy.dondeApunta()).estoyLibre())
assert.equals(bandejaVacia, restaurantest.muebleAqui(remy.dondeApunta()).contenido()) //-> igual que en el tomate
assert.that(restaurantest.hayMuebleAqui(remy.dondeApunta()))
assert.that(restaurantest.muebleAqui(remy.dondeApunta()).estoyLibre())

remy.interactuar()

Expand All @@ -87,7 +101,8 @@ describe "chefs test" {
}

test "remy puede procesar el tomate porque hay una mesada allí" {
remy.mover(abajo)
remy.position( game.at(6,34) )
remy.mover(izquierda)

assert.equals(tomate, restaurantest.muebleAqui(remy.dondeApunta()).contenido())
assert.notThat(restaurantest.muebleAqui(remy.dondeApunta()).contenido().fueProcesado())
Expand All @@ -98,7 +113,8 @@ describe "chefs test" {
}

test "remy no puede procesar porque no hay nada que procesar en el mueble" {
remy.position(game.at(5,3))
remy.position(game.at(6,31))
remy.mover(izquierda)
assert.that(restaurantest.hayMuebleAqui(remy.dondeApunta()))
assert.that(restaurantest.muebleAqui(remy.dondeApunta()).estoyLibre())

Expand All @@ -107,8 +123,8 @@ describe "chefs test" {
}

test "remi va a tirar el queso que agarro a la basura y se puede porque hay un tacho" {
remy.position(game.at(3,3))
remy.mover(arriba)
remy.position(game.at(6,28))
remy.mover(izquierda)
remy.bandeja(queso)
game.addVisualCharacter(queso)

Expand All @@ -123,13 +139,13 @@ describe "chefs test" {
game.addVisual(masa)
game.addVisual(queso)

remy.position( game.at(5,3) )
remy.position( game.at(6,30) )
masa.serProcesado() //es importante primero procesar todos los ingredientes para poder integrarlos todos :)
queso.serProcesado()

masa.recibirIngrediente(queso)
remy.bandeja(masa)
remy.mover(arriba)
remy.mover(izquierda)

assert.notThat(remy.tengoBandejaVacia())
assert.equals(horno, restaurantest.muebleAqui(remy.dondeApunta()))
Expand Down
28 changes: 23 additions & 5 deletions clientes.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,19 @@ class Cliente inherits Persona(position = game.at(88,20)){
var pedidoQueEspero = []
var emocion = neutral
var nivelDePaciencia = null
var manos = bandejaVacia
var property manos = bandejaVacia

method emocion() {
return emocion
}

method pedidoQueEspero(_pedidoQueEspero) {
pedidoQueEspero = _pedidoQueEspero
}

method ubicacion(_ubicacion) {
ubicacion = _ubicacion
}

method hacerPedido() {
self.generarPedido()
Expand Down Expand Up @@ -59,10 +71,16 @@ class Cliente inherits Persona(position = game.at(88,20)){
game.removeTickEvent(self)
manos = pizza
game.removeVisual(manos)
manos.ocultarIngredientes()
self.ocultarIngredientesDisponibles()
game.schedule(1000, {self.reaccionarAPedido()})
}

method ocultarIngredientesDisponibles() {
if(self.esUnaPizza()) {
manos.ocultarIngredientes()
}
}

method ingredienteRandom() {
return [ingredienteAceituna, ingredienteQueso, ingredienteAtun, ingredienteHongo].anyOne()
}
Expand Down Expand Up @@ -102,7 +120,7 @@ class Cliente inherits Persona(position = game.at(88,20)){
method reaccionMala()

method plataAPagarPorPedido() {
return manos.precio() * nivelDePaciencia / 100
return manos.precio()
}

method pagarPedido() {
Expand All @@ -113,7 +131,7 @@ class Cliente inherits Persona(position = game.at(88,20)){

}

class ClienteNormal inherits Cliente(nivelDePaciencia = 75000, image = "cliente_normal.png", name = "cliente_normal"){
class ClienteNormal inherits Cliente(nivelDePaciencia = 90000, image = "cliente_normal.png", name = "cliente_normal"){
const disponibilidadParaTip = 50

override method reaccionBuena(){
Expand Down Expand Up @@ -148,7 +166,7 @@ class ClientePaciente inherits ClienteNormal(nivelDePaciencia = 120000, image =
}
}

class ClienteQuisquilloso inherits Cliente(nivelDePaciencia = 50000, image = "cliente_quisquilloso.png", name = "cliente_quisquilloso"){
class ClienteQuisquilloso inherits Cliente(nivelDePaciencia = 90000, image = "cliente_quisquilloso.png", name = "cliente_quisquilloso"){

override method reaccionBuena(){
emocion = neutral
Expand Down
Loading

0 comments on commit fe3a5c1

Please sign in to comment.