From: Guillermo Rugilo Date: Sat, 25 Jun 2005 23:24:38 +0000 (+0000) Subject: Agrego lógica, clases y 1 caso de prueba ejemplo. X-Git-Tag: svn_import~227 X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/commitdiff_plain/dd516a3640e528b4a29c477f0ac390ac84847672?ds=inline Agrego lógica, clases y 1 caso de prueba ejemplo. Ahora la aplicación puede tener 2 "modos" : Modo test ó modo demo... configurable suciamente mediante un campo de la clase App, en Main.cs --- diff --git a/demo/src/Dominio/Autorizacion.cs b/demo/src/Dominio/Autorizacion.cs index 8cdbc23..83ee7a6 100644 --- a/demo/src/Dominio/Autorizacion.cs +++ b/demo/src/Dominio/Autorizacion.cs @@ -84,10 +84,9 @@ namespace Dominio #region Constructores - public Autorizacion( int codigo, DateTime fechaSolicitud ) + public Autorizacion( DateTime fechaSolicitud ) { #warning Ver cómo manejar los códigos con DB4O - this.Codigo = codigo; this.FechaSolicitud = fechaSolicitud; } @@ -104,8 +103,26 @@ namespace Dominio public void setResolucion( string fundamentosResolucion, float porcentajeCobertura ) { + this.FundamentosResolucion = fundamentosResolucion; + this.PorcentajeCobertura = porcentajeCobertura; } + public override string ToString() + { + string strAut = string.Empty; + + strAut += "Tipo: " + this.GetType().Name + "\n"; + + System.Reflection.PropertyInfo[] properties = this.GetType().GetProperties(); + foreach ( System.Reflection.PropertyInfo property in properties ) + { + strAut += property.Name + " = " + property.GetValue( this, null ) + "\n"; + } + + return strAut; + } + + #endregion Métodos Públicos #region Estados de una autorización @@ -155,8 +172,8 @@ namespace Dominio #region Constructores - public AutorizacionManual( int codigo, DateTime fechaSolicitud ) - : base( codigo, fechaSolicitud ) + public AutorizacionManual( DateTime fechaSolicitud ) + : base( fechaSolicitud ) { } @@ -233,8 +250,8 @@ namespace Dominio { #region Constructores - public AutorizacionAutomatica( int codigo, DateTime fechaSolicitud ) - : base( codigo, fechaSolicitud ) + public AutorizacionAutomatica( DateTime fechaSolicitud ) + : base( fechaSolicitud ) { } diff --git a/demo/src/Main.cs b/demo/src/Main.cs index ce03513..8e7dcbf 100644 --- a/demo/src/Main.cs +++ b/demo/src/Main.cs @@ -12,11 +12,36 @@ public class App ArrayList lst; Glade.XML xmla; + #region Tests + + /// + /// Decide si se corre la demo ó los tests automatizados + /// + private static bool testing = false; + + private static void EjecutarTests() + { + Tests.TestsAutorizacion.Instancia.EjecutarTodos(); + + Console.Read(); + + //Acá pueden agregar más, si quieren + } + + #endregion Tests + + #region Entry Point + static public void Main (string[] args) { - new App (); + if ( ! testing ) + new App (); + else + EjecutarTests(); } + #endregion Entry Point + public App () { Application.Init(); diff --git a/demo/src/Tests/TestsAutorizacion.cs b/demo/src/Tests/TestsAutorizacion.cs new file mode 100644 index 0000000..1175269 --- /dev/null +++ b/demo/src/Tests/TestsAutorizacion.cs @@ -0,0 +1,125 @@ +using System; +using Dominio.Autorizaciones; + +namespace Tests +{ + /// + /// Clase para testear la clase Autorizacion + /// + public sealed class TestsAutorizacion + { + #region Singleton + + private TestsAutorizacion() + { + } + + public static TestsAutorizacion Instancia + { + get { return new TestsAutorizacion(); } + } + + #endregion Singleton + + #region Factorys de Autorizaciones + + private AutorizacionAutomatica MakeAutorizacionAutomatica( int codigo, DateTime fechaSolicitud, + bool aprobada, DateTime fechaRealizacion, DateTime fechaVencimiento ) + { + AutorizacionAutomatica a = new AutorizacionAutomatica( fechaSolicitud ); + a.Codigo = codigo; + a.Aprobada = aprobada; + a.FechaRealizacion = fechaRealizacion; + a.FechaVencimiento = fechaVencimiento; + + return a; + } + + private AutorizacionManual MakeAutorizacionManual( int codigo, DateTime fechaSolicitud, + DateTime fechaResolucion, bool aprobada, DateTime fechaRealizacion, DateTime fechaVencimiento ) + { + AutorizacionManual a = new AutorizacionManual( fechaSolicitud ); + a.Codigo = codigo; + a.Aprobada = aprobada; + a.FechaResolucion = fechaResolucion; + a.FechaRealizacion = fechaRealizacion; + a.FechaVencimiento = fechaVencimiento; + + return a; + } + + #endregion Factorys de Autorizaciones + + #region Datos a usar durante las pruebas + + private DateTime fechaSolicitud; + private DateTime fechaResolucion; + private DateTime fechaRealizacion; + private DateTime fechaVencimiento; + private bool aprobada; + + #endregion Datos a usar durante las pruebas + + /// + /// Ejecuta todos los métodos de ésta clase cuyos nombres comiencen con "Test" + /// + public void EjecutarTodos() + { + System.Reflection.MethodInfo[] metodos = typeof(TestsAutorizacion).GetMethods(); + foreach ( System.Reflection.MethodInfo metodo in metodos ) + { + if ( metodo.Name.Substring(0, 4) == "Test" ) + metodo.Invoke( this, null ); + } + } + + #region Tests individuales + + public void Test01_Manual_Estado() + { + bool exitoso = false; + + // 30 de mayo, 17hs + DateTime fecha = new DateTime( 2005, 5, 30, 17, 0, 0 ); + + this.fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs + this.fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs + this.aprobada = true; + this.fechaVencimiento = fechaResolucion; + this.fechaVencimiento.AddMonths( 2 ); + this.fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0); //16 de mayo, 9hs + + AutorizacionManual am = this.MakeAutorizacionManual( 1, this.fechaSolicitud, this.fechaResolucion, this.aprobada, + this.fechaRealizacion, this.fechaVencimiento ); + + Autorizacion.Estado estado = am.getEstado(fecha); + exitoso = ( estado == Autorizacion.Estado.Realizada ); + + this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso ); + } + + #endregion Tests individuales + + #region Muestra de los tests + + private void MostrarTest( string nombre, Autorizacion a, bool exito ) //, params object[] parametrosExtra ) + { + string error = "ERROR - TEST NO SUPERADO"; + string ok = "OK - TEST SUPERADO"; + + Console.WriteLine( "Test: " + nombre ); + + if ( exito ) + Console.WriteLine( ok ); + else + Console.WriteLine( error ); + + Console.WriteLine( a.ToString() ); + + //System.Reflection.ParameterInfo[] parametros = System.Reflection.MethodInfo.GetCurrentMethod().GetParameters(); + //parametros[2]. + } + + #endregion Muestra de los tests + } +} diff --git a/demo/src/VSProject.csproj b/demo/src/VSProject.csproj index a84aaef..d51df3e 100644 --- a/demo/src/VSProject.csproj +++ b/demo/src/VSProject.csproj @@ -89,6 +89,21 @@ AssemblyName = "glib-sharp" HintPath = "bin\gtk-sharp-2.0\glib-sharp.dll" /> + + + @@ -229,6 +244,11 @@ SubType = "Code" BuildAction = "Compile" /> +