Example #1
0
        public void Update()
        {
            try
            {
                var book = new Book
                {
                    Id        = Guid.NewGuid(),
                    Title     = "Some title",
                    Available = false,
                };
                File.WriteAllText(BookFileName, $"{book.Id}{CsvSeparator}{book.Title}{CsvSeparator}{book.Available}");
                var bookRepository = new BookCsvRepository();
                bookRepository.GetAllBooks();

                book.Title = "New title";
                bookRepository.Update(book);

                var lines = File.ReadAllText(BookFileName)
                            .Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
                lines.Length.Should().Be(1);
                var rowData = lines[0].Split(CsvSeparator);
                (Guid.Parse(rowData[0])).Should().Be(book.Id);
                rowData[1].Should().Be(book.Title);
                (bool.Parse(rowData[2])).Should().Be(book.Available);
            }
            finally
            {
                File.Delete(BookFileName);
            }
        }
Example #2
0
        public void GetAllBooksTest()
        {
            try
            {
                var book = new Book
                {
                    Id        = Guid.NewGuid(),
                    Title     = "Some title",
                    Available = false,
                };
                File.WriteAllText(BookFileName, $"{book.Id}{CsvSeparator}{book.Title}{CsvSeparator}{book.Available}");
                var bookRepository = new BookCsvRepository();

                var actual = bookRepository.GetAllBooks();

                actual.Count.Should().Be(1);
                actual[0].Id.Should().Be(book.Id);
                actual[0].Title.Should().Be(book.Title);
                actual[0].Available.Should().Be(book.Available);
            }
            finally
            {
                File.Delete(BookFileName);
            }
        }
Example #3
0
        public void Insert()
        {
            try
            {
                var book = new Book
                {
                    Title     = "Some title",
                    Available = false,
                };
                var bookRepository = new BookCsvRepository();

                bookRepository.Insert(book);

                var lines = File.ReadAllText(BookFileName)
                            .Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
                lines.Length.Should().Be(1);
                var rowData = lines[0].Split(CsvSeparator);
                (Guid.Parse(rowData[0])).Should().NotBeEmpty();
                rowData[1].Should().Be(book.Title);
                (bool.Parse(rowData[2])).Should().Be(book.Available);
            }
            finally
            {
                File.Delete(BookFileName);
            }
        }
Example #4
0
        public static int Main(string[] args)
        {
            IBookRepository     bookRepository     = new BookCsvRepository(Path.Combine(DataFolder, BooksFilePath));
            IAuthorRepository   authorRepository   = new AuthorCsvRepository(Path.Combine(DataFolder, AuthorsFilePath));
            IMagazineRepository magazineRepository = new MagazineCsvRepository(Path.Combine(DataFolder, MagazinesFilePath));

            LibraryService service = new LibraryService(bookRepository, authorRepository, magazineRepository);

            return(Parser.Default.ParseArguments <GetAllOptions, FindByAuthorOptions, FindByISBNOptions>(args)
                   .MapResult(
                       (GetAllOptions opts) => RunGetAndReturnExitCode(opts, service),
                       (FindByAuthorOptions opts) => RunFindByAuthorAndReturnExitCode(opts, service),
                       (FindByISBNOptions opts) => RunFindByISBNAndReturnExitCode(opts, service),
                       errs => 1));
        }
Example #5
0
        public void Remove()
        {
            try
            {
                var book1 = new Book
                {
                    Id        = Guid.NewGuid(),
                    Title     = "Title 1",
                    Available = false,
                };
                var book2 = new Book
                {
                    Id        = Guid.NewGuid(),
                    Title     = "Title 2",
                    Available = true,
                };
                File.WriteAllText(BookFileName,
                                  $"{book1.Id}{CsvSeparator}{book1.Title}{CsvSeparator}{book1.Available}{Environment.NewLine}"
                                  + $"{book2.Id}{CsvSeparator}{book2.Title}{CsvSeparator}{book2.Available}");
                var bookRepository = new BookCsvRepository();
                bookRepository.GetAllBooks();

                bookRepository.Remove(book1);

                var lines = File.ReadAllText(BookFileName)
                            .Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
                lines.Length.Should().Be(1);
                var rowData = lines[0].Split(CsvSeparator);
                (Guid.Parse(rowData[0])).Should().Be(book2.Id);
                rowData[1].Should().Be(book2.Title);
                (bool.Parse(rowData[2])).Should().Be(book2.Available);
            }
            finally
            {
                File.Delete(BookFileName);
            }
        }