Exemplo n.º 1
0
 /**
  * Sets up the fixture, for example, opens a network connection.
  * This method is called before a test is executed.
  */
 protected function setUp()
 {
     $this->raw = array(array("id" => 1, "name" => "lazer"));
     $class = "\\flowcode\\demo\\domain\\Weapon";
     $mappingFilePath = dirname(__FILE__) . "/../ceibo-mapping-test.xml";
     $mapping = simplexml_load_file($mappingFilePath);
     $mapper = MapperBuilder::buildFromName($mapping, "weapon");
     $this->object = new Collection($class, $this->raw, $mapper);
 }
Exemplo n.º 2
0
 public function testBuildFromName_withTypes_testOk()
 {
     $instance = new Weapon(1, "lazer");
     $mapping = simplexml_load_file($this->mappingFilePath);
     $mapper = $this->object->buildFromName($mapping, "weapon");
     $raw = array("id" => 1, "name" => "lazer");
     $this->assertEquals(get_class($instance), $mapper->getClass());
     $this->assertEquals("weapon", $mapper->getName());
     $property = $mapper->getProperty("Name");
     $this->assertNotNull($mapper->createObject($raw));
     $this->assertEquals("string", $property->getType());
 }
Exemplo n.º 3
0
 public function populateEntity($entity, $values, $mapper = null, $relationColumn = null)
 {
     if (is_null($mapper)) {
         $mapper = MapperBuilder::buildFromMapping($this->mapping, get_class($entity));
     }
     foreach ($values as $key => $value) {
         if ($mapper->getNameForColumn($key) != NULL) {
             $method = "set" . $mapper->getNameForColumn($key);
             $entity->{$method}($value);
         }
     }
 }
Exemplo n.º 4
0
 /**
  * Finds entitys by its generic filter defined in the configured mapping.
  * @param type $name
  * @param type $filter
  * @param type $page
  * @param type $orderColumn
  * @param type $orderType
  * @return Pager
  */
 public function findByGenericFilter($name, $filter = null, $page = 1, $orderColumn = null, $orderType = null)
 {
     $this->load();
     $mapper = MapperBuilder::buildFromName($this->mapping, $name);
     $selectQuery = "";
     $whereQuery = "";
     $orderQuery = "";
     $selectQuery .= "SELECT * FROM `" . $mapper->getTable() . "` ";
     $filterList = array();
     if (!is_null($filter)) {
         $filterList = explode(" ", $filter);
     }
     if (!is_null($filter)) {
         $whereQuery .= " WHERE 1=2 ";
         foreach ($filterList as $searchedWord) {
             foreach ($mapper->getFilter("generic")->getColumns() as $filteredColumn) {
                 $whereQuery .= " OR {$filteredColumn} LIKE '%" . $searchedWord . "%'";
             }
         }
     } else {
         $whereQuery .= " WHERE 1 ";
     }
     if (!is_null($orderColumn)) {
         $orderQuery .= "ORDER BY {$orderColumn} ";
         if (!is_null($orderType)) {
             $orderQuery .= "{$orderType}";
         } else {
             $orderQuery .= "ASC";
         }
     }
     $from = ($page - 1) * $mapper->getFilter("generic")->getItemsPerPage();
     $pageQuery = " LIMIT {$from} , " . $mapper->getFilter("generic")->getItemsPerPage();
     $query = $selectQuery . $whereQuery . $orderQuery . $pageQuery;
     $result = $this->getDataSource()->query($query);
     if ($result) {
         $collection = new Collection($mapper->getClass(), $result, $mapper);
     } else {
         $collection = new Collection($mapper->getClass(), array(), $mapper);
     }
     $selectCountQuery = "SELECT count(*) as total FROM `" . $mapper->getTable() . "` ";
     $query = $selectCountQuery . $whereQuery;
     $result = $this->getDataSource()->query($query);
     $itemCount = $result[0]["total"];
     $pager = new Pager($collection, $itemCount, $mapper->getFilter("generic")->getItemsPerPage(), $page);
     return $pager;
 }
Exemplo n.º 5
0
 public static function getInsertRelation($entity, $relation)
 {
     $relQuery = "";
     $getid = "getId";
     if ($relation->getCardinality() == Relation::$manyToMany) {
         $m = "get" . $relation->getName();
         foreach ($entity->{$m}() as $rel) {
             $relQuery .= "INSERT INTO " . $relation->getTable() . " (" . $relation->getLocalColumn() . ", " . $relation->getForeignColumn() . ") ";
             $relQuery .= "VALUES ('" . $entity->{$getid}() . "', '" . $rel->{$getid}() . "');";
         }
     }
     if ($relation->getCardinality() == Relation::$oneToMany) {
         $relMapper = MapperBuilder::buildFromName($this->mapping, $relation->getEntity());
         $m = "get" . $relation->getName();
         foreach ($entity->{$m}() as $rel) {
             $setid = "set" . $relMapper->getNameForColumn($relation->getForeignColumn());
             $rel->{$setid}($entity->{$getid}());
             $relQuery .= $this->buildInsertQuery($rel);
         }
     }
     return $relQuery;
 }