public function createFixtureBook()
 {
     $book = new Book();
     $book->setTitle('Unit test book');
     $book->setAuthors('Unit test authors');
     $this->entityManager->persist($book);
     $this->entityManager->flush();
     return $book;
 }
 /**
  * @Route("/book/create", name="book-create")
  */
 public function createAction(Request $request)
 {
     $entityManager = $this->getDoctrine()->getManager();
     $bookData = $request->get('book');
     $book = new Book();
     $book->setTitle(isset($bookData['title']) ? $bookData['title'] : '');
     $book->setAuthors(isset($bookData['authors']) ? $bookData['authors'] : '');
     $book->setEditor(isset($bookData['editor']) ? $bookData['editor'] : '');
     $book->setIsbn(isset($bookData['isbn']) ? $bookData['isbn'] : '');
     $book->setCover(isset($bookData['cover']) ? $bookData['cover'] : '');
     $book->setFile(isset($bookData['file']) ? $bookData['file'] : '');
     $book->setUser($this->getUser());
     $entityManager->persist($book);
     $entityManager->flush();
     $package = new BookPackage($book);
     $package->setBooksFolderPath($this->container->getParameter('books_dir'));
     $package->setTemplateFolderPath($this->container->getParameter('book_template_dir'));
     $package->setTmpFolderPath($this->container->getParameter('book_tmp_dir'));
     $package->updateBookSlug();
     $package->createBootstrapFiles();
     $package->pack();
     $entityManager->persist($book);
     $entityManager->flush();
     $response = array('status' => 'success', 'data' => array('slug' => $book->getSlug()));
     return new JsonResponse($response);
 }
 public function testLoad()
 {
     $timeSlug = date('d-m-Y-H-i-s');
     $bookSlug = 'selenium-generate-book-' . $timeSlug;
     $bookTitle = 'Selenium generate book ' . $timeSlug;
     $bookAuthors = "Author A. A., Author B. B.";
     $bookEditor = "Editor E. E.";
     $bookISBN = "3-455-44433-223-33";
     $book = new Book();
     $book->setTitle($bookTitle);
     $book->setSlug($bookSlug);
     $book->setAuthors($bookAuthors);
     $book->setEditor($bookEditor);
     $book->setIsbn($bookISBN);
     $creator = new Creator();
     $creator->setBook($book);
     $creator->execute();
     $updater = new Updater();
     $updater->setBook($book);
     $updater->addModule('New module');
     $loader = new Loader();
     $book = $loader->load($bookSlug);
     $this->assertEquals($book->getTitle(), $bookTitle);
     $this->assertEquals($book->getSlug(), $bookSlug);
     $this->assertEquals($book->getAuthors(), $bookAuthors);
     $this->assertEquals($book->getEditor(), $bookEditor);
     $this->assertEquals($book->getIsbn(), $bookISBN);
     $bookModules = $book->getModules();
     $this->assertEquals($bookModules[0]->title, 'New module');
 }
 public function testExecute()
 {
     $transliterate = new Transliterate();
     $book = new Book();
     $book->setTitle("Unit test book " . date('d-m-Y-H-i-s'));
     $book->setSlug(Sluggable\Urlizer::urlize($transliterate->transliterate($book->getTitle(), 'ru'), '-'));
     $book->setAuthors('Authors');
     $book->setIsbn('111-1111-1111-1');
     $createETBFile = new CreateETBFile();
     $createETBFile->setBook($book);
     $createETBFile->execute();
 }
 public function testExecute()
 {
     $transliterate = new Transliterate();
     $bookTitle = "Unit test book " . date('d-m-Y-H-i-s');
     $bookSlug = Sluggable\Urlizer::urlize($transliterate->transliterate($bookTitle, 'ru'), '-');
     $book = new Book();
     $book->setTitle($bookTitle);
     $book->setSlug($bookSlug);
     $book->setAuthors('Author');
     $book->setIsbn('111-1111-1111-2');
     $createETBFile = new CreateETBFile();
     $createETBFile->setBook($book);
     $createETBFile->execute();
     $book->setAuthors('Author, Author');
     $book->setTitle('With module');
     $updateETBFile = new UpdateETBFile();
     $updateETBFile->setBook($book);
     $updateETBFile->addModule('New module');
     $updateETBFile->execute();
 }