コード例 #1
0
    function testSelectPattern()
    {
        $doc = '<?xml version="1.0"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="product_test" primarykey="id" />
   </datasources>
   <record>
      <property name="id"   fieldname="id" datatype="autoincrement"/>
      <property name="name" fieldname="name" datatype="string"  required="true" selectpattern="%s"/>
      <property name="price" fieldname="price" datatype="float"/>
   </record>
</dao>';
        $parser = new jDaoParser($this->_selector);
        $parser->parse(simplexml_load_string($doc), $this->_tools);
        $generator = new testMysqlDaoGenerator($this->_selector, $this->_tools, $parser);
        $result = $generator->GetSelectClause();
        $this->assertEqualOrDiff('SELECT `product_test`.`id`, `product_test`.`name`, `product_test`.`price`', $result);
        $doc = '<?xml version="1.0"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="product_test" primarykey="id" />
   </datasources>
   <record>
      <property name="id"   fieldname="id" datatype="autoincrement"/>
      <property name="name" fieldname="name" datatype="string"  required="true" selectpattern="TOUPPER(%s)"/>
      <property name="price" fieldname="price" datatype="float"/>
   </record>
</dao>';
        $parser = new jDaoParser($this->_selector);
        $parser->parse(simplexml_load_string($doc), $this->_tools);
        $generator = new testMysqlDaoGenerator($this->_selector, $this->_tools, $parser);
        $result = $generator->GetSelectClause();
        $this->assertEqualOrDiff('SELECT `product_test`.`id`, TOUPPER(`product_test`.`name`) as `name`, `product_test`.`price`', $result);
        $doc = '<?xml version="1.0"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="p" realname="product_test" primarykey="id" />
   </datasources>
   <record>
      <property name="id"   fieldname="id" datatype="autoincrement"/>
      <property name="name" fieldname="name" datatype="string"  required="true" selectpattern="TOUPPER(%s)"/>
      <property name="price" fieldname="price" datatype="float"/>
   </record>
</dao>';
        $parser = new jDaoParser($this->_selector);
        $parser->parse(simplexml_load_string($doc), $this->_tools);
        $generator = new testMysqlDaoGenerator($this->_selector, $this->_tools, $parser);
        $result = $generator->GetSelectClause();
        $this->assertEqualOrDiff('SELECT `p`.`id`, TOUPPER(`p`.`name`) as `name`, `p`.`price`', $result);
        $doc = '<?xml version="1.0"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="product_test" primarykey="id" />
   </datasources>
   <record>
      <property name="id"   fieldname="id" datatype="autoincrement"/>
      <property name="name" fieldname="name" datatype="string"  required="true" selectpattern="TOUPPER(name)"/>
      <property name="price" fieldname="price" datatype="float"/>
   </record>
</dao>';
        $parser = new jDaoParser($this->_selector);
        $parser->parse(simplexml_load_string($doc), $this->_tools);
        $generator = new testMysqlDaoGenerator($this->_selector, $this->_tools, $parser);
        $result = $generator->GetSelectClause();
        $this->assertEqualOrDiff('SELECT `product_test`.`id`, TOUPPER(name) as `name`, `product_test`.`price`', $result);
        $doc = '<?xml version="1.0"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="product_test" primarykey="id" />
   </datasources>
   <record>
      <property name="id"   fieldname="id" datatype="autoincrement"/>
      <property name="name" fieldname="name" datatype="string"  required="true" selectpattern="CONCAT(name,\' \',price)"/>
      <property name="price" fieldname="price" datatype="float"/>
   </record>
</dao>';
        $parser = new jDaoParser($this->_selector);
        $parser->parse(simplexml_load_string($doc), $this->_tools);
        $generator = new testMysqlDaoGenerator($this->_selector, $this->_tools, $parser);
        $result = $generator->GetSelectClause();
        $this->assertEqualOrDiff('SELECT `product_test`.`id`, CONCAT(name,\\\' \\\',price) as `name`, `product_test`.`price`', $result);
    }
コード例 #2
0
    function testInsertQuery()
    {
        $doc = '<?xml version="1.0"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="product_test" primarykey="code" />
   </datasources>
   <record>
      <property name="code" fieldname="code" datatype="string" insertpattern="now()"/>
      <property name="name" fieldname="name" datatype="string" />
      <property name="price" fieldname="price" datatype="float"/>
   </record>
</dao>';
        $parser = new jDaoParser($this->_selector);
        $parser->parse(simplexml_load_string($doc), $this->_tools);
        $generator = new testMysqlDaoGenerator($this->_selector, $this->_tools, $parser);
        $fieldList = $generator->GetPropertiesBy('PrimaryTable');
        list($fields, $values) = $generator->PrepareValues($fieldList, 'insertPattern', 'record->');
        $this->assertEqual("now()", $values['code']);
        $doc = '<?xml version="1.0"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="product_test" primarykey="code" />
   </datasources>
   <record>
      <property name="code" fieldname="code" datatype="string" insertpattern="now(%s)"/>
      <property name="name" fieldname="name" datatype="string" />
      <property name="price" fieldname="price" datatype="float"/>
   </record>
</dao>';
        $parser = new jDaoParser($this->_selector);
        $parser->parse(simplexml_load_string($doc), $this->_tools);
        $generator = new testMysqlDaoGenerator($this->_selector, $this->_tools, $parser);
        $fieldList = $generator->GetPropertiesBy('PrimaryTable');
        list($fields, $values) = $generator->PrepareValues($fieldList, 'insertPattern', 'record->');
        $this->assertEqual('now(\'.($record->code === null ? \'NULL\' : $this->_conn->quote2($record->code,false)).\')', $values['code']);
    }