atk4\data\tests\TypecastingTest::testTypeCustom1 PHP Method

testTypeCustom1() public method

public testTypeCustom1 ( )
    public function testTypeCustom1()
    {
        $a = ['types' => [['date' => '2013-02-20', 'datetime' => '2013-02-20 20:00:12', 'time' => '12:00:50', 'b1' => 'Y', 'b2' => 'N', 'integer' => '2940', 'money' => '8.20', 'float' => '8.202343', 'rot13' => 'uryyb jbeyq']]];
        $this->setDB($a);
        $db = new Persistence_SQL($this->db->connection);
        date_default_timezone_set('Asia/Seoul');
        $m = new Model($db, ['table' => 'types']);
        $m->addField('date', ['type' => 'date', 'dateTimeClass' => '\\atk4\\data\\tests\\MyDate']);
        $m->addField('datetime', ['type' => 'datetime', 'dateTimeClass' => '\\atk4\\data\\tests\\MyDateTime']);
        $m->addField('time', ['type' => 'time', 'dateTimeClass' => '\\atk4\\data\\tests\\MyTime']);
        $m->addField('b1', ['type' => 'boolean', 'enum' => ['N', 'Y']]);
        $m->addField('b2', ['type' => 'boolean', 'enum' => ['N', 'Y']]);
        $m->addField('money', ['type' => 'money']);
        $m->addField('float', ['type' => 'float']);
        $m->addField('integer', ['type' => 'integer']);
        $rot = function ($v) {
            return str_rot13($v);
        };
        $m->addField('rot13', ['typecast' => [$rot, $rot]]);
        $m->load(1);
        $this->assertSame('hello world', $m['rot13']);
        $this->assertSame('1', $m->id);
        $this->assertSame('1', $m['id']);
        $this->assertEquals('2013-02-21 05:00:12', (string) $m['datetime']);
        $this->assertEquals('2013-02-20', (string) $m['date']);
        $this->assertEquals('12:00:50', (string) $m['time']);
        $this->assertEquals(true, $m['b1']);
        $this->assertEquals(false, $m['b2']);
        $m->duplicate()->save()->delete(1);
        $a = ['types' => [2 => ['id' => '2', 'date' => '2013-02-20', 'datetime' => '2013-02-20 20:00:12', 'time' => '12:00:50', 'b1' => 'Y', 'b2' => 'N', 'integer' => '2940', 'money' => '8.20', 'float' => '8.202343', 'rot13' => 'uryyb jbeyq']]];
        $this->assertEquals($a, $this->getDB());
    }