package com.gmail.dpierron.calibre.datamodel.test; import com.gmail.dpierron.calibre.datamodel.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Test; import java.util.LinkedList; import java.util.List; public class TestDataModel { private static final Logger logger = LogManager.getLogger(TestDataModel.class); private void skipLine() { logger.info("\r\n"); } @Test public void testDataModel() { testDataModel(true); } public void testDataModel(boolean checkFiles) { skipLine(); logger.info("loading books"); List<Book> books = DataModel.getListOfBooks(); logger.info("Found " + books.size() + " book(s)"); skipLine(); if (checkFiles) { skipLine(); logger.info("checking books ePub files"); List<Book> withEpub = new LinkedList<Book>(); List<Book> withoutEpub = new LinkedList<Book>(); for (Book book : books) { if (book.doesEpubFileExist()) withEpub.add(book); else withoutEpub.add(book); } skipLine(); skipLine(); logger.info("list of the " + withEpub.size() + " book(s) with a valid ePub file : "); for (Book book : withEpub) { logger.info("book:" + book.toDetailedString()); logger.info("epub:" + book.getEpubFilename()); } skipLine(); skipLine(); logger.info("list of the " + withoutEpub.size() + " book(s) without a valid ePub file : "); List<Book> withWrongEpub = new LinkedList<Book>(); for (Book book : withoutEpub) { logger.info("book:" + book.toDetailedString()); logger.info("epub:" + book.getEpubFilename()); if (book.getBookFolder().exists()) { String[] files = book.getBookFolder().list(); for (String filename : files) { logger.info("file:" + filename); if (filename.toUpperCase().endsWith(".EPUB")) withWrongEpub.add(book); } } else { logger.info("file: Book folder does not even exist! " + book.getBookFolder().getAbsolutePath()); } } skipLine(); skipLine(); logger.info("list of the " + withWrongEpub.size() + " book(s) with an invalid ePub file : "); for (Book book : withWrongEpub) { logger.info("book:" + book.toDetailedString()); logger.info("epub:" + book.getEpubFilename()); if (book.getBookFolder().exists()) { String[] files = book.getBookFolder().list(); for (String filename : files) { if (filename.toUpperCase().endsWith(".EPUB")) logger.info("file:" + filename); } } else { logger.info("file: Book folder does not even exist! " + book.getBookFolder().getAbsolutePath()); } } skipLine(); } skipLine(); logger.info("loading tags"); List<Tag> list = DataModel.getListOfTags(); logger.info("there are " + list.size() + " tag(s)"); skipLine(); skipLine(); logger.info("loading books by tag"); for (Tag key : DataModel.getMapOfBooksByTag().keySet()) { books = DataModel.getMapOfBooksByTag().get(key); logger.info(key + " has " + books.size() + " book(s)"); } skipLine(); skipLine(); logger.info("loading books by author"); for (Author key : DataModel.getMapOfBooksByAuthor().keySet()) { books = DataModel.getMapOfBooksByAuthor().get(key); logger.info(key + " has " + books.size() + " book(s)"); } skipLine(); skipLine(); logger.info("loading books by serie"); for (Series key : DataModel.getMapOfBooksBySeries().keySet()) { books = DataModel.getMapOfBooksBySeries().get(key); logger.info(key + " has " + books.size() + " book(s)"); } skipLine(); } }