public void SortBy_SearchCriteriaIsNull_ThrowArgumentNullException() { var bookListService = new BookListService(new BinaryStorage()); bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2010, "House", 100, 100)); bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 2010, "House", 1050, 100)); Assert.Throws <ArgumentNullException>(() => bookListService.FindByTag(null)); }
public void Add_BookAlreadyExists_ThrowDuplicateItemException() { var bookThatIsAlreadyExistsInList = new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100); var bookListService = new BookListService(new BinaryStorage()); bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100)); Assert.Throws <DuplicateBookException>(() => bookListService.Add(bookThatIsAlreadyExistsInList)); }
public void Remove_BookIsNotInList_ThrowItemIsNotFoundException() { var bookThatIsNotInBookList = new Book("987-123456779-1", "NOT EXISTING IN LIST", "XXX", 2012, "XXX", 10, 20); var bookListService = new BookListService(new BinaryStorage()); bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100)); bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100)); bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100)); bookListService.Add(new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101)); Assert.Throws <BookIsNotFoundException>(() => bookListService.Remove(bookThatIsNotInBookList)); }
public void BookAlreadyInStorageExceptionTest() { FakeBookListStorage.books = new List <Book>() { new Book() { Author = "Рихтер Джеффри", ISBN = "978-5-496-00-433-6", Title = "CLR via C#", PageCount = 896, Price = 70, PublicationYear = 2014, PublishingOffice = "Питер" } }; var bookToAdd = new List <Book>() { new Book() { Author = "Рихтер Джеффри", ISBN = "978-5-496-00-433-6", Title = "CLR via C#", PageCount = 896, Price = 70, PublicationYear = 2014, PublishingOffice = "Питер" } }; var bookListService = new BookListService(new BookListStorage()); Assert.Throws <Exceptions.BookAlreadyInStorageException>(() => bookListService.Add(bookToAdd)); }
public ActionResult Submit(string Author, string ISBN, string Title, uint PageCount, decimal Price, int PublicationYear, string PublishingOffice) { var book = new Book() { Author = Author, Title = Title, ISBN = ISBN, PublishingOffice = PublishingOffice, PublicationYear = PublicationYear, Price = Price, PageCount = PageCount }; var bookListStorage = new BookListStorage(); var bookListService = new BookListService(bookListStorage); bookListService.Add(new List <Book>() { book }); bookListStorage.Save(bookListService.Books); ViewBag.Response = "Book added to Book List!"; return(View("AddBook")); }
static void Main(string[] args) { BookListService bookService = new BookListService(); Book book1 = new Book("1491987650", "Joseph Albahari&Ben Albahari", "C# 7.0 in a Nutshell: The Definitive Reference", "O'Reilly Media", 2018, 1092, 44.99m); Book book2 = new Book("978-0-7356-6745-7", "Jeffrey Richter", "CLR via C#", "Microsoft Press", 2012, 826, 59.99m); bookService.Add(book1); Console.WriteLine(book1 + " was Added"); bookService.Add(book2); Console.WriteLine(book2 + " was Added"); Console.WriteLine("Adding added book, assuming Exception"); try { bookService.Add(book1); } catch (BookAlreadyExistsException ex) { Console.WriteLine("Exception was thrown:"); Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } string testISBN = "978-0-7356-6745-7"; Console.WriteLine("Finding by ISBN: " + testISBN); Console.WriteLine("Found book: " + bookService.FindBookByTag(new FindByISBN(testISBN)).ToString()); const string storageFile = @"C:\Users\user\Desktop\EPAM\public folder\Epam-training\NET.S.2018.Brahinets.11\BinaryBookListStorage\StorageFile.txt"; IBookListStorage storage = new BinaryBookListStorage(storageFile); Console.WriteLine("Saving to the binary storage"); bookService.SaveIntoStorage(storage); Console.WriteLine("Try to get books from the binary storage"); try { bookService.GetFromStorage(storage); } catch (BookAlreadyExistsException ex) { Console.WriteLine("Books was readed from storage sucesfully"); } Console.ReadKey(); }
public void SortBy_BooksByYearComparer_SortBooks() { var expected = new List <Book>() { new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100), new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100), new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100), }; var bookListService = new BookListService(new BinaryStorage()); bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100)); bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100)); bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100)); IEnumerable <Book> sorted = bookListService.SortBy(new BooksPagesComparer()); CollectionAssert.AreEqual(expected, sorted); }
public void Remove_BookIsInList_RemoveBook() { var bookToDelete = new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101); var bookListService = new BookListService(new BinaryStorage()); bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100)); bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100)); bookListService.Add(new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101)); bookListService.Remove(bookToDelete); var expected = new List <Book>() { new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100), new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100) }; CollectionAssert.AreEqual(expected, bookListService.GetAll()); }
public void FindByTag_SearchBooksAfterYearCriteria() { var expected = new List <Book>() { new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100), new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101) }; var bookListService = new BookListService(new BinaryStorage()); bookListService.Add(new Book("987-123456789-4", "Name", "Author", 2015, "House", 100, 100)); bookListService.Add(new Book("987-123456779-4", "Some book", "Ivanov", 1985, "House", 1050, 100)); bookListService.Add(new Book("987-123456771-4", "English dictionary", "Englishmen", 1999, "House", 200, 100)); bookListService.Add(new Book("987-123456777-4", "Russian Dictionary", "Petrov", 2000, "House", 155, 101)); IEnumerable <Book> foundBooks = bookListService.FindByTag(new SearchBooksAfterYearCriteria(1999)); CollectionAssert.AreEqual(expected, foundBooks); }
static void Main(string[] args) { string path = @"BooksList.dat"; try { BookListService books = new BookListService(path); ShowBooksList(books, "Спосок книг"); /* * // Пример списка книг для работы * * books.Add(new Book() { Author = "Лев Толстой", Title = "Война и мир", Genre = "Роман", Year = 1869 }); * books.Add(new Book() { Author = "Алан Александр Милн",Title ="Вини-Пух", Genre = "Детский рассказ", Year = 1926}); * books.Add(new Book() { Author = "Мари Шелли", Title="Франкенштейн", Genre = "Научная фантастика", Year = 1818}); * books.Add(new Book() { Author = "Михаил Булгаков", Title ="Мастер и Маргарита", Genre="Роман", Year = 1966}); * books.Add(new Book() { Author = "Федор Достоевский", Title = "Преступление и наказание" , Genre = "Роман" , Year = 1866}); * books.Add(new Book() { Author = "Николай Гоголь", Title = "Мёртвые души", Genre = "Сатира", Year = 1842 }); * books.Add(new Book() { Author = "Александр Пушкин", Title = "Евгений Онегин", Genre = "Роман", Year = 1825 }); * * books.WriteBooksList(); */ books.SortBooksByTag(new ComparableBook()); ShowBooksList(books, "Отсортированный список"); books.Add(new Book() { Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза" }); ShowBooksList(books, "Список книг с добавленной книгой"); books.RemoveBook(new Book() { Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза" }); ShowBooksList(books, "Список книг с удаленной книгой"); Console.WriteLine("Спосок книг выбранны по тегу \"Жанр = Роман\""); foreach (Book b in books.FindByTag(new TagGanre(), "Роман")) { Console.WriteLine(b); } } catch (FileNotFoundException ex) { log.Fatal(ex.Message, ex); } catch (Exception ex) { log.Error(ex.Message, ex); } }
public void AddTest() { FakeBookListStorage.books = new List <Book>() { new Book() { Author = "Рихтер Джеффри", ISBN = "978-5-496-00-433-6", Title = "CLR via C#", PageCount = 896, Price = 70, PublicationYear = 2014, PublishingOffice = "Питер" } }; var bookFirstToAdd = new Book() { Author = "Тепляков Сергей", ISBN = "978-5-496-01649-0", Title = "Паттерны проектирования", PageCount = 320, Price = 100, PublicationYear = 2016, PublishingOffice = "Питер" }; var bookSecondToAdd = new Book() { Author = "Албахари", ISBN = "978-5-496-00-433-6", Title = "C# 3.0 справочник", PageCount = 944, Price = 23, PublicationYear = 2012, PublishingOffice = "BHV" }; var bookList = new List <Book>(); bookList.Add(bookFirstToAdd); bookList.Add(bookSecondToAdd); var bookListService = new BookListService(new BookListStorage()); bookListService.Add(bookList); Assert.AreEqual(3, bookListService.Books.Count); Assert.AreEqual(bookFirstToAdd, bookListService.Books[1]); Assert.AreEqual(bookSecondToAdd, bookListService.Books[2]); }
public static void ReadFromFile(string fileName, BookListService <Book> bls) { try { var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); var br = new BinaryReader(fs); while (br.BaseStream.Position != br.BaseStream.Length) { bls.Add(new Book(br.ReadString(), br.ReadString(), br.ReadString(), br.ReadInt32(), br.ReadInt32())); } } catch { Console.WriteLine("An exception in file reading!"); } }
static void Main(string[] args) { string path = @"BooksList.dat"; try { BookListService books = new BookListService(path); ShowBooksList(books, "Спосок книг"); /* // Пример списка книг для работы books.Add(new Book() { Author = "Лев Толстой", Title = "Война и мир", Genre = "Роман", Year = 1869 }); books.Add(new Book() { Author = "Алан Александр Милн",Title ="Вини-Пух", Genre = "Детский рассказ", Year = 1926}); books.Add(new Book() { Author = "Мари Шелли", Title="Франкенштейн", Genre = "Научная фантастика", Year = 1818}); books.Add(new Book() { Author = "Михаил Булгаков", Title ="Мастер и Маргарита", Genre="Роман", Year = 1966}); books.Add(new Book() { Author = "Федор Достоевский", Title = "Преступление и наказание" , Genre = "Роман" , Year = 1866}); books.Add(new Book() { Author = "Николай Гоголь", Title = "Мёртвые души", Genre = "Сатира", Year = 1842 }); books.Add(new Book() { Author = "Александр Пушкин", Title = "Евгений Онегин", Genre = "Роман", Year = 1825 }); books.WriteBooksList(); */ books.SortBooksByTag(new ComparableBook()); ShowBooksList(books, "Отсортированный список"); books.Add(new Book() { Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза" }); ShowBooksList(books, "Список книг с добавленной книгой"); books.RemoveBook(new Book() { Author = "Николай Гоголь", Title = "Вечера на хуторе близ Диканьки", Year = 1832, Genre = "Проза" }); ShowBooksList(books, "Список книг с удаленной книгой"); Console.WriteLine("Спосок книг выбранны по тегу \"Жанр = Роман\""); foreach (Book b in books.FindByTag(new TagGanre(), "Роман")) Console.WriteLine(b); } catch (FileNotFoundException ex) { log.Fatal(ex.Message, ex); } catch(Exception ex) { log.Error(ex.Message, ex); } }
public void Add_BookToAddIsNull_ThrowArgumentNullException() { var bookListService = new BookListService(new BinaryStorage()); Assert.Throws <ArgumentNullException>(() => bookListService.Add(null)); }