/**
  * @test
  */
 public function removePositionFromObjectStorageHoldingPositions()
 {
     $position = new \Bjr\BjrLend\Domain\Model\OrderPosition();
     $localObjectStorage = new \TYPO3\CMS\Extbase\Persistence\Generic\ObjectStorage();
     $localObjectStorage->attach($position);
     $localObjectStorage->detach($position);
     $this->fixture->addPosition($position);
     $this->fixture->removePosition($position);
     $this->assertEquals($localObjectStorage, $this->fixture->getPositions());
 }
 private function sendOrderMail(\Bjr\BjrLend\Domain\Model\Order $order)
 {
     $mailConfig = array();
     $mailConfig['receiver'] = $order->getCustomerEmail();
     $mailConfig['sender'] = $this->settings['orderSenderEmail'];
     //$mailConfig['subject'] 	= sprintf('Bestellung von %s', $order->getCustomerName() );
     //Bestellung über brauch-mal-kurz.de
     $mailConfig['subject'] = 'Bestellung über brauch-mal-kurz.de';
     $renderer = $this->getPlainRenderer('MailbodyCustomer', 'html');
     //damit f:translate funktioniert
     $extensionName = $this->request->getControllerExtensionName();
     $renderer->getRequest()->setControllerExtensionName($extensionName);
     $renderer->assign('order', $order);
     $siteUrl = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL');
     $renderer->assign('siteUrl', $siteUrl);
     $content = $renderer->render();
     $mailConfig['message'] = $content;
     /* @var $mail \TYPO3\CMS\Core\Mail\MailMessage  */
     $mail = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Mail\\MailMessage');
     $mail->setTo($mailConfig['receiver']);
     $mail->setFrom($mailConfig['sender']);
     $mail->setSubject($mailConfig['subject']);
     $mail->setBody($mailConfig['message'], 'text/html');
     $result = $mail->send();
     //Mail to lender. For each article we have to send an email
     $mailConfig['subject'] = sprintf('Eingegangene Bestellung von %s', $order->getCustomerName());
     foreach ($order->getPositions() as $position) {
         /* @var $position \Bjr\BjrLend\Domain\Model\OrderPosition */
         $mailConfig['lender'] = $position->getOrganizationName();
         if (strlen($position->getArticle()->getEmail()) > 0) {
             $mailConfig['lenderEmail'] = $position->getArticle()->getEmail();
         } else {
             $mailConfig['lenderEmail'] = $position->getOrganizationEmail();
         }
         $mailConfig['article'] = $position->getArticle();
         $renderer = $this->getPlainRenderer('MailbodyLender', 'html');
         $renderer->getRequest()->setControllerExtensionName($extensionName);
         $renderer->assign('order', $order);
         $renderer->assign('position', $position);
         $renderer->assign('siteUrl', $siteUrl);
         $content = $renderer->render();
         $mailConfig['message'] = $content;
         $result += $this->sendMailToLender($mailConfig);
     }
     return array('sent' => $result, 'failedRecipient' => $mail->getFailedRecipients(), 'mailConfig' => $mailConfig);
 }