/// <summary> /// Punto de entrada de la aplicacion. /// </summary> /// <param name="args"></param> /// <exception cref="ModelException"></exception> private static void Main(string[] args) { Console.WriteLine("INICIANDO . . . ."); ISistema sistema = Startup.BuildSistema(); { //Prueba de creacion de usuario Persona persona = new Persona() { Rut = "176288043", Nombre = "Fernando", Paterno = "Caimanque", Materno = "Maulen", Email = "*****@*****.**" }; Usuario usuario = new Usuario() { Persona = persona, Password = "******", TipoUsuario = TipoUsuario.ADMINISTRADOR }; Console.WriteLine(persona); Console.WriteLine(Utils.ToJson(persona)); // Save in the repository sistema.Agregar(persona); try { sistema.AgregarUsuario(persona, usuario.Password); } catch (ModelException e) { Console.WriteLine(e.Message); return; } // Ingreso con una maximo de 3 intentos int cont = 3; while (cont != 0) { Console.WriteLine("LOGIN: "******"PASSWORD: "******"" || password == "") { Console.WriteLine("Error de ingreso"); cont--; return; } Usuario user = null; try { user = sistema.Login(credencial, password); } catch (ModelException e) { Console.WriteLine(e.Message); cont--; return; } cont = 3; switch (user.TipoUsuario) { case TipoUsuario.ADMINISTRADOR: Console.WriteLine("Bienvenido " + persona.Nombre + " " + persona.Paterno); Menu.InterfazAdmin(sistema, user); break; case TipoUsuario.PRODUCTOR: Console.WriteLine("Bienvenido " + persona.Nombre + " " + persona.Paterno); Menu.InterfazProductor(sistema, user); break; case TipoUsuario.JEFE: Console.WriteLine("Bienvenido " + persona.Nombre + " " + persona.Paterno); Menu.InterfazJefe(sistema, user); break; default: throw new ModelException("Usuario no valido"); break; } } // End While Console.WriteLine("Program Done."); } // End ISistema } // End Main
public void AllMethodsTest() { _output.WriteLine("Starting Sistema test ..."); ISistema sistema = Startup.BuildSistema(); // Insert null { Assert.Throws <ModelException>(() => sistema.Agregar((Persona)null)); } // Insert persona { _output.WriteLine("Testing insert .."); Persona persona = new Persona() { Rut = "130144918", Nombre = "Diego", Paterno = "Urrutia", Materno = "Astorga", Email = "*****@*****.**" }; sistema.Agregar(persona); } // GetPersonas { _output.WriteLine("Testing getPersonas .."); Assert.NotEmpty(sistema.GetPersonas()); } // Buscar persona { _output.WriteLine("Testing Find .."); Assert.NotNull(sistema.BuscarPersona("*****@*****.**")); Assert.NotNull(sistema.BuscarPersona("130144918")); } // Busqueda de usuario { Exception usuarioNoExiste = Assert.Throws <ModelException>(() => sistema.Login("*****@*****.**", "durrutia123")); Assert.Equal("Usuario no encontrado", usuarioNoExiste.Message); Exception usuarioNoExistePersonaSi = Assert.Throws <ModelException>(() => sistema.Login("*****@*****.**", "durrutia123")); Assert.Equal("Existe la Persona pero no tiene credenciales de acceso", usuarioNoExistePersonaSi.Message); } // Insertar usuario { Persona persona = sistema.BuscarPersona("*****@*****.**"); Assert.NotNull(persona); _output.WriteLine("Persona: {0}", Utils.ToJson(persona)); sistema.AgregarUsuario(persona, "durrutia123"); } // Busqueda de usuario { Exception usuarioExisteWrongPassword = Assert.Throws <ModelException>(() => sistema.Login("*****@*****.**", "este no es mi password")); Assert.Equal("Password no coincide", usuarioExisteWrongPassword.Message); Usuario usuario = sistema.Login("*****@*****.**", "durrutia123"); Assert.NotNull(usuario); _output.WriteLine("Usuario: {0}", Utils.ToJson(usuario)); } }