/** * @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 createFixtureBook() { $book = new Book(); $book->setTitle('Unit test book'); $book->setAuthors('Unit test authors'); $this->entityManager->persist($book); $this->entityManager->flush(); return $book; }
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(); }