]> git.llucax.com Git - z.facultad/75.10/miklolife.git/commitdiff
Agrego lógica, clases y 1 caso de prueba ejemplo.
authorGuillermo Rugilo <guillerugilo@yahoo.com.ar>
Sat, 25 Jun 2005 23:24:38 +0000 (23:24 +0000)
committerGuillermo Rugilo <guillerugilo@yahoo.com.ar>
Sat, 25 Jun 2005 23:24:38 +0000 (23:24 +0000)
Ahora la aplicación puede tener 2 "modos" : Modo test ó modo demo... configurable suciamente mediante un campo de la clase App, en Main.cs

demo/src/Dominio/Autorizacion.cs
demo/src/Main.cs
demo/src/Tests/TestsAutorizacion.cs [new file with mode: 0644]
demo/src/VSProject.csproj

index 8cdbc23aa23ace6ea9535d28ba603f02f64c2191..83ee7a6cb0ae94c2f8696029bc1f5993edbdcae9 100644 (file)
@@ -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()\r
+                       {\r
+                               string strAut = string.Empty;\r
+\r
+                               strAut += "Tipo: " + this.GetType().Name + "\n";\r
+                               \r
+                               System.Reflection.PropertyInfo[] properties = this.GetType().GetProperties();\r
+                               foreach ( System.Reflection.PropertyInfo property in properties )\r
+                               {\r
+                                       strAut += property.Name + " = " + property.GetValue( this, null ) + "\n";\r
+                               }\r
+                       \r
+                               return strAut;\r
+                       }\r
+
+
                        #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 )
                        {
                        }
 
index ce035131de9ef0b4a19f2e6335bbcb975551b7fe..8e7dcbfe9218118d9da33728429f0ead0ee1745f 100644 (file)
@@ -12,11 +12,36 @@ public class App
        ArrayList lst;
        Glade.XML xmla;
 
+       #region Tests
+
+       /// <summary>\r
+       /// Decide si se corre la demo ó los tests automatizados\r
+       /// </summary>
+       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 (file)
index 0000000..1175269
--- /dev/null
@@ -0,0 +1,125 @@
+using System;\r
+using Dominio.Autorizaciones;\r
+\r
+namespace Tests\r
+{\r
+       /// <summary>\r
+       /// Clase para testear la clase Autorizacion\r
+       /// </summary>\r
+       public sealed class TestsAutorizacion\r
+       {\r
+               #region Singleton\r
+\r
+               private TestsAutorizacion()\r
+               {\r
+               }\r
+\r
+               public static TestsAutorizacion Instancia\r
+               {\r
+                       get { return new TestsAutorizacion(); }\r
+               }\r
+\r
+               #endregion Singleton\r
+\r
+               #region Factorys de Autorizaciones\r
+\r
+               private AutorizacionAutomatica MakeAutorizacionAutomatica( int codigo, DateTime fechaSolicitud, \r
+                       bool aprobada, DateTime fechaRealizacion, DateTime fechaVencimiento )\r
+               {\r
+                       AutorizacionAutomatica a = new AutorizacionAutomatica( fechaSolicitud );\r
+                       a.Codigo = codigo;\r
+                       a.Aprobada = aprobada;\r
+                       a.FechaRealizacion = fechaRealizacion;\r
+                       a.FechaVencimiento = fechaVencimiento;\r
+\r
+                       return a;\r
+               }\r
+\r
+               private AutorizacionManual MakeAutorizacionManual( int codigo, DateTime fechaSolicitud, \r
+                       DateTime fechaResolucion, bool aprobada, DateTime fechaRealizacion, DateTime fechaVencimiento )\r
+               {\r
+                       AutorizacionManual a = new AutorizacionManual( fechaSolicitud );\r
+                       a.Codigo = codigo;\r
+                       a.Aprobada = aprobada;\r
+                       a.FechaResolucion = fechaResolucion;\r
+                       a.FechaRealizacion = fechaRealizacion;\r
+                       a.FechaVencimiento = fechaVencimiento;\r
+\r
+                       return a;\r
+               }\r
+\r
+               #endregion Factorys de Autorizaciones\r
+\r
+               #region Datos a usar durante las pruebas\r
+\r
+               private DateTime fechaSolicitud;\r
+               private DateTime fechaResolucion;\r
+               private DateTime fechaRealizacion;\r
+               private DateTime fechaVencimiento;\r
+               private bool aprobada;\r
+\r
+               #endregion Datos a usar durante las pruebas\r
+               \r
+               /// <summary>\r
+               /// Ejecuta todos los métodos de ésta clase cuyos nombres comiencen con "Test"\r
+               /// </summary>\r
+               public void EjecutarTodos()\r
+               {\r
+                       System.Reflection.MethodInfo[] metodos = typeof(TestsAutorizacion).GetMethods();\r
+                       foreach ( System.Reflection.MethodInfo metodo in metodos )\r
+                       {\r
+                               if ( metodo.Name.Substring(0, 4) == "Test" )\r
+                                       metodo.Invoke( this, null );\r
+                       }\r
+               }\r
+\r
+               #region Tests individuales\r
+\r
+               public void Test01_Manual_Estado()\r
+               {\r
+                       bool exitoso = false;\r
+\r
+                       // 30 de mayo, 17hs\r
+                       DateTime fecha = new DateTime( 2005, 5, 30, 17, 0, 0 );\r
+\r
+                       this.fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0);         //2 de mayo, 11hs\r
+                       this.fechaResolucion = new DateTime(2005,5,2, 18, 0, 0);        //2 de mayo, 18hs\r
+                       this.aprobada = true;\r
+                       this.fechaVencimiento = fechaResolucion;\r
+                       this.fechaVencimiento.AddMonths( 2 );\r
+                       this.fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0);       //16 de mayo, 9hs\r
+\r
+                       AutorizacionManual am = this.MakeAutorizacionManual( 1, this.fechaSolicitud, this.fechaResolucion, this.aprobada, \r
+                               this.fechaRealizacion, this.fechaVencimiento );\r
+\r
+                       Autorizacion.Estado estado = am.getEstado(fecha);\r
+                       exitoso = ( estado == Autorizacion.Estado.Realizada );\r
+\r
+                       this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso );\r
+               }\r
+\r
+               #endregion Tests individuales\r
+\r
+               #region Muestra de los tests\r
+\r
+               private void MostrarTest( string nombre, Autorizacion a, bool exito ) //, params object[] parametrosExtra )\r
+               {\r
+                       string error = "ERROR - TEST NO SUPERADO";\r
+                       string ok = "OK - TEST SUPERADO";\r
+                       \r
+                       Console.WriteLine( "Test: " + nombre );\r
+\r
+                       if ( exito )\r
+                               Console.WriteLine( ok );\r
+                       else\r
+                               Console.WriteLine( error );\r
+\r
+                       Console.WriteLine( a.ToString() );\r
+\r
+                       //System.Reflection.ParameterInfo[] parametros = System.Reflection.MethodInfo.GetCurrentMethod().GetParameters();\r
+                       //parametros[2].\r
+               }\r
+\r
+               #endregion Muestra de los tests\r
+       }\r
+}\r
index a84aaefaba761299ab3dd9677ce5d7702400bc23..d51df3e0a0100f49a8a6a4998c8c4670ebf6a9d9 100644 (file)
                     AssemblyName = "glib-sharp"\r
                     HintPath = "bin\gtk-sharp-2.0\glib-sharp.dll"\r
                 />\r
+                <Reference\r
+                    Name = "System"\r
+                    AssemblyName = "System"\r
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"\r
+                />\r
+                <Reference\r
+                    Name = "System.Data"\r
+                    AssemblyName = "System.Data"\r
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"\r
+                />\r
+                <Reference\r
+                    Name = "System.XML"\r
+                    AssemblyName = "System.XML"\r
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"\r
+                />\r
             </References>\r
         </Build>\r
         <Files>\r
                     SubType = "Code"\r
                     BuildAction = "Compile"\r
                 />\r
+                <File\r
+                    RelPath = "Tests\TestsAutorizacion.cs"\r
+                    SubType = "Code"\r
+                    BuildAction = "Compile"\r
+                />\r
                 <File\r
                     RelPath = "Vistas\ABMGenerico.cs"\r
                     SubType = "Code"\r