]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Tests/TestsAutorizacion.cs
- Hago desaparecer la desagradable variable testing
[z.facultad/75.10/miklolife.git] / demo / src / Tests / TestsAutorizacion.cs
1 using System;\r
2 using Dominio.Autorizaciones;\r
3 \r
4 namespace Tests\r
5 {\r
6         /// <summary>\r
7         /// Clase para testear la clase Autorizacion\r
8         /// </summary>\r
9         public sealed class TestsAutorizacion\r
10         {\r
11                 #region Singleton\r
12 \r
13                 private TestsAutorizacion()\r
14                 {\r
15                 }\r
16 \r
17                 public static TestsAutorizacion Instancia\r
18                 {\r
19                         get { return new TestsAutorizacion(); }\r
20                 }\r
21 \r
22                 #endregion Singleton\r
23 \r
24                 #region Factorys de Autorizaciones\r
25 \r
26                 private AutorizacionAutomatica MakeAutorizacionAutomatica( int codigo, DateTime fechaSolicitud, \r
27                         bool aprobada, DateTime fechaRealizacion, DateTime fechaVencimiento )\r
28                 {\r
29                         AutorizacionAutomatica a = new AutorizacionAutomatica( fechaSolicitud );\r
30                         a.Codigo = codigo;\r
31                         a.Aprobada = aprobada;\r
32                         a.FechaRealizacion = fechaRealizacion;\r
33                         a.FechaVencimiento = fechaVencimiento;\r
34 \r
35                         return a;\r
36                 }\r
37 \r
38                 private AutorizacionManual MakeAutorizacionManual( int codigo, DateTime fechaSolicitud, \r
39                         DateTime fechaResolucion, bool aprobada, DateTime fechaRealizacion, DateTime fechaVencimiento )\r
40                 {\r
41                         AutorizacionManual a = new AutorizacionManual( fechaSolicitud );\r
42                         a.Codigo = codigo;\r
43                         a.Aprobada = aprobada;\r
44                         a.FechaResolucion = fechaResolucion;\r
45                         a.FechaRealizacion = fechaRealizacion;\r
46                         a.FechaVencimiento = fechaVencimiento;\r
47 \r
48                         return a;\r
49                 }\r
50 \r
51                 #endregion Factorys de Autorizaciones\r
52 \r
53                 #region Datos a usar durante las pruebas\r
54 \r
55                 private DateTime fechaSolicitud;\r
56                 private DateTime fechaResolucion;\r
57                 private DateTime fechaRealizacion;\r
58                 private DateTime fechaVencimiento;\r
59                 private bool aprobada;\r
60 \r
61                 #endregion Datos a usar durante las pruebas\r
62                 \r
63                 /// <summary>\r
64                 /// Ejecuta todos los métodos de ésta clase cuyos nombres comiencen con "Test"\r
65                 /// </summary>\r
66                 public void EjecutarTodos()\r
67                 {\r
68                         System.Reflection.MethodInfo[] metodos = typeof(TestsAutorizacion).GetMethods();\r
69                         foreach ( System.Reflection.MethodInfo metodo in metodos )\r
70                         {\r
71                                 if ( metodo.Name.Substring(0, 4) == "Test" )\r
72                                         metodo.Invoke( this, null );\r
73                         }\r
74                 }\r
75 \r
76                 #region Tests individuales\r
77 \r
78                 public void Test01_Manual_Estado()\r
79                 {\r
80                         bool exitoso = false;\r
81 \r
82                         // 30 de mayo, 17hs\r
83                         DateTime fecha = new DateTime( 2005, 5, 30, 17, 0, 0 );\r
84 \r
85                         this.fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0);         //2 de mayo, 11hs\r
86                         this.fechaResolucion = new DateTime(2005,5,2, 18, 0, 0);        //2 de mayo, 18hs\r
87                         this.aprobada = true;\r
88                         this.fechaVencimiento = this.fechaResolucion.AddMonths( 2 );\r
89                         this.fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0);       //16 de mayo, 9hs\r
90 \r
91                         AutorizacionManual am = this.MakeAutorizacionManual( 1, this.fechaSolicitud, this.fechaResolucion, this.aprobada, \r
92                                 this.fechaRealizacion, this.fechaVencimiento );\r
93 \r
94                         Autorizacion.Estado estado = am.getEstado(fecha);\r
95                         exitoso = ( estado == Autorizacion.Estado.Realizada );\r
96 \r
97                         this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso, \r
98                                 fecha, estado);\r
99                 }\r
100 \r
101                 public void Test02_Manual_Estado()\r
102                 {\r
103                         bool exitoso = false;\r
104 \r
105                         // 1 de mayo, 17hs\r
106                         DateTime fecha = new DateTime( 2005, 5, 1, 17, 0, 0 );\r
107 \r
108                         this.fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0);         //2 de mayo, 11hs\r
109                         this.fechaResolucion = new DateTime(2005,5,2, 18, 0, 0);        //2 de mayo, 18hs\r
110                         this.aprobada = true;\r
111                         this.fechaVencimiento = this.fechaResolucion.AddMonths( 2 );\r
112                         this.fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0);       //16 de mayo, 9hs\r
113 \r
114                         AutorizacionManual am = this.MakeAutorizacionManual( 1, this.fechaSolicitud, this.fechaResolucion, this.aprobada, \r
115                                 this.fechaRealizacion, this.fechaVencimiento );\r
116 \r
117                         Autorizacion.Estado estado = am.getEstado(fecha);\r
118                         exitoso = ( estado == Autorizacion.Estado.Inexistente );  //Determinación del resultado\r
119 \r
120                         this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso, \r
121                                 fecha, estado);\r
122                 }\r
123 \r
124                 public void Test03_Manual_Estado()\r
125                 {\r
126                         bool exitoso = false;\r
127 \r
128                         // 2 de mayo, 17hs\r
129                         DateTime fecha = new DateTime( 2005, 5, 2, 17, 0, 0 );\r
130 \r
131                         this.fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0);         //2 de mayo, 11hs\r
132                         this.fechaResolucion = new DateTime(2005,5,2, 18, 0, 0);        //2 de mayo, 18hs\r
133                         this.aprobada = true;\r
134                         this.fechaVencimiento = this.fechaResolucion.AddMonths( 2 );\r
135                         this.fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0);       //16 de mayo, 9hs\r
136 \r
137                         AutorizacionManual am = this.MakeAutorizacionManual( 1, this.fechaSolicitud, this.fechaResolucion, this.aprobada, \r
138                                 this.fechaRealizacion, this.fechaVencimiento );\r
139 \r
140                         Autorizacion.Estado estado = am.getEstado(fecha);\r
141                         exitoso = ( estado == Autorizacion.Estado.Pendiente );  //Determinación del resultado\r
142 \r
143                         this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso, \r
144                                 fecha, estado);\r
145                 }\r
146 \r
147                 public void Test04_Manual_Estado()\r
148                 {\r
149                         bool exitoso = false;\r
150 \r
151                         // 10 de diciembre, 17hs\r
152                         DateTime fecha = new DateTime( 2005, 12, 10, 17, 0, 0 );\r
153 \r
154                         this.fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0);         //2 de mayo, 11hs\r
155                         this.fechaResolucion = new DateTime(2005,5,2, 18, 0, 0);        //2 de mayo, 18hs\r
156                         this.aprobada = true;\r
157                         this.fechaVencimiento = this.fechaResolucion.AddMonths( 2 );\r
158                         this.fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0);       //16 de mayo, 9hs\r
159 \r
160                         AutorizacionManual am = this.MakeAutorizacionManual( 1, this.fechaSolicitud, this.fechaResolucion, this.aprobada, \r
161                                 this.fechaRealizacion, this.fechaVencimiento );\r
162 \r
163                         Autorizacion.Estado estado = am.getEstado(fecha);\r
164                         exitoso = ( estado == Autorizacion.Estado.Realizada );  //Determinación del resultado\r
165 \r
166                         this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso, \r
167                                 fecha, estado);\r
168                 }\r
169 \r
170                 public void Test05_Manual_Estado()\r
171                 {\r
172                         bool exitoso = false;\r
173 \r
174                         // 10 de diciembre, 17hs\r
175                         DateTime fecha = new DateTime( 2005, 12, 10, 17, 0, 0 );\r
176 \r
177                         this.fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0);         //2 de mayo, 11hs\r
178                         this.fechaResolucion = new DateTime(2005,5,2, 18, 0, 0);        //2 de mayo, 18hs\r
179                         this.aprobada = true;\r
180                         this.fechaVencimiento = this.fechaResolucion.AddMonths( 2 );\r
181                         //this.fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0);     //No realizada\r
182 \r
183                         AutorizacionManual am = this.MakeAutorizacionManual( 1, this.fechaSolicitud, this.fechaResolucion, this.aprobada, \r
184                                 this.fechaRealizacion, this.fechaVencimiento );\r
185 \r
186                         Autorizacion.Estado estado = am.getEstado(fecha);\r
187                         exitoso = ( estado == Autorizacion.Estado.Realizada );  //Determinación del resultado\r
188 \r
189                         this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso, \r
190                                 fecha, estado);\r
191                 }\r
192 \r
193                 #endregion Tests individuales\r
194 \r
195                 #region Muestra de los tests\r
196 \r
197                 private void MostrarTest( string nombre, Autorizacion a, bool exito, params object[] parametrosExtra )\r
198                 {\r
199                         string error = "******** ERROR - TEST NO SUPERADO ********";\r
200                         string ok = "******** OK - TEST SUPERADO ********";\r
201                         \r
202                         Console.WriteLine( "Test: " + nombre );\r
203 \r
204                         if ( exito )\r
205                                 Console.WriteLine( ok );\r
206                         else\r
207                                 Console.WriteLine( error );\r
208 \r
209                         Console.Write( a.ToString() );\r
210 \r
211                         foreach ( object o in parametrosExtra )\r
212                         {\r
213                                 Console.WriteLine( o.ToString() );\r
214                         }\r
215 \r
216                         Console.WriteLine();\r
217                 }\r
218 \r
219                 #endregion Muestra de los tests\r
220         }\r
221 }\r