示例#1
0
        public void AgregarCotizacionTest()
        {
            _output.WriteLine("Starting Sistema test ...");
            ISistema   sistema            = Startup.BuildSistema();
            Cotizacion cotizacionCorrecta = new Cotizacion()
            {
                Id                = 194953607,
                RutCliente        = "194953607",
                FechaCreacion     = DateTime.Now,
                RutUsuarioCreador = "191234567",
                Items             = new List <Item>()
            };

            Item item1 = new Item();
            {
                item1.descripcion = "item de prueba1";
                item1.precio      = 250000;
            }

            Item item2 = new Item();

            {
                item2.descripcion = "item de prueba2";
                item2.precio      = 200000;
            }



            _output.WriteLine("Se ha creado una cotizacion correcta ");

            int      idINC        = 123454;
            string   rutCliINC    = "1";
            DateTime fechaCreINC  = DateTime.MaxValue;
            string   rutUsiCreINC = "10293109";

            // Models.ValidateTests.ValidateRutCorrecto(rutCliINC);

            if (idINC != Int32.Parse(rutCliINC))
            {
                _output.WriteLine("La cotizacion con el rut no tienen coincidencia con la id");
            }

            if (fechaCreINC != DateTime.Today)
            {
                _output.WriteLine("La cotizacion en su fecha de creacion no es la correcta");
            }

            Assert.Throws <ModelException>(() => Validate.ValidarRut(rutCliINC));
            Assert.Throws <ModelException>(() => Validate.ValidarRut(rutUsiCreINC));
            // si estas 2 validaciones se comprueban se crearian las cotizaciones
            Assert.Throws <ModelException>(() => sistema.AgregarCotizacion(null));
        }
示例#2
0
        public void EliminarCotizacionTest()
        {
            _output.WriteLine("Starting Sistema test ...");
            ISistema sistema = Startup.BuildSistema();

            {
                _output.WriteLine("Testing insert ..");
                Cotizacion cotizacion = new Cotizacion();
                {
                    cotizacion.Id                = 1;
                    cotizacion.FechaCreacion     = DateTime.Now;
                    cotizacion.RutCliente        = "174920524";
                    cotizacion.RutUsuarioCreador = "147112912";
                    cotizacion.Items             = new List <Item>();
                };

                Item item1 = new Item();
                {
                    item1.descripcion = "item de prueba1";
                    item1.precio      = 250000;
                };

                Item item2 = new Item();
                {
                    item2.descripcion = "item de prueba2";
                    item2.precio      = 200000;
                }

                Console.WriteLine(item1.descripcion);
                cotizacion.Items.Add(item1);
                cotizacion.Items.Add(item2);

                Console.WriteLine(cotizacion);
                Console.WriteLine(Utils.ToJson(cotizacion));
                //problema que el item sigue siendo null
                sistema.AgregarCotizacion(cotizacion);
            }
            _output.WriteLine("Done..");
            _output.WriteLine("Probando criterio de id de eliminacion");

            //Probar criterio de busqueda en blanco o null
            //Probar criterio de eliminacion inxistente
            {
                Assert.Throws <ModelException>(() => sistema.EliminarCotizacion(91823719)); //numero inexistente
                Assert.Throws <ModelException>(() => sistema.EliminarCotizacion(0));        // numero 0
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(" "));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(""));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(null));
            }
            _output.WriteLine("Done..");
        }
示例#3
0
文件: Menu.cs 项目: A-Vejar/PresUPA
        // -----------------------------------------------------------------------------
        //    >> COTIZACION <<
        // -----------------------------------------------------------------------------

        /// <summary>
        /// Despliegue en consola para crear cotizacion
        /// </summary>
        /// <param name="sistema"></param>
        /// <exception cref="ModelException"></exception>
        public static void MenuCrearCotizacion(ISistema sistema)
        {
            Console.WriteLine("Ingrese nombre de cotizacion: ");
            string NombreCotizacion = Console.ReadLine();

            Console.WriteLine("Asociar a Cliente: ");

            Cliente ClienteCotiz = MenuNuevoCliente(sistema);

            if (ClienteCotiz == null)
            {
                throw new ModelException("Error ingreso de cliente");
            }

            List <Servicio> serviciosCotiz = new List <Servicio>();

            Console.WriteLine("Ingrese servicios solicitados: ");

            while (true)
            {
                string   alt      = ".";
                Servicio servicio = MenuNuevoServicio();
                serviciosCotiz.Add(servicio);

                Console.WriteLine("1. Agregar un nuevo servicio");
                Console.WriteLine("[Para terminar pulse otra tecla]");

                alt = Console.ReadLine();

                if (alt != null && alt.Equals("1"))
                {
                    continue;
                }
                break;
            }

            Console.WriteLine("Ingrese una descripcion acerca de la cotizacion: ");
            string descripcionCotiz = Console.ReadLine();


            sistema.AgregarCotizacion(new Cotizacion()
            {
                Nombre      = NombreCotizacion,
                Descripcion = descripcionCotiz,
                Cliente     = ClienteCotiz,
                Servicios   = serviciosCotiz
            });

            Console.WriteLine("Cotizacion creada");
        }
示例#4
0
        public void BusquedaCotizacionesTest()
        {
            _output.WriteLine("Starting System Test");
            ISistema sistema = Startup.BuildSistema();

            //insert cotizaciones
            {
                _output.WriteLine("Testing insert .. ");
                Cotizacion cotizacion = new Cotizacion();
                {
                    cotizacion.Id                = 1;
                    cotizacion.RutCliente        = "197116730";
                    cotizacion.RutUsuarioCreador = "181690321";
                    cotizacion.FechaCreacion     = DateTime.Now;
                    cotizacion.Items             = new List <Item>();
                };
                Item item1 = new Item();
                {
                    item1.descripcion = "Item 1 de prueba";
                    item1.precio      = 40000;
                }
                ;
                Item item2 = new Item();
                {
                    item2.descripcion = "Item 2 de prueba";
                    item2.precio      = 30000;
                }

                Console.WriteLine(item1.descripcion);
                cotizacion.Items.Add(item1);
                cotizacion.Items.Add(item2);

                Console.WriteLine(cotizacion);
                Console.WriteLine(Utils.ToJson(cotizacion));
                sistema.AgregarCotizacion(cotizacion);
            }
            _output.WriteLine("Done .. ");
            _output.WriteLine("Probando criterio de busqueda");
            {
                Assert.Throws <ArgumentException>(() => sistema.TipoBusqueda(" "));
                Assert.Throws <ArgumentException>(() => sistema.TipoBusqueda(""));
                Assert.Throws <ArgumentException>(() => sistema.TipoBusqueda(null));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(" "));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(""));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(null));
            }
            _output.WriteLine("Done ..");
        }
示例#5
0
        public void EliminarCotizacionTest()
        {
            _output.WriteLine("Starting System Test .. ");
            ISistema sistema = Startup.BuildSistema();

            {
                _output.WriteLine("Testing insert ..");
                Cotizacion cotizacion = new Cotizacion();
                {
                    cotizacion.Id                = 1;
                    cotizacion.RutCliente        = "197116730";
                    cotizacion.RutUsuarioCreador = "181690321";
                    cotizacion.FechaCreacion     = DateTime.Now;
                    cotizacion.Items             = new List <Item>();
                };

                Item item1 = new Item();
                {
                    item1.descripcion = "Item de prueba 1";
                    item1.precio      = 40000;
                }
                ;
                Item item2 = new Item();
                {
                    item2.descripcion = "Item de prueba 2";
                    item2.precio      = 30000;
                }
                Console.WriteLine(item1.descripcion);
                cotizacion.Items.Add(item1);
                cotizacion.Items.Add(item2);

                Console.WriteLine(cotizacion);
                Console.WriteLine(Utils.ToJson(cotizacion));
                sistema.AgregarCotizacion(cotizacion);
            }
            _output.WriteLine("Done .. ");
            _output.WriteLine("Testing criterio Id eliminacion");

            {
                Assert.Throws <ModelException>(() => sistema.EliminarCotizacion(111111)); //numero inexistente
                Assert.Throws <ModelException>(() => sistema.EliminarCotizacion(0));      // numero 0
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(" "));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(""));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(null));
            }
            _output.WriteLine("Done .. ");
        }
示例#6
0
        public void EditarCotizacionTest()
        {
            _output.WriteLine("Starting EditaCotizacionTest ...");
            ISistema   sistema            = Startup.BuildSistema();
            Cotizacion cotizacionCorrecta = new Cotizacion()
            {
                Id                = 1,
                RutCliente        = "194953607",
                FechaCreacion     = DateTime.Now,
                RutUsuarioCreador = "140578797",
                Items             = new List <Item>()
            };

            Item item1 = new Item();
            {
                item1.descripcion = "item de prueba1";
                item1.precio      = 250000;
            }

            Item item2 = new Item();

            {
                item2.descripcion = "item de prueba2";
                item2.precio      = 200000;
            }

            sistema.AgregarCotizacion(cotizacionCorrecta);

            _output.WriteLine("Se ha creado una cotizacion correcta ");
            string   rutCambio   = "148999910";
            DateTime fechaCambio = DateTime.ParseExact("01/01/2030", "dd/mm/yyyy", null);

            _output.WriteLine(" Comprobando su Rut ... ");
            new Models.ValidateTests().ValidateRutCorrecto(rutCambio);
            if (fechaCambio >= DateTime.Now)
            {
                _output.WriteLine("Imposible realizar esta cambio con la fecha Mayor al dia actual");
            }

            _output.WriteLine("no deberia aceptar una id 0, null, o valor de busqueda vacio");
            //no deberia aceptar una id 0
            Assert.Throws <ModelException>(() => sistema.EditarCotizacion(0, "RutCliente", "147112912"));
            //no deberia aceptar un campo null
            Assert.Throws <ArgumentNullException>(() => sistema.EditarCotizacion(1, null, "cambio123"));
            // no deberia acpetar un Cambio vacio
            //Assert.Throws<ArgumentNullException>(() => sistema.EditarCotizacion(1, "RutCliente", ""));
        }
示例#7
0
        /// <summary>
        /// Punto de entrada de la aplicacion.
        /// </summary>
        /// <param name="args"></param>
        /// <exception cref="ModelException"></exception>
        private static void Main(string[] args)
        {
            Console.WriteLine("Building Sistema ..");
            ISistema sistema = Startup.BuildSistema();

            Console.WriteLine("Creating Persona ..");
            {
                Persona persona = new Persona()
                {
                    Rut     = "130144918",
                    Nombre  = "Diego",
                    Paterno = "Urrutia",
                    Materno = "Astorga",
                    Email   = "*****@*****.**"
                };

                Console.WriteLine(persona);
                Console.WriteLine(Utils.ToJson(persona));

                // Save in the repository
                sistema.Save(persona);
            }

            Console.WriteLine("Finding personas ..");
            {
                IList <Persona> personas = sistema.GetPersonas();
                Console.WriteLine("Size: " + personas.Count);

                foreach (Persona persona in personas)
                {
                    Console.WriteLine("Persona = " + Utils.ToJson(persona));
                }
            }

            Console.WriteLine("Done.");

            Console.WriteLine("Creating Cotizacion ..");
            {
                Cotizacion cotizacion = new Cotizacion();
                {
                    cotizacion.Id                = 1;
                    cotizacion.FechaCreacion     = DateTime.Now;
                    cotizacion.RutCliente        = "197116730";
                    cotizacion.RutUsuarioCreador = "181690321";
                    cotizacion.Items             = new List <Item>();
                }
                ;
                Item item1 = new Item();
                {
                    item1.descripcion = "Item de prueba1";
                    item1.precio      = 40000;
                }
                ;
                Item item2 = new Item();
                {
                    item2.descripcion = "Item de prueba2";
                    item2.precio      = 30000;
                }

                Console.WriteLine(item1.descripcion);
                cotizacion.Items.Add(item1);
                cotizacion.Items.Add(item2);

                Console.WriteLine(cotizacion);
                Console.WriteLine(Utils.ToJson(cotizacion));
                sistema.AgregarCotizacion(cotizacion);

                IList <Cotizacion> cot = sistema.BuscarCotizacion("181690321");
            }

            Console.WriteLine("Creacion cotizacion .. done.");
        }
示例#8
0
        public void BusquedaDeCotizacionesTest()
        {
            _output.WriteLine("Starting Sistema test ...");
            ISistema sistema = Startup.BuildSistema();

            //Insert Cotizaciones
            {
                _output.WriteLine("Testing insert ..");
                Cotizacion cotizacion = new Cotizacion();
                {
                    cotizacion.Id                = 1;
                    cotizacion.FechaCreacion     = DateTime.Now;
                    cotizacion.RutCliente        = "174920524";
                    cotizacion.RutUsuarioCreador = "147112912";
                    cotizacion.Items             = new List <Item>();
                };

                Item item1 = new Item();
                {
                    item1.descripcion = "item de prueba1";
                    item1.precio      = 250000;
                };

                Item item2 = new Item();
                {
                    item2.descripcion = "item de prueba2";
                    item2.precio      = 200000;
                }

                Console.WriteLine(item1.descripcion);
                cotizacion.Items.Add(item1);
                cotizacion.Items.Add(item2);

                Console.WriteLine(cotizacion);
                Console.WriteLine(Utils.ToJson(cotizacion));
                //problema que el item sigue siendo null
                sistema.AgregarCotizacion(cotizacion);
            }
            _output.WriteLine("Done..");
            _output.WriteLine("Probando criterio de busqueda null o vacio");
            //Probar criterio de busqueda en blanco o null
            {
                Assert.Throws <ArgumentException>(() => sistema.TipoBusqueda(" "));
                Assert.Throws <ArgumentException>(() => sistema.TipoBusqueda(""));
                Assert.Throws <ArgumentException>(() => sistema.TipoBusqueda(null));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(" "));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(""));
                Assert.Throws <ArgumentException>(() => sistema.BuscarCotizacion(null));
            }
            _output.WriteLine("Done..");

            _output.WriteLine("Probando busqueda por rut..");
            //Probar busqueda por rut (exito)
            {
                //buscar por rut del UsuarioCreador
                IList <Cotizacion> cotizaciones1 = sistema.BuscarCotizacion("174920524");
                //buscar por rut del cliente
                IList <Cotizacion> cotizaciones2 = sistema.BuscarCotizacion("147112912");
                Assert.NotNull(cotizaciones1);
                Assert.NotNull(cotizaciones2);
                Assert.NotEmpty(cotizaciones1);
                Assert.NotEmpty(cotizaciones2);
            }

            //probar busqueda por rut (no exito)
            {
                //buscar por rut
                IList <Cotizacion> cotizaciones1 = sistema.BuscarCotizacion("168174209");
                Assert.Empty(cotizaciones1);
            }
            _output.WriteLine("Done..");
            _output.WriteLine("Probando busqueda por texto");
            //buscar por texto (exito)
            {
                //La cotizaciones de prueba contiene "item de prueba1" en su descripcion
                IList <Cotizacion> cotizaciones = sistema.BuscarCotizacion("prueba1");
                Assert.NotEmpty(cotizaciones);
            }

            //buscar por texto (no exito)
            {
                IList <Cotizacion> cotizaciones = sistema.BuscarCotizacion("exto no existe en las cotizaciones");
                Assert.Empty(cotizaciones);
            }
            _output.WriteLine("Done..");

            //busqueda por fecha (exito)
            _output.WriteLine("probando busqueda por fecha");
            {
                DateTime           t0           = DateTime.ParseExact("01/01/2018", "dd/mm/yyyy", null);
                DateTime           tf           = DateTime.ParseExact("01/01/2019", "dd/mm/yyyy", null);
                IList <Cotizacion> cotizaciones = sistema.BuscarCotizacionEntreFechas("prueba1", t0, tf);
                Assert.NotEmpty(cotizaciones);
            }
            //busqueda por fecha (no exito)
            {
                DateTime           t0           = DateTime.ParseExact("01/01/2017", "dd/mm/yyyy", null);
                DateTime           tf           = DateTime.ParseExact("01/01/2018", "dd/mm/yyyy", null);
                IList <Cotizacion> cotizaciones = sistema.BuscarCotizacionEntreFechas("prueba1", t0, tf);
                Assert.Empty(cotizaciones);
            }
            _output.WriteLine("Done..");

            //Esto no fue necesario ya que DateTime se inicializa automaticamente en DateTime.MinValue
            //https://stackoverflow.com/questions/221732/datetime-null-value
            //Probar fechas null
            //{
            //    DateTime t = null;
            //    Assert.Throws<ArgumentNullException>(() => sistema.BuscarCotizacionEntreFechas("criterio", t, t));
            //}
        }