예제 #1
0
        public void PrestarLibroNoDisponibleTest()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            Prestamo prestamo = new Prestamo(DateTime.Now, libro, null, "Juan");

            repositorioPrestamo.Agregar(prestamo);

            // Act
            bibliotecario.Prestar(libro.Isbn, "Juan");
            try
            {
                bibliotecario.Prestar(libro.Isbn, "Juan");
                Assert.Fail();
            }
            catch (Exception err)
            {
                // Assert
                Assert.AreEqual("El libro no se encuentra disponible", err.Message);
            }
        }
        public void PrestarLibroNoDisponibleTest()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act
            bibliotecario.Prestar(libro.Isbn, "Juan");
            try
            {
                var esprestado = bibliotecario.EsPrestado(libro.Isbn);

                // Assert
                Assert.AreEqual(esprestado, true);

                /*
                 * bibliotecario.Prestar(libro.Isbn, "Juan");
                 * Assert.Fail();*/
            }
            catch (Exception err)
            {
                // Assert
                Assert.AreEqual("El libro no se encuentra disponible", err.Message);
            }
        }
예제 #3
0
        public void PrestarLibroNoDisponibleTest()
        {
            var libro = new LibroTestDataBuilder().ConTitulo(CRONICAUNAMUERTEANUNCIADA).Build();

            _repositorioLibro.Agregar(libro);
            var bibliotecario = new Bibliotecario(_repositorioLibro, _repositorioPrestamo);

            bibliotecario.Prestar(libro.Isbn, "AlbertoPalencia");
            try
            {
                bibliotecario.Prestar(libro.Isbn, "AlbertoPalencia");
                Assert.Fail();
            }
            catch (Exception err)
            {
                Assert.AreEqual("El libro no se encuentra disponible", err.Message);
            }
        }
예제 #4
0
        public void PrestarLibroNoExistenteDebeArrojarUnErrorTest()
        {
            // Arrange
            var           libro         = new Libro("12344321", "Un libro palindromo", 2012);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act
            bibliotecario.Prestar(libro.Isbn, "Juan");
        }
예제 #5
0
        public void PrestarLibroTest()
        {
            var libro = new LibroTestDataBuilder().ConTitulo(CRONICAUNAMUERTEANUNCIADA).Build();

            _repositorioLibro.Agregar(libro);
            var bibliotecario = new Bibliotecario(_repositorioLibro, _repositorioPrestamo);

            bibliotecario.Prestar(libro.Isbn, "AlbertoPalencia");
            Assert.AreEqual(bibliotecario.EsPrestado(libro.Isbn), true);
            Assert.IsNotNull(_repositorioPrestamo.ObtenerLibroPrestadoPorIsbn(libro.Isbn));
        }
예제 #6
0
        public void PrestarLibroNoDisponibleTest()
        {
            // Arrange -- Arranque
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act -- Ejecucion
            bibliotecario.Prestar(libro.Isbn, "Juan");
            //--comprobacion
            try
            {
                bibliotecario.Prestar(libro.Isbn, "Juan");
                Assert.Fail();
            }
            catch (Exception err)
            {
                // Assert -- comprobacion
                Assert.AreEqual("El libro no se encuentra disponible", err.Message);
            }
        }
예제 #7
0
        public void SumatoriaNumerosISBNMayorTreintaRetornaFechaMaxima()
        {
            // Arrange
            var libroAplicaFechaMaxima = new Libro(ISBN_FECHA_MAXIMA_PRESTAMO, "Libro con fecha de devolucion", 2012);

            repositorioLibro.Agregar(libroAplicaFechaMaxima);
            var libroNoAplicaFechaMaxima = new Libro(ISBN_SIN_FECHA_MAXIMA_PRESTAMO, "Libro sin fecha de devolucion", 2012);

            repositorioLibro.Agregar(libroNoAplicaFechaMaxima);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act
            bibliotecario.Prestar(libroAplicaFechaMaxima.Isbn, "Juan");
            bibliotecario.Prestar(libroNoAplicaFechaMaxima.Isbn, "Pedro");
            // Assert

            var prestatamoAplicaFecha   = repositorioPrestamo.Obtener(libroAplicaFechaMaxima.Isbn);
            var prestatamoNoAplicaFecha = repositorioPrestamo.Obtener(libroNoAplicaFechaMaxima.Isbn);

            Assert.IsNotNull(prestatamoAplicaFecha.FechaEntregaMaxima);
            Assert.IsNull(prestatamoNoAplicaFecha.FechaEntregaMaxima);
        }
예제 #8
0
        public void PrestarLibroTest()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act
            bibliotecario.Prestar(libro.Isbn, "Juan");

            // Assert
            Assert.AreEqual(bibliotecario.EsPrestado(libro.Isbn), true);
            Assert.IsNotNull(repositorioPrestamo.ObtenerLibroPrestadoPorIsbn(libro.Isbn));
        }
예제 #9
0
        public void ValidateFechaNula()
        {
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).ConIsbn("123456").Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            bibliotecario.Prestar(libro.Isbn, "pedrito");
            Assert.AreEqual(bibliotecario.EsPrestado(libro.Isbn), true);

            /*
             * Prestamo prestamo = repositorioPrestamo.Obtener(libro.Isbn);
             * Assert.AreEqual(null, prestamo.FechaEntregaMaxima);
             */
        }
예제 #10
0
        public void PrestarLibroCuandoIsbnEsMayorA30Digitos(string parameter)
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConIsbn(parameter).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act

            bibliotecario.Prestar(libro.Isbn, "Juan");

            // Assert
            Assert.AreEqual(bibliotecario.EsPrestado(libro.Isbn), true);
            Assert.IsNotNull(repositorioPrestamo.ObtenerLibroPrestadoPorIsbn(libro.Isbn));
        }
예제 #11
0
        public void IsPalindromo()
        {
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).ConIsbn("11211").Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            try
            {
                bibliotecario.Prestar("11211", "juan");
                Assert.Fail();
            }
            catch (Exception ex)
            {
                Assert.AreEqual(Bibliotecario.STR_IS_PALINDROMO, ex.Message);
            }
        }
예제 #12
0
        public void PrestarLibroConISBNPalindromo()
        {
            var libro = new LibroTestDataBuilder().ConIsbn(ISBN).Build();

            _repositorioLibro.Agregar(libro);
            var bibliotecario = new Bibliotecario(_repositorioLibro, _repositorioPrestamo);

            try
            {
                bibliotecario.Prestar(libro.Isbn, "AlbertoPalencia");
                Assert.Fail();
            }
            catch (Exception err)
            {
                Assert.AreEqual("Los libros palíndromos solo se pueden utilizar en la biblioteca", err.Message);
            }
        }
예제 #13
0
        public void PrestarLibroConISBNSinNombreUsuario()
        {
            var libro = new LibroTestDataBuilder().ConTitulo(CRONICAUNAMUERTEANUNCIADA).Build();

            _repositorioLibro.Agregar(libro);
            var bibliotecario = new Bibliotecario(_repositorioLibro, _repositorioPrestamo);

            try
            {
                bibliotecario.Prestar(libro.Isbn, USER);
                Assert.Fail();
            }
            catch (Exception err)
            {
                Assert.AreEqual("El nombre del usuario no puede ser null", err.Message);
            }
        }
예제 #14
0
        public void ZPrestarLibroVerificarFechaIsbnCortoTest()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConIsbn(ISBN_UNDER30_X)
                          .Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);


            // Act
            bibliotecario.Prestar(libro.Isbn, "Ana");


            //Assert
            Assert.IsNull(repositorioPrestamo.Obtener(libro.Isbn).FechaEntregaMaxima);//si no sobre pasa los 30 caracteres, guarda la entrega null
        }
        public void PrestarLibroIsbnPalindromoTest()
        {
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).ConIsbn(ISBN_PALINDROMO).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            try
            {
                bibliotecario.Prestar(libro.Isbn, "Esteban");
                Assert.Fail();
            }
            catch (Exception error)
            {
                Assert.AreEqual("los libros palíndromos solo se pueden utilizar en la biblioteca", error.Message);
            }
        }
        public void PrestarLibroNoExistenteTest()
        {
            Libro libro = new LibroTestDataBuilder().ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            try
            {
                bibliotecario.Prestar(ISBN_INCORECTO, "Esteban");
                Assert.Fail();
            }
            catch (Exception error)
            {
                Assert.AreEqual("El libro solicitado no se encuentra registrado", error.Message);
            }
        }
예제 #17
0
        public void PrestarLibroNoExistenteTest()
        {
            // Arrange
            var           libro         = new Libro(ISBN, CRONICA_UNA_MUERTE_ANUNCIADA, ANIO);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            try
            {
                // Act
                bibliotecario.Prestar(libro.Isbn, NOMBRE_USUARIO);
                Assert.Fail();
            }
            catch (Exception err)
            {
                // Assert
                Assert.AreEqual("el libro no esta en la biblioteca", err.Message);
            }
        }
예제 #18
0
        public void FechaEntregaDiferenteNull()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConIsbn(ISBN_CON_FECHA_ENTREGA).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act
            bibliotecario.Prestar(libro.Isbn, "Javier");

            // Assert
            Prestamo prestamo = repositorioPrestamo.Obtener(ISBN_CON_FECHA_ENTREGA);
            DateTime fechaConDomingosSumados = DateTime.Now.AddDays(15);

            Assert.IsNotNull(prestamo.FechaEntregaMaxima);
            Assert.AreNotEqual(fechaConDomingosSumados, prestamo.FechaEntregaMaxima);
        }
예제 #19
0
        public void LibroEsPalindromo()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConIsbn(PALINDROMO).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            try
            {
                bibliotecario.Prestar(libro.Isbn, "Jorge");
                Assert.Fail();
            }
            catch (Exception err)
            {
                // Assert
                Assert.AreEqual("Los libros palíndromos solo se pueden utilizar en la biblioteca", err.Message);
            }
        }
예제 #20
0
        public void PrestarLibroNoDisponiblePorSerPalindromo(string parameter)
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConIsbn(parameter).Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            // Act
            try
            {
                bibliotecario.Prestar(libro.Isbn, "Juan");
                Assert.Fail();
            }
            catch (Exception err)
            {
                // Assert
                Assert.AreEqual("El libro no se encuentra disponible", err.Message);
            }
        }
예제 #21
0
        public void PrestarLibroIsbnPalindromoTest()
        {
            // Arrange
            Libro libro = new Libro(ISBN_PALINDROMO, CRONICA_UNA_MUERTE_ANUNCIADA, ANIO);

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            try
            {
                // Act
                bibliotecario.Prestar(libro.Isbn, NOMBRE_USUARIO);
                Assert.Fail();
            }
            catch (Exception err)
            {
                // Assert
                Assert.AreEqual("los libros con isbn palindromos solo se pueden usar en la biblioteca", err.Message);
            }
        }
예제 #22
0
        public void ZPrestarLibroIsbnPalindromoTest()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder().ConIsbn(ISBN_30PLUS_PALINDROME)
                          .Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            try
            {
                // Act
                bibliotecario.Prestar(libro.Isbn, "Juan");
                Assert.Fail();
            }
            catch (Exception ex)
            {
                //Assert
                Assert.AreEqual("los libros palíndromos solo se pueden utilizar en la biblioteca", ex.Message);
            }
        }
예제 #23
0
        public void ZPrestarLibroCorroborarInfoTest()
        {
            // Arrange
            Libro libro = new LibroTestDataBuilder()
                          .ConIsbn(ISBN_30PLUS_X)
                          .ConAnio(1997)
                          .ConTitulo(CRONICA_UNA_MUERTE_ANUNCIADA)
                          .Build();

            repositorioLibro.Agregar(libro);
            Bibliotecario bibliotecario = new Bibliotecario(repositorioLibro, repositorioPrestamo);

            //Act
            bibliotecario.Prestar(libro.Isbn, USUARIO_EJEMPLO);

            //Assert
            Libro libroAux = repositorioPrestamo.ObtenerLibroPrestadoPorIsbn(ISBN_30PLUS_X);

            Assert.AreEqual(libroAux.Isbn, ISBN_30PLUS_X);
            Assert.AreEqual(libroAux.Titulo, CRONICA_UNA_MUERTE_ANUNCIADA);
            Assert.AreEqual(libroAux.Anio, 1997);
            Assert.AreEqual(repositorioPrestamo.Obtener(ISBN_30PLUS_X).NombreUsuario, USUARIO_EJEMPLO);
            Assert.IsNotNull(repositorioPrestamo.Obtener(ISBN_30PLUS_X).FechaEntregaMaxima);
        }