Beispiel #1
0
        bool IOptionHandle.Execute()
        {
            Book book = new Book();

            Console.WriteLine("Ingrese los datos del libro:");
            Console.Write("ISBN: ");
            book.Isbn = Console.ReadLine();
            Console.Write("Titulo: ");
            book.Title = Console.ReadLine();
            Console.Write("Autor: ");
            book.Author = Console.ReadLine();
            try
            {
                IBookRepository repository = RepositoryFactory.CreateBookRepository("json", GetCurrentPath());
                BookRules       rules      = new BookRules(repository);
                rules.Add(book);
                Console.WriteLine($"El libro ha sido creado, Total libros: {rules.Count()}");
                Console.WriteLine();
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine();
                Console.Error.WriteLine($"\t{ex.Message}");
                Console.WriteLine();
                Console.WriteLine();
            }
            return(true);
        }
        public void DuplicatedTitle()
        {
            var book1 = new Book {
                Isbn   = "1233434234334",
                Title  = "Don quijote de la mancha",
                Author = "Miguel Servantes"
            };

            IBookRepository repo = NSubstitute.Substitute.For <IBookRepository>();

            repo.Exists(Arg.Any <Book>()).Returns(true);
            var rules = new BookRules(repo);

            Assert.That(() => rules.Add(book1),
                        Throws.TypeOf <ArgumentException>().With.Message.Contains("Duplicated Book"));
        }
        public void ValidTitle(string title)
        {
            //Arrange
            Book book = new Book
            {
                Isbn   = "1234567890123",
                Title  = title,
                Author = "Gabriel Garcia Marquez"
            };
            //Act
            IBookRepository repo  = NSubstitute.Substitute.For <IBookRepository>();
            BookRules       rules = new BookRules(repo);

            //Assert
            rules.Add(book);
            Assert.Pass();
        }
        public void ValidAuthor(string author)
        {
            //Arrange
            Book book = new Book
            {
                Isbn   = "1234567890123",
                Title  = "Don quijote de la mancha",
                Author = author
            };
            //Act
            IBookRepository repo  = NSubstitute.Substitute.For <IBookRepository>();
            BookRules       rules = new BookRules(repo);

            //Assert
            rules.Add(book);
            Assert.Pass();
        }
        public void InvalidTitle(string title)
        {
            //Arrange
            Book book = new Book
            {
                Isbn   = "1234567890123",
                Title  = title,
                Author = "Gabriel Garcia Marquez"
            };

            //Act
            IBookRepository repo  = NSubstitute.Substitute.For <IBookRepository>();
            BookRules       rules = new BookRules(repo);

            //Assert
            Assert.That(() => rules.Add(book),
                        Throws.TypeOf <ArgumentException>().With.Message.Contains("Invalid Title"));
        }
        public void ValidISBN(string isbn)
        {
            //Arrange
            Book book = new Book
            {
                Title  = "Don Quijote de la mancha",
                Isbn   = isbn,
                Author = "Gabriel Garcia Marquez"
            };

            //Act
            IBookRepository repo  = NSubstitute.Substitute.For <IBookRepository>();
            BookRules       rules = new BookRules(repo);

            //Assert
            rules.Add(book);
            Assert.Pass();
        }
        public void InvalidAuthor(string author)
        {
            //Arrange
            Book book = new Book
            {
                Isbn   = "1234567890123",
                Title  = "Don quijote de la mancha",
                Author = author
            };

            //Act
            IBookRepository repo  = NSubstitute.Substitute.For <IBookRepository>();
            BookRules       rules = new BookRules(repo);

            //Assert
            Assert.That(() => rules.Add(book),
                        Throws.TypeOf <ArgumentException>().With.Message.Contains("Invalid Author"));
        }