Пример #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);
     }
 }
Пример #2
0
 /**
  * @covers Database::insert
  * @covers Database::selectOne
  */
 public function testInsert()
 {
     $this->assertEquals(1, $this->db->insert('test', array('name' => 'Other test')));
     $this->assertEquals(4, $this->db->lastInsertId('test', 'id'));
     $r1 = $this->db->selectOne('*', 'test', array('id' => 4));
     $this->assertEquals('Other test', $r1['name']);
     $this->assertEquals(array('id', 'name'), array_keys($r1));
     //Errors test
     $this->assertFalse(LoggerApp::hasError(), LoggerApp::getLastError());
     $this->assertEquals(0, $this->db->insert('test', array('name' => 'Other test', 'id' => 1)));
     $this->assertTrue(LoggerApp::hasError(), 'Não gerou o erro esperado');
     LoggerApp::clear();
     $this->assertEquals(0, $this->db->insert('testinvalid', array('name' => 'Other test', 'xyz' => 1)));
     $this->assertTrue(LoggerApp::hasError(), 'Não gerou o erro esperado');
 }
Пример #3
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;
             }
         }
     }
 }
Пример #4
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());
 }