public void CalcularPuntosConversacion_OK()
        {
            //Arange
            Conversacion conversacion = new Conversacion();

            conversacion.Nombre = "CONVERSACION 1";
            conversacion.Lineas = new System.Collections.Generic.List <Linea>()
            {
                new Linea()
                {
                    Emisor = "CLIENTE1", Mensaje = "Hola, buenos dias.", Fecha = DateTime.Now
                },
                new Linea()
                {
                    Emisor = "ASESOR1", Mensaje = "Hola CLIENTE1, bienvenido al centro de servicio.", Fecha = DateTime.Now
                }
            };

            List <IReglaConversacion> reglasDeNegocio = new List <IReglaConversacion>()
            {
                new CalcularConversacionAbandonada(),
                new CalcularBuenServicio(),
                new CalcularCoincidenciasPalabraUrgente(),
                new CalcularNumeroMensajes()
            };

            //Act
            int puntos = CalificadorUtil.CalcularPuntosConversacion(conversacion, reglasDeNegocio);

            //Asert
            Assert.AreEqual(15, puntos);
        }
        public void CalcularCalificacionConversacion_OK()
        {
            //Arange
            int puntos = 20;

            //Act
            int calificacion = CalificadorUtil.CalcularCalificacionConversacion(puntos);

            //Asert
            Assert.AreEqual(1, calificacion);
        }
        public void ValidarNombreEncabezadoConversacion_ErrorFormato()
        {
            //Arange
            StringBuilder texto = new StringBuilder();

            texto.Append("CONVERSACIONES 1");

            //Act
            bool resultado = CalificadorUtil.ValidarNombreEncabezadoConversacion(texto.ToString());

            //Asert
            Assert.AreEqual(false, resultado);
        }
        public void CargarLineaConversacion_ErrorFormato()
        {
            //Arange
            StringBuilder texto = new StringBuilder();

            texto.Append("11:58:59 ASESORES3: Con gusto, atenderemos su solicitud.");

            //Act
            Linea linea = CalificadorUtil.CargarLineaConversacion(texto.ToString(), "CONVERSACION 1");

            //Asert
            Assert.IsNull(linea);
        }
示例#5
0
        public void Prestar(string isbn, string nombreUsuario)
        {
            //variable auxiliar para obtener los caracteres del ISBN
            char[] auxISBN = isbn.ToCharArray();

            //se invierte el orden de los caracteres
            Array.Reverse(auxISBN);

            //se tiene en cuenta lo mencionado en la regla de negocio #5 (se añadie una cantidad de días por defecto para los códigos con menos de 30)
            int diasPrestamo = (isbn.Length >= 30) ? 15: DIAS_DE_PRESTAMO_DEFAULT;

            //fecha de entrega que toma valor si lleva 30+ caracteres
            DateTime?fechaEntrega = null;

            try
            {
                //se verifica si corresponde a un palíndrome
                if (isbn == new string(auxISBN))
                {
                    throw new Exception(ES_PALINDROMO);
                }

                //se verifica si esta prestado
                if (this.EsPrestado(isbn))
                {
                    throw new Exception(EL_LIBRO_NO_SE_ENCUENTRA_DISPONIBLE);
                }

                //se calcula la fecha de entrega en caso dado
                if (diasPrestamo != 0)
                {
                    fechaEntrega = CalificadorUtil.sumarDiasSinContarDomingo(DateTime.Now, diasPrestamo);
                }

                //registro del préstamo
                this.prestamoRepositorio.Agregar(
                    new Prestamo(
                        DateTime.Now,
                        libroRepositorio.ObtenerPorIsbn(isbn),
                        fechaEntrega,
                        nombreUsuario
                        )
                    );
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }