Baixe o app para aproveitar ainda mais
Prévia do material em texto
1/2 CENTRO UNIVERSITÁRIO DA GRANDE DOURADOS Curso: Engenharia de Software Semestre: 7º Disciplina: Projeto Integrador Web ATIVIDADE AVALIATIVA ESPECIAL (AAE) 2 - referente as aulas 5 a 8 Professor: Felipe Pereira Perez ORIENTAÇÕES Cada Atividade respondida de forma correta terá até 5 pontos por anotação correta Estudo de caso: Controle de Reserva de Hotel Você foi contratado para desenvolver um sistema para uma rede hoteleira. · O sistema deverá permitir ao funcionário do hotel: · Criar uma reserva; · Deletar uma reserva; · Modificar uma reserva; · Fazer o check-in; · Fazer o check-out. · O sistema deverá permitir ao cliente do hotel: · Criar uma reserva; · Deletar uma reserva; · Modificar uma reserva; · Verificar a disponibilidade de vagas. · Uma reserva deverá ter as informações dos hóspedes que ficarão hospedados. · O sistema deverá informar sobre a disponibilidade de vagas. Levando em consideração essas informações e seguindo a especificação e projeto que você fez na P1 responda o que segue: 1º) Seguindo o modelo MVC construa o Model da classe do Cliente do seu sistema de reservas. (Insira o código no quadro abaixo) <?php namespace App\model; require_once "Connection.php"; class Cliente { private $nome; private $cpf; private $email; private $senha; private $telefone; private $connection; function __construct($nome = null, $cpf = null, $email = null, $senha = null, $telefone = null) { $this->setNome($nome); $this->setCpf($cpf); $this->setEmail($email); $this->setSenha($senha); $this->setTelefone($telefone); $this->connection = Connection::getInstance(); } //implementar métodos, novos métods em relação a P1 public function create(){} public function update($cpf){} public function read($cpf = null){return array();} public function delete($cpf){} public function getNome() { return $this->nome; } public function setNome($nome) { $this->nome = $nome; return $this; } public function getCpf() { return $this->cpf; } public function setCpf($cpf) { $this->cpf = $cpf; return $this; } public function getEmail() { return $this->email; } public function setEmail($email) { $this->email = $email; return $this; } public function getSenha() { return $this->senha; } public function setSenha($senha) { $this->senha = $senha; return $this; } public function getTelefone() { return $this->telefone; } public function setTelefone($telefone) { $this->telefone = $telefone; return $this; } } 2º) Construa o arquivo de teste para a classe Cliente desenvolvida na questão anterior. (Insira o código no quadro abaixo) <?php use PHPUnit\Framework\TestCase; use App\model\Cliente; class ClienteTest extends TestCase { public static function setUpBeforeClass(): void { self::deleteTestCliente(); } public static function tearDownAfterClass(): void { self::deleteTestCliente(); } private static function deleteTestCliente() { $cpf = null; $cliente = new Cliente(); $clientes = $cliente->read(); foreach ($clientes as $key => $value) { if ($value["cpf"] == "cpf"){ $cliente->delete($cpf); } } } public function testCRUDUser() { //Nesse teste é verificado se a inserção, atualização e remoção do usuário no banco está funcionando corretamente. //Para poder ser atualizado ou removido o usuário precisa estar devidamente criado no banco de dados, não somente instanciado. $cliente = new Cliente("Eric", "123.456.789-15", "eric@gmail.com", "123456", "(67) 99938-4499"); $this->assertFalse($cliente->update($cliente->getCpf())); $this->assertFalse($cliente->delete($cliente->getCpf())); $this->assertTrue($cliente->create()); $this->assertTrue($cliente->update($cliente->getCpf())); //Dois clientes não podem ter o mesmo cpf. $newcliente = new Cliente("Eric", "123.456.789-15", "eric@gmail.com", "123456", "(67) 99938-4499"); $this->assertFalse($newcliente->create()); //Testes para verificar o retorno da função de leitura, quando um cpf é passado só pode retornar um registro. $this->assertEquals(1, count($cliente->read($cliente->getCpf()))); //Quando um cpf não é passado para a função de leitura ele deve ter pelo menos um registro $this->assertFalse(count($cliente->read()) < 1); $this->assertTrue($cliente->delete($cliente->getCpf())); } }
Compartilhar