コード例 #1
0
        public void UpdateTest_PassInvalidBook_ShouldNotRemoveFromCollection()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();
            Book book = new Book();

            book.Title       = "Hello";
            book.Author      = "Sasha";
            book.DateOfissue = 1984;
            jsonBookRepository.Add(book);
            Book book2 = new Book();

            book2.Title       = "World";
            book2.Author      = "Vasya";
            book2.DateOfissue = 1991;
            book2.Id          = 0;

            // Act
            jsonBookRepository.Update(book2);

            //Assert
            Assert.AreEqual("Hello", book.Title);
            Assert.AreEqual("Sasha", book.Author);
            Assert.AreEqual(1984, book.DateOfissue);
        }
コード例 #2
0
        public void UpdateTest_PassValidBook_ShouldRemoveFromCollection()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();
            Book book = new Book();

            book.Name        = "Hello";
            book.Author      = "Sasha";
            book.YearOfIssue = 1984;
            jsonBookRepository.Add(book);
            int  id    = book.Id;
            Book book2 = new Book();

            book2.Name        = "World";
            book2.Author      = "Vasya";
            book2.YearOfIssue = 1991;
            book2.Id          = id;

            // Act
            jsonBookRepository.Update(book2);

            //Assert
            Assert.AreEqual("World", book.Name);
            Assert.AreEqual("Vasya", book.Author);
            Assert.AreEqual(1991, book.YearOfIssue);
        }
コード例 #3
0
        public void BooksTest_Unloaded_ShouldLoad()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();

            // Act
            var books = jsonBookRepository.Books;

            //Assert
            Assert.IsNotNull(books);
        }
コード例 #4
0
        public void GetBookTest_PassInValidId_ShouldNotReturnBook()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();

            // Act
            var actual = jsonBookRepository.Get(0);


            //Assert
            Assert.IsNull(actual);
        }
コード例 #5
0
        public void AddBookTest_PassInvalidBook_ShouldNotAddToCollection()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();
            Book book = null;

            // Act
            jsonBookRepository.Add(book);

            //Assert
            Assert.AreEqual(0, jsonBookRepository.Books.Count);
        }
コード例 #6
0
        public void AddBookTest_PassValidBook_ShouldAddToCollection()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();
            Book book = new Book();

            // Act
            jsonBookRepository.Add(book);

            //Assert
            Assert.AreEqual(1, book.Id);
            Assert.AreEqual(1, jsonBookRepository.Books.Count);
        }
コード例 #7
0
        public void RemoveTest_PassInvalidBook_ShouldNotRemoveFromCollection()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();
            Book book = new Book();

            jsonBookRepository.Add(book);

            // Act
            jsonBookRepository.Remove(0);

            //Assert
            Assert.AreEqual(1, jsonBookRepository.Books.Count);
        }
コード例 #8
0
        public void GetBooksTest_ShouldReturnBooks()
        {
            //Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();
            Book book = new Book();

            jsonBookRepository.Add(book);

            //Act
            var books = jsonBookRepository.GetAll();

            //Assert
            Assert.IsNotNull(books);
            Assert.AreEqual(1, books.Count);
        }
コード例 #9
0
        public void GetBookTest_PassValidId_ShouldReturnBook()
        {
            // Arrange
            JsonBookRepository jsonBookRepository = new JsonBookRepository();
            Book book = new Book();

            jsonBookRepository.Add(book);

            // Act
            var actual = jsonBookRepository.Get(book.Id);


            //Assert
            Assert.AreEqual(actual, book);
        }
コード例 #10
0
        static void Main(string[] args)
        {
            var bookRepository = new JsonBookRepository(fileName);
            var bookService    = new BookListService(bookRepository);

            Console.WriteLine("Исходный список книг:");

            PrintListBooks(bookService.GetBooks());

            var book = new Book("Льюис Кэрролл", "Алиса в Стране чудес", 237, 1865, "Сказка");

            Console.WriteLine("Пытаемся добавить книгу");
            PrintBook(book);
            try
            {
                bookService.AddBook(book);
                Console.WriteLine("Книга успешно добавлена");
            }
            catch (Exception e)
            {
                Console.WriteLine("Ошибка: {0}\n", e.Message);
            }

            Console.WriteLine("Пытаемся удалить книгу");
            try
            {
                bookService.RemoveBook(book);
                Console.WriteLine("Книга успешно удалена");
            }
            catch (Exception e)
            {
                Console.WriteLine("Ошибка: {0}\n", e.Message);
            }
            Console.WriteLine();

            Console.WriteLine("Сохраняем список в файл и читаем из него");
            bookService.SaveBooks();
            PrintListBooks(bookRepository.GetBooks().ToList());

            Console.WriteLine("Снова пытаемся удалить книгу");
            try
            {
                bookService.RemoveBook(book);
                Console.WriteLine("Книга успешно удалена");
            }
            catch (Exception e)
            {
                Console.WriteLine("Ошибка: {0}\n", e.Message);
            }

            Console.WriteLine("Пытаемся найти удаленную книгу по названию \"Алиса в Стране чудес\"");
            Book seaarchResult = bookService.FindBook(b => b.Title == "Алиса в Стране чудес");

            if (seaarchResult == null)
            {
                Console.WriteLine("Книга не найдена");
            }
            else
            {
                Console.WriteLine("Книга найдена");
                PrintBook(seaarchResult);
            }
            Console.WriteLine();

            Console.WriteLine("Добавляем удаленную книгу и свнова пытаеся ее найти");
            bookService.AddBook(book);
            seaarchResult = bookService.FindBook(b => b.Title == "Алиса в Стране чудес");
            if (seaarchResult == null)
            {
                Console.WriteLine("Книга не найдена");
            }
            else
            {
                Console.WriteLine("Книга найдена\n");
                PrintBook(seaarchResult);
            }
            bookService.SaveBooks();
            Console.WriteLine();
            Console.WriteLine("Полученный список");
            PrintListBooks(bookRepository.GetBooks().ToList());

            Console.WriteLine("Сортировка книг по автору");
            bookService.SortBooks((a, b) => string.Compare(a.Author, b.Author));
            bookService.SaveBooks();
            PrintListBooks(bookRepository.GetBooks().ToList());

            Console.WriteLine("Сортировка книг по названию");
            bookService.SortBooks((a, b) => string.Compare(a.Title, b.Title));
            bookService.SaveBooks();
            PrintListBooks(bookRepository.GetBooks().ToList());
            MakeTestFile(fileName);
            Console.ReadKey();
        }