Beispiel #1
0
 /**
  * Find object by primary key using raw SQL to go fast.
  * Bypass doSelect() and the object formatter by using generated code.
  *
  * @param     mixed $key Primary key to use for the query
  * @param     PropelPDO $con A connection object
  *
  * @return                 Property A model object, or null if the key is not found
  * @throws PropelException
  */
 protected function findPkSimple($key, $con)
 {
     $sql = 'SELECT `id`, `account_id`, `name`, `label`, `description`, `type`, `default_value`, `fixed` FROM `property` WHERE `id` = :p0';
     try {
         $stmt = $con->prepare($sql);
         $stmt->bindValue(':p0', $key, PDO::PARAM_INT);
         $stmt->execute();
     } catch (Exception $e) {
         Propel::log($e->getMessage(), Propel::LOG_ERR);
         throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), $e);
     }
     $obj = null;
     if ($row = $stmt->fetch(PDO::FETCH_NUM)) {
         $obj = new Property();
         $obj->hydrate($row);
         PropertyPeer::addInstanceToPool($obj, (string) $key);
     }
     $stmt->closeCursor();
     return $obj;
 }
Beispiel #2
0
<?php

include dirname(__FILE__) . '/../../bootstrap/Doctrine.php';
$t = new lime_test(7, new lime_output_color());
include dirname(__FILE__) . '/../../testTools.php';
// begin testing
$t->comment('Property class test');
$p = new Property();
$p->hydrate(array('keey' => 'testKey', 'value' => '{"a":1,"b":"geo"}'));
$t->comment('getRawValue()');
$t->is($p->getRawValue(), $p->rawGet('value'), 'getRawValue is really raw');
$t->comment('->getValue()');
$t->is($p->getValue(), array('a' => 1, 'b' => 'geo'), 'json conversion works');
$p->hydrate(array('value' => '{"a":1,"b":"g€e\'ñ"}'));
$t->is($p->getValue(), array('a' => 1, 'b' => "g€e'ñ"), 'json works with weird chars');
$p->hydrate(array('value' => '{"abcd ñep\\"ab\\"":1}'));
$t->is($p->getValue(), array('abcd ñep"ab"' => 1), 'Special chars untouched');
$t->comment('->setValue()');
$arr = array('a' => 1, 'b' => 2);
$p->setValue($arr);
$t->is($p->getValue(), $arr, 'json conversion works fine both ways');
$t->comment('test that changing the currency_decimals property changes the view');
PropertyTable::set('currency_decimals', 2);
$test_invoice->setAmounts();
$t->is($test_invoice->getGrossAmount(), 238.35, 'checking 2 decimals');
PropertyTable::set('currency_decimals', 3);
$test_invoice->setAmounts();
$t->is($test_invoice->getGrossAmount(), 238.354, 'checking 3 decimals');
PropertyTable::set('currency_decimals', 2);