public function testCustomType() { $mapper = \Amiss\Sql\Factory::createMapper(); $mapper->addTypeHandler(new TestCustomFieldTypeHandler(), 'foo'); $deps = \Amiss\Test\Factory::managerNoteModelCustom(' /** :amiss = true; */ class TestCustomFieldTypeModel { /** :amiss = {"field": {"primary": true, "type": "autoinc" }}; */ public $testCustomFieldTypeRecordId; /** * :amiss = {"field": {"type": "foo bar"}}; */ public $yep1; } ', (object) ['mapper' => $mapper]); $class = $deps->classes['TestCustomFieldTypeModel']; $r = new $class(); $r->yep1 = 'foo'; $deps->manager->save($r); $r = $deps->manager->getById($class, 1); // this will have passed through the prepareValueForDb first, then // through the handleValueFromDb method $this->assertEquals('value-db-foo', $r->yep1); }
public function setUp() { parent::setUp(); $this->connector = new \Amiss\Test\Helper\TestConnector('mysql:xx'); $this->mapper = \Amiss\Sql\Factory::createMapper(); $this->manager = new \Amiss\Sql\Manager($this->connector, $this->mapper); $this->class = __NAMESPACE__ . '\\TestCreateWithCustomType'; }
public function setUp() { parent::setUp(); \Amiss\Sql\ActiveRecord::_reset(); $this->connector = new \Amiss\Test\Helper\TestConnector('mysql:xx'); $this->mapper = \Amiss\Sql\Factory::createMapper(array()); $this->manager = new \Amiss\Sql\Manager($this->connector, $this->mapper); \Amiss\Sql\ActiveRecord::setManager($this->manager); $this->class = __NAMESPACE__ . '\\TestCreateCustomTypeWithEmptyColumnTypeRecord'; }
public static function managerNoteDefault($deps = null) { if (!$deps) { $deps = (object) []; } $cf = new ConnectionFactory(\Amiss\Test\Helper\Env::instance()->getConnectionInfo()); if (!isset($deps->mapper) || !$deps->mapper) { $config = ['date' => ['dbTimeZone' => 'UTC', 'appTimeZone' => 'UTC']]; $deps->mapper = \Amiss\Sql\Factory::createMapper($config); } if (!isset($deps->connector) || !$deps->connector) { $deps->connector = $cf->getConnector(); } $deps->manager = \Amiss\Sql\Factory::createManager($deps->connector, $deps->mapper); $deps->_connectionFactory = $cf; return $deps; }