Fix unit tests

This commit is contained in:
Romain Neutron
2012-06-06 11:17:05 +02:00
parent 6a24a073d4
commit 0698ae17c7
2 changed files with 110 additions and 93 deletions

View File

@@ -9,9 +9,10 @@
* file that was distributed with this source code.
*/
use Symfony\Component\HttpFoundation\Request;
/**
*
* @package APIv1
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
* @link www.phraseanet.com
*/
@@ -28,7 +29,7 @@ interface API_V1_Interface
* Parameters :
*
*/
public function get_databoxes(\Symfony\Component\HttpFoundation\Request $request);
public function get_databoxes(Request $request);
/**
* Route /databoxes/DATABOX_ID/collections/FORMAT/
@@ -38,7 +39,7 @@ interface API_V1_Interface
* Parameters ;
* DATABOX_ID : required INT
*/
public function get_databox_collections(\Symfony\Component\HttpFoundation\Request $request, $databox_id);
public function get_databox_collections(Request $request, $databox_id);
/**
* Route /databoxes/DATABOX_ID/status/FORMAT/
@@ -48,7 +49,7 @@ interface API_V1_Interface
* Parameters ;
* DATABOX_ID : required INT
*/
public function get_databox_status(\Symfony\Component\HttpFoundation\Request $request, $databox_id);
public function get_databox_status(Request $request, $databox_id);
/**
* Route /databoxes/DATABOX_ID/metadatas/FORMAT/
@@ -58,7 +59,7 @@ interface API_V1_Interface
* Parameters ;
* DATABOX_ID : required INT
*/
public function get_databox_metadatas(\Symfony\Component\HttpFoundation\Request $request, $databox_id);
public function get_databox_metadatas(Request $request, $databox_id);
/**
* Route /databoxes/DATABOX_ID/termsOfUse/FORMAT/
@@ -68,7 +69,7 @@ interface API_V1_Interface
* Parameters ;
* DATABOX_ID : required INT
*/
public function get_databox_terms(\Symfony\Component\HttpFoundation\Request $request, $databox_id);
public function get_databox_terms(Request $request, $databox_id);
/**
* Route : /records/search/FORMAT/
@@ -86,7 +87,7 @@ interface API_V1_Interface
* Array of record objects
*
*/
public function search_records(\Symfony\Component\HttpFoundation\Request $request);
public function search_records(Request $request);
/**
* Route : /records/DATABOX_ID/RECORD_ID/related/FORMAT/
@@ -98,7 +99,7 @@ interface API_V1_Interface
* RECORD_ID : required INT
*
*/
public function get_record_related(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
public function get_record_related(Request $request, $databox_id, $record_id);
/**
* Route : /records/DATABOX_ID/RECORD_ID/metadatas/FORMAT/
@@ -110,7 +111,7 @@ interface API_V1_Interface
* RECORD_ID : required INT
*
*/
public function get_record_metadatas(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
public function get_record_metadatas(Request $request, $databox_id, $record_id);
/**
* Route : /records/DATABOX_ID/RECORD_ID/status/FORMAT/
@@ -122,7 +123,7 @@ interface API_V1_Interface
* RECORD_ID : required INT
*
*/
public function get_record_status(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
public function get_record_status(Request $request, $databox_id, $record_id);
/**
* Route : /records/DATABOX_ID/RECORD_ID/embed/FORMAT/
@@ -134,7 +135,7 @@ interface API_V1_Interface
* RECORD_ID : required INT
*
*/
public function get_record_embed(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
public function get_record_embed(Request $request, $databox_id, $record_id);
/**
* Route : /records/DATABOX_ID/RECORD_ID/setmetadatas/FORMAT/
@@ -146,7 +147,7 @@ interface API_V1_Interface
* RECORD_ID : required INT
*
*/
public function set_record_metadatas(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
public function set_record_metadatas(Request $request, $databox_id, $record_id);
/**
* Route : /records/DATABOX_ID/RECORD_ID/setstatus/FORMAT/
@@ -158,7 +159,7 @@ interface API_V1_Interface
* RECORD_ID : required INT
*
*/
public function set_record_status(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
public function set_record_status(Request $request, $databox_id, $record_id);
/**
* Route : /records/DATABOX_ID/RECORD_ID/setcollection/FORMAT/
@@ -170,19 +171,7 @@ interface API_V1_Interface
* RECORD_ID : required INT
*
*/
public function set_record_collection(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
/**
* Route : /records/DATABOX_ID/RECORD_ID/addtobasket/FORMAT/
*
* Method : POST
*
* Parameters :
* DATABOX_ID : required INT
* RECORD_ID : required INT
*
*/
public function add_record_tobasket(\Symfony\Component\HttpFoundation\Request $request, $databox_id, $record_id);
public function set_record_collection(Request $request, $databox_id, $record_id);
/**
* Route : /baskets/list/FORMAT/
@@ -192,7 +181,7 @@ interface API_V1_Interface
* Parameters :
*
*/
public function search_baskets(\Symfony\Component\HttpFoundation\Request $request);
public function search_baskets(Request $request);
/**
* Route : /baskets/add/FORMAT/
@@ -202,7 +191,7 @@ interface API_V1_Interface
* Parameters :
*
*/
public function create_basket(\Symfony\Component\HttpFoundation\Request $request);
public function create_basket(Request $request);
/**
* Route : /baskets/BASKET_ID/delete/FORMAT/
@@ -213,7 +202,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function delete_basket(\Symfony\Component\HttpFoundation\Request $request, $basket_id);
public function delete_basket(Request $request, $basket_id);
/**
* Route : /baskets/BASKET_ID/content/FORMAT/
@@ -224,7 +213,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function get_basket(\Symfony\Component\HttpFoundation\Request $request, $basket_id);
public function get_basket(Request $request, $basket_id);
/**
* Route : /baskets/BASKET_ID/title/FORMAT/
@@ -235,7 +224,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function set_basket_title(\Symfony\Component\HttpFoundation\Request $request, $basket_id);
public function set_basket_title(Request $request, $basket_id);
/**
* Route : /baskets/BASKET_ID/description/FORMAT/
@@ -246,7 +235,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function set_basket_description(\Symfony\Component\HttpFoundation\Request $request, $basket_id);
public function set_basket_description(Request $request, $basket_id);
/**
* Route : /publications/list/FORMAT/
@@ -256,7 +245,7 @@ interface API_V1_Interface
* Parameters :
*
*/
public function search_publications(\Symfony\Component\HttpFoundation\Request $request, User_Adapter &$user);
public function search_publications(Request $request, User_Adapter &$user);
/**
* Route : /publications/PUBLICATION_ID/remove/FORMAT/
@@ -267,7 +256,7 @@ interface API_V1_Interface
* PUBLICATION_ID : required INT
*
*/
public function remove_publications(\Symfony\Component\HttpFoundation\Request $request, $publication_id);
public function remove_publications(Request $request, $publication_id);
/**
* Route : /publications/PUBLICATION_ID/content/FORMAT/
@@ -278,7 +267,7 @@ interface API_V1_Interface
* PUBLICATION_ID : required INT
*
*/
public function get_publication(\Symfony\Component\HttpFoundation\Request $request, $publication_id, User_Adapter &$user);
public function get_publication(Request $request, $publication_id, User_Adapter &$user);
/**
* Route : /users/search/FORMAT/
@@ -288,7 +277,7 @@ interface API_V1_Interface
* Parameters :
*
*/
public function search_users(\Symfony\Component\HttpFoundation\Request $request);
public function search_users(Request $request);
/**
* Route : /users/USER_ID/access/FORMAT/
@@ -299,7 +288,7 @@ interface API_V1_Interface
* USER_ID : required INT
*
*/
public function get_user_acces(\Symfony\Component\HttpFoundation\Request $request, $usr_id);
public function get_user_acces(Request $request, $usr_id);
/**
* Route : /users/add/FORMAT/
@@ -309,9 +298,9 @@ interface API_V1_Interface
* Parameters :
*
*/
public function add_user(\Symfony\Component\HttpFoundation\Request $request);
public function add_user(Request $request);
public function get_error_message(\Symfony\Component\HttpFoundation\Request $request, $error, $message);
public function get_error_message(Request $request, $error, $message);
public function get_error_code(\Symfony\Component\HttpFoundation\Request $request, $code);
public function get_error_code(Request $request, $code);
}

View File

@@ -695,14 +695,14 @@ class API_V1_adapter extends API_V1_Abstract
$app['Core']['EM']->persist($session);
$app['Core']['EM']->flush();
$errors = $output = null;
$reasons = $output = null;
$callback = function($element, $visa, $code) use(&$errors, &$output) {
$callback = function($element, $visa, $code) use(&$reasons, &$output) {
if ( ! $visa->isValid()) {
$errors = array();
$reasons = array();
foreach ($visa->getResponses() as $response) {
$errors[] = $response->getMessage();
$reasons[] = $response->getMessage();
}
}
@@ -726,14 +726,18 @@ class API_V1_adapter extends API_V1_Abstract
$app['Core']['border-manager']->process($session, $Package, $callback, $behavior);
$ret = array(
'entity' => null,
);
if ($output instanceof \record_adapter) {
$ret = $this->list_record($output);
$ret['entity'] = '0';
$ret['record'] = $this->list_record($output);
}
if ($output instanceof \Entities\LazaretFile) {
$ret = array(
'errors' => $errors,
'lazaretFile' => $this->list_lazaret_file($output),
);
$ret['entity'] = '1';
$ret['reasons'] = $reasons;
$ret['lazaretFile'] = $this->list_lazaret_file($output);
}
$result = new API_V1_result($request, $this);
@@ -745,31 +749,23 @@ class API_V1_adapter extends API_V1_Abstract
protected function list_lazaret_file(\Entities\LazaretFile $file)
{
$attributes = $checks = array();
$checks = array();
foreach ($file->getAttributes() as $attr) {
$attributes[] = array(
'name' => $attr->getName(),
'value' => $attr->asString(),
);
if ($file->getChecks()) {
foreach ($file->getChecks() as $checker) {
$checks[] = $checker->getMessage();
}
}
foreach ((array) $file->getChecks() as $checker) {
if ( ! class_exists($checker)) {
continue;
}
if ( ! $checker instanceof \Alchemy\Phrasea\Border\Checker\Checker) {
continue;
}
$checks[] = $checker::getMessage();
$usr_id = null;
if ($file->getSession()->getUser()) {
$usr_id = $file->getSession()->getUser()->get_id();
}
$session = array(
'id' => $file->getSession()->getId(),
'usr_id' => $file->getSession()->getUsrId(),
'usr_id' => $usr_id,
);
return array(
@@ -780,7 +776,6 @@ class API_V1_adapter extends API_V1_Abstract
'sha256' => $file->getSha256(),
'uuid' => $file->getUuid(),
'forced' => $file->getForced(),
'attributes' => $attributes,
'checks' => $checks,
'created_on' => $file->getCreated()->format(DATE_ATOM),
'updated_on' => $file->getUpdated()->format(DATE_ATOM),
@@ -1151,18 +1146,6 @@ class API_V1_adapter extends API_V1_Abstract
return $result;
}
/**
* @todo
*
* @param Request $request
* @param int $databox_id
* @param int $record_id
*/
public function add_record_tobasket(Request $request, $databox_id, $record_id)
{
}
/**
* Return the baskets list of the authenticated user
*
@@ -1344,9 +1327,9 @@ class API_V1_adapter extends API_V1_Abstract
}
}
$ret['choices'] = $choices();
$ret['agreement'] = $agreement();
$ret['note'] = $note();
$ret['choices'] = $choices;
$ret['agreement'] = $agreement;
$ret['note'] = $note;
}
return $ret;
@@ -1455,7 +1438,7 @@ class API_V1_adapter extends API_V1_Abstract
*/
public function remove_publications(Request $request, $publication_id)
{
}
/**
@@ -1489,6 +1472,48 @@ class API_V1_adapter extends API_V1_Abstract
return $result;
}
public function get_publications(Request $request, User_Adapter &$user)
{
$result = new API_V1_result($request, $this);
$feed = Feed_Aggregate::load_with_user($this->appbox, $user);
$offset_start = (int) ($request->get('offset_start') ? : 0);
$per_page = (int) ($request->get('per_page') ? : 5);
$per_page = (($per_page >= 1) && ($per_page <= 20)) ? $per_page : 5;
$datas = array(
'feed' => $this->list_aggregate_publications($feed, $user),
'offset_start' => $offset_start,
'per_page' => $per_page,
'entries' => $this->list_publications_entries($feed, $offset_start, $per_page),
);
$result->set_datas($datas);
return $result;
}
public function get_feed_entry(Request $request, $entry, User_Adapter &$user)
{
$result = new API_V1_result($request, $this);
$entry = Feed_Entry_Adapter::load_from_id($this->appbox, $id);
if ( ! $user->ACL()->has_access_to_base($entry->get_feed()->get_collection()->get_base_id())) {
throw new \API_V1_exception_forbidden('You have not access to the parent feed');
}
$datas = array(
'entry' => $this->list_publication_entry($entry),
);
$result->set_datas($datas);
return $result;
}
/**
* Retrieve detailled informations about one feed
*
@@ -1511,6 +1536,13 @@ class API_V1_adapter extends API_V1_Abstract
);
}
protected function list_aggregate_publications(Feed_Aggregate $feed, $user)
{
return array(
'total_entries' => $feed->get_count_total_entries(),
);
}
/**
* Retrieve all entries of one feed
*
@@ -1519,7 +1551,7 @@ class API_V1_adapter extends API_V1_Abstract
* @param int $how_many
* @return array
*/
protected function list_publications_entries(Feed_Adapter $feed, $offset_start = 0, $how_many = 5)
protected function list_publications_entries(Feed_Abstract $feed, $offset_start = 0, $how_many = 5)
{
$entries = $feed->get_entries($offset_start, $how_many)->get_entries();
@@ -1556,6 +1588,7 @@ class API_V1_adapter extends API_V1_Abstract
'title' => $entry->get_title(),
'subtitle' => $entry->get_subtitle(),
'items' => $items,
'url' => '/feeds/entry/' . $entry->getId() . '/',
);
}
@@ -1581,7 +1614,7 @@ class API_V1_adapter extends API_V1_Abstract
*/
public function search_users(Request $request)
{
}
/**
@@ -1591,7 +1624,7 @@ class API_V1_adapter extends API_V1_Abstract
*/
public function get_user_acces(Request $request, $usr_id)
{
}
/**
@@ -1600,7 +1633,7 @@ class API_V1_adapter extends API_V1_Abstract
*/
public function add_user(Request $request)
{
}
/**
@@ -1692,11 +1725,6 @@ class API_V1_adapter extends API_V1_Abstract
*/
protected function list_record_caption_field(caption_Field_Value $value, caption_field $field)
{
/**
* @todo ajouter une option pour avoir les values serialisées
* dans un cas multi
*/
return array(
'meta_id' => $value->getId(),
'meta_structure_id' => $field->get_meta_struct_id(),