public function testGetInsertingData()
 {
     $article = new Article();
     $article->setCreatedAt(time());
     $article->setTitle('test');
     $article->setText('test text');
     $data = $this->helper->getInsertingData($article);
     $this->assertCount(3, $data);
     $this->assertArrayHasKey('created_at', $data);
     $this->assertArrayHasKey('title', $data);
     $this->assertArrayHasKey('text', $data);
 }
 /**
  * Saves entity to database
  *
  * @param $entity - object
  * 
  * @return boolean
  */
 public function save($entity)
 {
     $entityName = $this->dbHelper->getEntityName($entity);
     $tableName = $this->dbHelper->getUnderscoreName($entityName);
     $data = $this->dbHelper->getInsertingData($entity);
     $query = "INSERT INTO `{$tableName}` (%s) VALUES (%s)";
     $values = [];
     $fields = '';
     $subs = '';
     foreach ($data as $field => $value) {
         $subs .= "?, ";
         $fields .= "`{$field}`, ";
         $values[] = $value;
     }
     $subs = substr($subs, 0, strlen($subs) - 2);
     $fields = substr($fields, 0, strlen($fields) - 2);
     try {
         $stmt = $this->pdo->prepare(sprintf($query, $fields, $subs));
         for ($i = 0; $i < count($values); $i++) {
             $type = $this->dbHelper->getValueType($values[$i]);
             $stmt->bindParam($i + 1, $values[$i], $type);
         }
         $stmt->execute();
     } catch (\Exception $e) {
         die($e->getMessage());
     }
     return true;
 }