Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
autosquash committed Jan 9, 2024
1 parent 45fdad2 commit 91ec408
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 20 deletions.
16 changes: 16 additions & 0 deletions src/tests/test_presentador.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#include "../modelo/datos_nivel_para_modelo.h"
#include "../modelo/dominio.h"
#include "../modelo/estado_modelo.h"
#include "../modelo/modelo.h"
#include "../vista/enlace_vista.h"
#include "../vista/presentador.h"
#include "../vista/vista.h"
#include <gtest/gtest.h>
Expand Down Expand Up @@ -29,3 +32,16 @@ TEST(Presentador, ContadoresToPreparadasString) {
auto vista_preparadas = impl::contadores_to_preparadas(contadores);
ASSERT_EQ(vista_preparadas.at(TipoPizza::Margarita), "Margarita: 1");
}

TEST(Presentador, ObtenerActivacionBotonesSiPedidosEstaVacio) {
// No habria botones despachar al no haber pedidos
// que hagan referencia a ningun tipo de pizza
// Y cualquier boton encargar estaria activo al no haber
// demasiadas pizzas en el area de preparadas
DatosNivelParaModelo datos_nivel_para_modelo({});
EstadoModelo estado_modelo(datos_nivel_para_modelo);
const auto activacion_botones =
impl::obtener_activacion_botones(estado_modelo);
ASSERT_TRUE(activacion_botones.despachar.empty());
ASSERT_EQ(activacion_botones.encargar, true);
}
40 changes: 20 additions & 20 deletions src/vista/enlace_vista.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,27 @@ namespace {
}
}

ActivacionBotones obtener_activacion_botones( //
const EstadoModelo &estado_modelo
) {
const auto &control_pizzas = estado_modelo.control_pizzas;
// Activacion botones despachar
const modelo::PizzasAContadores &contadores = control_pizzas.contadores;
ActivacionBotones activacion_botones;
obtener_activacion_botones_dependiendo_de_si_hay_preparadas(
contadores, activacion_botones
);
} // namespace

// Activacion botones encargar
constexpr int maximo = modelo_info::MAXIMO_PIZZAS_EN_PREPARACION;
const int en_preparacion = estado_modelo.encargos.total();
assert(en_preparacion <= maximo);
const bool se_pueden_preparar_mas = en_preparacion < maximo;
activacion_botones.encargar = se_pueden_preparar_mas;
return activacion_botones;
}
ActivacionBotones impl::obtener_activacion_botones( //
const EstadoModelo &estado_modelo
) {
const auto &control_pizzas = estado_modelo.control_pizzas;
// Activacion botones despachar
const modelo::PizzasAContadores &contadores = control_pizzas.contadores;
ActivacionBotones activacion_botones;
obtener_activacion_botones_dependiendo_de_si_hay_preparadas(
contadores, activacion_botones
);

} // namespace
// Activacion botones encargar
constexpr int maximo = modelo_info::MAXIMO_PIZZAS_EN_PREPARACION;
const int en_preparacion = estado_modelo.encargos.total();
assert(en_preparacion <= maximo);
const bool se_pueden_preparar_mas = en_preparacion < maximo;
activacion_botones.encargar = se_pueden_preparar_mas;
return activacion_botones;
}

void EnlaceVista::on_cambio_a_fase_activa() const {
vista->mostrar_elementos_fase_activa();
Expand All @@ -60,7 +60,7 @@ void EnlaceVista::actualizarIU(
const sf::Time &tiempo_real_actual //
) {
const auto activacion_botones =
obtener_activacion_botones(estado.estado_modelo);
impl::obtener_activacion_botones(estado.estado_modelo);
vista->activar_botones_condicionalmente(activacion_botones);
vista->actualizarIU(target, estado, tiempo_real_actual);
}
8 changes: 8 additions & 0 deletions src/vista/enlace_vista.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,21 @@
#include <SFML/System/Time.hpp>
#include <memory>

struct ActivacionBotones;
struct Estado;
struct EstadoModelo;
struct Vista;

namespace sf {
class RenderTarget;
} // namespace sf

namespace impl {
ActivacionBotones obtener_activacion_botones( //
const EstadoModelo &estado_modelo
);
}

/* Debe ser un intermediario entre el modelo y la vista */
class EnlaceVista {
// TODO: hacer vista privado
Expand Down

0 comments on commit 91ec408

Please sign in to comment.