Browse Source

minor improvements to ingestConstructedObject()

pull/485/head
qadan 11 years ago
parent
commit
cc726ed4cd
  1. 19
      tests/islandora_web_test_case.inc

19
tests/islandora_web_test_case.inc

@ -315,7 +315,8 @@ class IslandoraWebTestCase extends DrupalWebTestCase {
* An array containing object information using these keys: * An array containing object information using these keys:
* 'label' - The object label; randomized if not set. * 'label' - The object label; randomized if not set.
* 'pid' - 'namespace:pid', or just 'namespace' to generate the suffix. * 'pid' - 'namespace:pid', or just 'namespace' to generate the suffix.
* 'models' - An array that can contain multiple content model PIDs. * 'models' - An array that can contain multiple content model PIDs, or a
* string containing a single content model PID.
* 'owner' - The object's owner. Defaults to the currently logged-in user, * 'owner' - The object's owner. Defaults to the currently logged-in user,
* if available. It is recommended to set this to a value that can be found * if available. It is recommended to set this to a value that can be found
* in $this->users; otherwise, this object will have to be manually deleted. * in $this->users; otherwise, this object will have to be manually deleted.
@ -331,8 +332,7 @@ class IslandoraWebTestCase extends DrupalWebTestCase {
* FALSE if the object ingest failed, or the object array if successful. * FALSE if the object ingest failed, or the object array if successful.
*/ */
public function ingestConstructedObject(array $properties = array(), array $datastreams = array()) { public function ingestConstructedObject(array $properties = array(), array $datastreams = array()) {
module_load_include('inc', 'islandora', 'includes/tuque'); $tuque = islandora_get_tuque_connection($this->admin);
$tuque = new IslandoraTuque();
$repository = $tuque->repository; $repository = $tuque->repository;
if (!isset($properties['pid'])) { if (!isset($properties['pid'])) {
$properties['pid'] = "islandora"; $properties['pid'] = "islandora";
@ -355,13 +355,14 @@ class IslandoraWebTestCase extends DrupalWebTestCase {
$object->owner = $this->loggedInUser->name; $object->owner = $this->loggedInUser->name;
} }
if (isset($properties['models']) && is_array($properties['models'])) { if (isset($properties['models'])) {
foreach ($properties['models'] as $model) { try {
$object->relationships->add(FEDORA_MODEL_URI, 'hasModel', $model); $object->models = (array) $properties['models'];
}
catch (Exception $e) {
$this->fail("Encountered an exception when trying to add content models to {$object->id}: $e");
return FALSE;
} }
}
elseif (isset($properties['models']) && !is_array($properties['models'])) {
$this->fail(t("'models' key of properties variable is not an array. Content model(s) will not be set."), 'Islandora');
} }
$repository->ingestObject($object); $repository->ingestObject($object);

Loading…
Cancel
Save