Refactor caption_field

This commit is contained in:
Romain Neutron
2012-01-18 14:23:39 +01:00
parent de69f0357e
commit ba06115e4a
4 changed files with 128 additions and 70 deletions

View File

@@ -609,14 +609,17 @@ class ApiJsonApplication extends PhraseanetWebTestCaseAbstract
*/ */
foreach ($caption->get_fields() as $field) foreach ($caption->get_fields() as $field)
{ {
$old_datas[$field->get_meta_id()] = $field->get_value(); foreach($field->get_values() as $value)
if ($field->is_readonly() === false && $field->is_multi() === false)
{ {
$toupdate[$field->get_meta_id()] = array( $old_datas[$value->getId()] = $value->getValue();
'meta_struct_id' => $field->get_meta_struct_id(), if ($field->is_readonly() === false && $field->is_multi() === false)
'meta_id' => $field->get_meta_id(), {
'value' => array($field->get_value() . ' test') $toupdate[$value->getId()] = array(
); 'meta_struct_id' => $field->get_meta_struct_id(),
'meta_id' => $value->getId(),
'value' => array($value->getValue() . ' test')
);
}
} }
} }
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE')); $this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
@@ -634,11 +637,13 @@ class ApiJsonApplication extends PhraseanetWebTestCaseAbstract
foreach ($caption->get_fields() as $field) foreach ($caption->get_fields() as $field)
{ {
foreach($field->get_values() as $value)
if ($field->is_readonly() === false && $field->is_multi() === false)
{ {
$saved_value = $toupdate[$field->get_meta_id()]['value'][0]; if ($field->is_readonly() === false && $field->is_multi() === false)
$this->assertEquals($field->get_value(), $saved_value); {
$saved_value = $toupdate[$value->getId()]['value'][0];
$this->assertEquals($value->getValue(), $saved_value);
}
} }
} }
$this->evaluateRecordsMetadataResponse($content); $this->evaluateRecordsMetadataResponse($content);

View File

@@ -616,14 +616,17 @@ class ApiYamlApplication extends PhraseanetWebTestCaseAbstract
*/ */
foreach ($caption->get_fields() as $field) foreach ($caption->get_fields() as $field)
{ {
$old_datas[$field->get_meta_id()] = $field->get_value(); foreach($field->get_values() as $value)
if ($field->is_readonly() === false && $field->is_multi() === false)
{ {
$toupdate[$field->get_meta_id()] = array( $old_datas[$value->getId()] = $field->get_value();
'meta_struct_id' => $field->get_meta_struct_id(), if ($field->is_readonly() === false && $field->is_multi() === false)
'meta_id' => $field->get_meta_id(), {
'value' => array($field->get_value() . ' test') $toupdate[$value->getId()] = array(
); 'meta_struct_id' => $field->get_meta_struct_id(),
'meta_id' => $value->getId(),
'value' => array($value->getValue() . ' test')
);
}
} }
} }
$this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE')); $this->evaluateMethodNotAllowedRoute($route, array('GET', 'PUT', 'DELETE'));
@@ -641,11 +644,13 @@ class ApiYamlApplication extends PhraseanetWebTestCaseAbstract
foreach ($caption->get_fields() as $field) foreach ($caption->get_fields() as $field)
{ {
foreach($field->get_values() as $value)
if ($field->is_readonly() === false && $field->is_multi() === false)
{ {
$saved_value = $toupdate[$field->get_meta_id()]['value'][0]; if ($field->is_readonly() === false && $field->is_multi() === false)
$this->assertEquals($field->get_value(), $saved_value); {
$saved_value = $toupdate[$value->getId()]['value'][0];
$this->assertEquals($value->getValue(), $saved_value);
}
} }
} }
$this->evaluateRecordsMetadataResponse($content); $this->evaluateRecordsMetadataResponse($content);

View File

@@ -249,11 +249,15 @@ class API_V1_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
$metadatas = array(); $metadatas = array();
foreach (self::$record_1->get_caption()->get_fields() as $field) foreach (self::$record_1->get_caption()->get_fields() as $field)
{ {
$metadatas[] = array( $values = $field->get_values();
'meta_id' => $field->get_meta_id() foreach($values as $value)
, 'meta_struct_id' => $field->get_meta_struct_id() {
, 'value' => $field->get_value() $metadatas[] = array(
); 'meta_id' => $value->getId()
, 'meta_struct_id' => $field->get_meta_struct_id()
, 'value' => $value->getValue()
);
}
} }
$metadatas = array_shift($metadatas); $metadatas = array_shift($metadatas);

View File

@@ -14,20 +14,20 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
*/ */
protected static $grouping; protected static $grouping;
protected static $need_records = true; protected static $need_records = true;
protected static $need_story = true; protected static $need_story = true;
protected static $need_subdefs = true; protected static $need_subdefs = true;
public static function setUpBeforeClass() public static function setUpBeforeClass()
{ {
parent::setUpBeforeClass(); parent::setUpBeforeClass();
$system_file = self::$record_1->get_hd_file(); $system_file = self::$record_1->get_hd_file();
$databox = self::$record_1->get_databox(); $databox = self::$record_1->get_databox();
$metadatas = $system_file->extract_metadatas($databox->get_meta_structure()); $metadatas = $system_file->extract_metadatas($databox->get_meta_structure());
static::$record_1->set_metadatas($metadatas['metadatas']); static::$record_1->set_metadatas($metadatas['metadatas']);
$databox = self::$record_23->get_databox(); $databox = self::$record_23->get_databox();
$system_file = self::$record_23->get_hd_file(); $system_file = self::$record_23->get_hd_file();
$metadatas = $system_file->extract_metadatas($databox->get_meta_structure()); $metadatas = $system_file->extract_metadatas($databox->get_meta_structure());
static::$record_23->set_metadatas($metadatas['metadatas']); static::$record_23->set_metadatas($metadatas['metadatas']);
$system_file = new system_file(__DIR__ . '/../testfiles/cestlafete.jpg'); $system_file = new system_file(__DIR__ . '/../testfiles/cestlafete.jpg');
@@ -38,7 +38,6 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
parent::tearDownAfterClass(); parent::tearDownAfterClass();
} }
public function testGet_creation_date() public function testGet_creation_date()
{ {
$date_obj = new DateTime(); $date_obj = new DateTime();
@@ -89,7 +88,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
} }
catch (Exception $e) catch (Exception $e)
{ {
} }
$old_type = self::$record_1->get_type(); $old_type = self::$record_1->get_type();
self::$record_1->set_type('video'); self::$record_1->set_type('video');
@@ -137,7 +136,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
// Remove the following lines when you implement this test. // Remove the following lines when you implement this test.
$this->markTestIncomplete( $this->markTestIncomplete(
'This test has not been implemented yet.' 'This test has not been implemented yet.'
); );
} }
@@ -166,10 +165,9 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
public function testGenerate_subdefs() public function testGenerate_subdefs()
{ {
} }
public function testGet_sha256() public function testGet_sha256()
{ {
$this->assertNotNull(static::$record_1->get_sha256()); $this->assertNotNull(static::$record_1->get_sha256());
@@ -180,13 +178,13 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
public function testGet_mime() public function testGet_mime()
{ {
$appbox = appbox::get_instance(); $appbox = appbox::get_instance();
$found = $coll = false; $found = $coll = false;
foreach ($appbox->get_databoxes() as $databox) foreach ($appbox->get_databoxes() as $databox)
{ {
foreach ($databox->get_collections() as $collection) foreach ($databox->get_collections() as $collection)
{ {
$found = true; $found = true;
$coll = $collection; $coll = $collection;
break; break;
} }
if ($found) if ($found)
@@ -234,7 +232,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
// Remove the following lines when you implement this test. // Remove the following lines when you implement this test.
$this->markTestIncomplete( $this->markTestIncomplete(
'This test has not been implemented yet.' 'This test has not been implemented yet.'
); );
} }
@@ -297,7 +295,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
// Remove the following lines when you implement this test. // Remove the following lines when you implement this test.
$this->markTestIncomplete( $this->markTestIncomplete(
'This test has not been implemented yet.' 'This test has not been implemented yet.'
); );
} }
@@ -311,15 +309,62 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
foreach ($meta_structure_el as $meta_el) foreach ($meta_structure_el as $meta_el)
{ {
$current_fields = $current_caption->get_fields(array($meta_el->get_name())); $current_fields = $current_caption->get_fields(array($meta_el->get_name()));
$meta_id = null;
$field = null;
if (count($current_fields) > 0) if (count($current_fields) > 0)
{ {
$meta_id = $current_fields[0]->get_meta_id(); $field = array_pop($current_fields);
}
if($meta_el->is_multi())
{
if($field)
{
foreach($field->get_values() as $value)
{
$metadatas[] = array(
'meta_struct_id' => $meta_el->get_id()
, 'meta_id' => $value->getId()
, 'value' => ''
);
}
}
$metadatas[] = array(
'meta_struct_id' => $meta_el->get_id()
, 'meta_id' => null
, 'value' => 'un'
);
$metadatas[] = array(
'meta_struct_id' => $meta_el->get_id()
, 'meta_id' => null
, 'value' => 'jeu'
);
$metadatas[] = array(
'meta_struct_id' => $meta_el->get_id()
, 'meta_id' => null
, 'value' => 'de'
);
$metadatas[] = array(
'meta_struct_id' => $meta_el->get_id()
, 'meta_id' => null
, 'value' => 'mots'
);
}
else
{
if($field)
{
$meta_id = array_pop($field->get_values())->getId();
}
$metadatas[] = array(
'meta_struct_id' => $meta_el->get_id()
, 'meta_id' => $meta_id
, 'value' => 'un jeu de test'
);
} }
$value = $meta_el->is_multi() ? array('un', 'jeu', 'de', 'test') : array('un jeu de test');
$metadatas[] = array('meta_struct_id' => $meta_el->get_id(), 'meta_id' => $meta_id, 'value' => $value);
} }
self::$record_1->set_metadatas($metadatas); self::$record_1->set_metadatas($metadatas);
@@ -350,12 +395,12 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
public function testReindex() public function testReindex()
{ {
self::$record_1->reindex(); self::$record_1->reindex();
$sql = 'SELECT record_id FROM record $sql = 'SELECT record_id FROM record
WHERE (status & 7) IN (4,5,6) AND record_id = :record_id'; WHERE (status & 7) IN (4,5,6) AND record_id = :record_id';
$stmt = self::$record_1->get_databox()->get_connection()->prepare($sql); $stmt = self::$record_1->get_databox()->get_connection()->prepare($sql);
$stmt->execute(array(':record_id' => self::$record_1->get_record_id())); $stmt->execute(array(':record_id' => self::$record_1->get_record_id()));
$row = $stmt->fetch(PDO::FETCH_ASSOC); $row = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
if (!$row) if (!$row)
@@ -368,14 +413,14 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
self::$record_1->rebuild_subdefs(); self::$record_1->rebuild_subdefs();
$sql = 'SELECT record_id $sql = 'SELECT record_id
FROM record FROM record
WHERE jeton & ' . JETON_MAKE_SUBDEF . ' > 0 WHERE jeton & ' . JETON_MAKE_SUBDEF . ' > 0
AND record_id = :record_id'; AND record_id = :record_id';
$stmt = self::$record_1->get_databox()->get_connection()->prepare($sql); $stmt = self::$record_1->get_databox()->get_connection()->prepare($sql);
$stmt->execute(array(':record_id' => self::$record_1->get_record_id())); $stmt->execute(array(':record_id' => self::$record_1->get_record_id()));
$row = $stmt->fetch(PDO::FETCH_ASSOC); $row = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
if (!$row) if (!$row)
@@ -387,13 +432,13 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
public function testWrite_metas() public function testWrite_metas()
{ {
self::$record_1->write_metas(); self::$record_1->write_metas();
$sql = 'SELECT record_id, coll_id, jeton $sql = 'SELECT record_id, coll_id, jeton
FROM record WHERE (jeton & ' . JETON_WRITE_META . ' > 0) FROM record WHERE (jeton & ' . JETON_WRITE_META . ' > 0)
AND record_id = :record_id'; AND record_id = :record_id';
$stmt = self::$record_1->get_databox()->get_connection()->prepare($sql); $stmt = self::$record_1->get_databox()->get_connection()->prepare($sql);
$stmt->execute(array(':record_id' => self::$record_1->get_record_id())); $stmt->execute(array(':record_id' => self::$record_1->get_record_id()));
$row = $stmt->fetch(PDO::FETCH_ASSOC); $row = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->closeCursor(); $stmt->closeCursor();
if (!$row) if (!$row)
@@ -409,7 +454,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
// Remove the following lines when you implement this test. // Remove the following lines when you implement this test.
$this->markTestIncomplete( $this->markTestIncomplete(
'This test has not been implemented yet.' 'This test has not been implemented yet.'
); );
} }
@@ -453,7 +498,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
// Remove the following lines when you implement this test. // Remove the following lines when you implement this test.
$this->markTestIncomplete( $this->markTestIncomplete(
'This test has not been implemented yet.' 'This test has not been implemented yet.'
); );
} }
@@ -461,7 +506,7 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
// Remove the following lines when you implement this test. // Remove the following lines when you implement this test.
$this->markTestIncomplete( $this->markTestIncomplete(
'This test has not been implemented yet.' 'This test has not been implemented yet.'
); );
} }
@@ -472,28 +517,28 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
{ {
$appbox = appbox::get_instance(); $appbox = appbox::get_instance();
$usr_id = $appbox->get_session()->get_usr_id(); $usr_id = $appbox->get_session()->get_usr_id();
$em = self::$core->getEntityManager(); $em = self::$core->getEntityManager();
$basket = $this->insertOneBasket(); $basket = $this->insertOneBasket();
$this->assertInstanceOf('\Entities\Basket', $basket); $this->assertInstanceOf('\Entities\Basket', $basket);
/* @var $basket \Entities\Basket */ /* @var $basket \Entities\Basket */
$basket_element = new \Entities\BasketElement(); $basket_element = new \Entities\BasketElement();
$basket_element->setRecord(self::$record_1); $basket_element->setRecord(self::$record_1);
$basket_element->setBasket($basket); $basket_element->setBasket($basket);
$em->persist($basket_element);
$basket->addBasketElement($basket_element);
$em->merge($basket);
$em->flush();
$found = $sselcont_id = false;
$sbas_id = self::$record_1->get_sbas_id(); $em->persist($basket_element);
$basket->addBasketElement($basket_element);
$em->merge($basket);
$em->flush();
$found = $sselcont_id = false;
$sbas_id = self::$record_1->get_sbas_id();
$record_id = self::$record_1->get_record_id(); $record_id = self::$record_1->get_record_id();
foreach (self::$record_1->get_container_baskets() as $c_basket) foreach (self::$record_1->get_container_baskets() as $c_basket)
@@ -512,7 +557,6 @@ class record_adapterTest extends PhraseanetPHPUnitAuthenticatedAbstract
if (!$found) if (!$found)
$this->fail(); $this->fail();
} }
} }