Esempio n. 1
0
 public function testDatabase()
 {
     LoggerApp::clear();
     $this->assertFalse(LoggerApp::hasError(), LoggerApp::getLastError());
     $defaultDb = Factory::database();
     $this->assertNotNull($defaultDb);
     $this->assertFalse(LoggerApp::hasError(), LoggerApp::getLastError());
     $types = array('pgsql' => 'MyFrameWork\\DataBase\\PgDataBase', 'mysql' => 'MyFrameWork\\DataBase\\MyDataBase');
     $this->assertTrue(is_a($defaultDb, $types[DATABASE_DRIVER]), 'Invalid class');
     $this->assertEquals($defaultDb, Factory::database());
     $this->assertSame($defaultDb, Factory::database());
     $this->assertNull(Factory::database(array('dbname' => 'testxyz')));
     $this->assertTrue(LoggerApp::hasError(), 'Conexão inválida não gerou um erro');
     $this->assertNull(Factory::database(array('driver' => 'testxyz')));
     $this->assertNull(Factory::database(array('driver' => 'testxyz', 'dbname' => 'test')));
     $this->assertNull(Factory::database(array('driver' => 'testxyz', 'dbname' => 'test', 'user' => 'test')));
     foreach ($types as $driver => $database) {
         $db = Factory::database(array('driver' => $driver, 'dbname' => 'xyz', 'user' => 'xyz'));
         $this->assertNull($db);
     }
 }
Esempio n. 2
0
 /**
  * testar a conexao com o banco antes de realizar a instalação
  */
 public function _testaconexao()
 {
     \MyFrameWork\Memory\MemoryPage::addCss("css/page/painel-index.css");
     //MemoryPage::add('debug', true);
     $porta = $_POST["driver"] == "pgsql" ? '5432' : '3306';
     $params = array("driver" => $_POST["driver"], "dbname" => $_POST["banco"], "port" => $porta, "host" => $_POST["host"], "user" => $_POST["usuario"], "password" => $_POST["senha"]);
     $conectado = false;
     $db = Factory::database($params);
     /*@var $db \MyFrameWork\DataBase\PgDataBase */
     if (is_object($db)) {
         $conectado = true;
         $status = $db->getAttribute(\PDO::ATTR_CONNECTION_STATUS);
     } else {
         $status = \MyFrameWork\LoggerApp::getLastError();
         $conectado = false;
     }
     $this->pagedata["conectado"] = $conectado;
     $this->pagedata["status_conexao"] = mb_convert_encoding($status, "utf-8");
     $this->filename = "painel_index";
     return true;
 }
Esempio n. 3
0
 /**
  * @covers DataBase::delete
  * @covers Database::select
  * @covers Database::selectOne
  */
 public function testDelete()
 {
     $this->db->select('name', 'test');
     $this->assertEquals(3, $this->db->rowCount());
     $this->assertEquals(1, $this->db->delete('test', array('id' => 1)));
     $this->assertEmpty($this->db->selectOne('name', 'test', array('id' => 1)));
     $this->db->select('name', 'test');
     $this->assertEquals(2, $this->db->rowCount());
     $result = $this->db->select('*', 'test');
     $this->assertEquals(0, $this->db->delete('test', array('id' => 0)));
     $this->assertFalse(LoggerApp::hasError(), LoggerApp::getLastError());
     $this->assertEquals(0, $this->db->delete('testinvalid', array('xyz' => 1)));
     $this->assertTrue(LoggerApp::hasError(), 'Não gerou o erro esperado');
     //Update without where
     $this->assertEquals(0, $this->db->delete('test', array()));
 }
Esempio n. 4
0
 /**
  * Realiza a limpeza dos parâmetros eliminando os valores inválidos e setando os valores default
  */
 protected function cleanParameters()
 {
     $log = Factory::log();
     if (self::isPOSTRequest()) {
         $methods = array(RequestType::POST, RequestType::GET);
     } else {
         $methods = array(RequestType::GET);
     }
     foreach ($methods as $method) {
         foreach ($this->parametersMeta[$method] as $itemname => $itemdata) {
             if (isset($this->parametersValue[$itemname])) {
                 $log->info('Não é possível receber o parâmetro: ' . $itemname . ' por POST/GET');
                 continue;
             }
             $received = filter_input(RequestType::getInternalInput($method), $itemname, FILTER_UNSAFE_RAW);
             $log->debug('$_' . $method . '["' . $itemname . '"]: ' . var_export($received, true));
             $type = Factory::datatype($itemdata['type']);
             if ($type->isExpectedToBeArray()) {
                 $received = filter_input_array(RequestType::getInternalInput($method), array($itemname => array('flags' => FILTER_REQUIRE_ARRAY)));
             }
             $cleaned = $type->sanitize($received, $itemdata['params']);
             //faz os filtros, verifica os tipos e tals
             if (!$type->isValid($cleaned, $itemdata['params'])) {
                 //chama os metodos isValid* da biblioteca respect/Validator
                 $this->parametersMeta[$method][$itemname]['error'] = LoggerApp::getLastError();
                 LoggerApp::clear();
                 continue;
             }
             if (is_bool($cleaned)) {
                 $this->parametersValue[$itemname] = var_export($cleaned, true);
             } else {
                 $this->parametersValue[$itemname] = $cleaned;
             }
         }
     }
 }
Esempio n. 5
0
 /**
  * @covers LoggerApp::clear
  */
 public function testClear()
 {
     $this->assertEmpty(LoggerApp::getErrors());
     Factory::log()->error('error1');
     $this->assertNotEmpty(LoggerApp::getErrors());
     Factory::log()->warn('warn1');
     $this->assertNotEmpty(LoggerApp::getErrors());
     LoggerApp::clear('error');
     $this->assertNotEmpty(LoggerApp::getErrors());
     $this->assertNotEmpty(LoggerApp::getErrors('warn'));
     $this->assertEmpty(LoggerApp::getErrors('error'));
     Factory::log()->error('error1');
     LoggerApp::clear('xyz');
     $this->assertNotEmpty(LoggerApp::getErrors('error'));
     LoggerApp::clear();
     $this->assertEmpty(LoggerApp::getErrors('error'));
     $this->assertEmpty(LoggerApp::getErrors('warn'));
     $this->assertEmpty(LoggerApp::getErrors());
 }