/**
  * Add the metadata from the database to the bag-info.txt file.
  *
  * @param BagIt   $bag
  * @param Deposit $deposit
  */
 protected function addMetadata(BagIt $bag, Deposit $deposit)
 {
     $bag->bagInfoData = array();
     // @todo this is very very bad. Once BagItPHP is updated it should be $bag->clearAllBagInfo();
     $bag->setBagInfoData('External-Identifier', $deposit->getDepositUuid());
     $bag->setBagInfoData('PKP-PLN-Deposit-UUID', $deposit->getDepositUuid());
     $bag->setBagInfoData('PKP-PLN-Deposit-Received', $deposit->getReceived()->format('c'));
     $bag->setBagInfoData('PKP-PLN-Deposit-Volume', $deposit->getVolume());
     $bag->setBagInfoData('PKP-PLN-Deposit-Issue', $deposit->getIssue());
     $bag->setBagInfoData('PKP-PLN-Deposit-PubDate', $deposit->getPubDate()->format('c'));
     $journal = $deposit->getJournal();
     $bag->setBagInfoData('PKP-PLN-Journal-UUID', $journal->getUuid());
     $bag->setBagInfoData('PKP-PLN-Journal-Title', $journal->getTitle());
     $bag->setBagInfoData('PKP-PLN-Journal-ISSN', $journal->getIssn());
     $bag->setBagInfoData('PKP-PLN-Journal-URL', $journal->getUrl());
     $bag->setBagInfoData('PKP-PLN-Journal-Email', $journal->getEmail());
     $bag->setBagInfoData('PKP-PLN-Publisher-Name', $journal->getPublisherName());
     $bag->setBagInfoData('PKP-PLN-Publisher-URL', $journal->getPublisherUrl());
     foreach ($deposit->getLicense() as $key => $value) {
         $bag->setBagInfoData('PKP-PLN-' . $key, $value);
     }
 }
 /**
  * Fetch one deposit from LOCKSSOMatic.
  *
  * @param Deposit $deposit
  * @param string  $href
  */
 public function fetch(Deposit $deposit, $href)
 {
     $client = $this->getHttpClient();
     $filepath = $this->filePaths->getRestoreDir($deposit->getJournal()) . '/' . basename($href);
     $this->logger->notice("Saving {$deposit->getJournal()->getTitle()} vol. {$deposit->getVolume()} no. {$deposit->getIssue()} to {$filepath}");
     try {
         $client->get($href, array('allow_redirects' => false, 'decode_content' => false, 'save_to' => $filepath));
         $hash = strtoupper(hash_file($deposit->getPackageChecksumType(), $filepath));
         if ($hash !== $deposit->getPackageChecksumValue()) {
             $this->logger->warning("Package checksum failed. Expected {$deposit->getPackageChecksumValue()} but got {$hash}");
         }
     } catch (Exception $ex) {
         $this->logger->error($ex->getMessage());
     }
 }
 public function testVolume()
 {
     $this->assertEquals(2, $this->deposit->getVolume());
 }