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
///
/// 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 );
DateTime fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs
DateTime fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs
bool aprobada = true;
DateTime fechaVencimiento = fechaResolucion.AddMonths( 2 );
DateTime fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0); //16 de mayo, 9hs
AutorizacionManual am = MakeAutorizacionManual( 1, fechaSolicitud, fechaResolucion, aprobada,
fechaRealizacion, fechaVencimiento );
Autorizacion.Estado estado = am.getEstado(fecha);
exitoso = ( estado == Autorizacion.Estado.Realizada );
this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso,
fecha, estado);
}
public void Test02_Manual_Estado()
{
bool exitoso = false;
// 1 de mayo, 17hs
DateTime fecha = new DateTime( 2005, 5, 1, 17, 0, 0 );
DateTime fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs
DateTime fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs
bool aprobada = true;
DateTime fechaVencimiento = fechaResolucion.AddMonths( 2 );
DateTime fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0); //16 de mayo, 9hs
AutorizacionManual am = MakeAutorizacionManual( 1, fechaSolicitud, fechaResolucion, aprobada,
fechaRealizacion, fechaVencimiento );
Autorizacion.Estado estado = am.getEstado(fecha);
exitoso = ( estado == Autorizacion.Estado.Inexistente ); //Determinación del resultado
this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso,
fecha, estado);
}
public void Test03_Manual_Estado()
{
bool exitoso = false;
// 2 de mayo, 17hs
DateTime fecha = new DateTime( 2005, 5, 2, 17, 0, 0 );
DateTime fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs
DateTime fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs
bool aprobada = true;
DateTime fechaVencimiento = fechaResolucion.AddMonths( 2 );
DateTime fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0); //16 de mayo, 9hs
AutorizacionManual am = MakeAutorizacionManual( 1, fechaSolicitud, fechaResolucion, aprobada,
fechaRealizacion, fechaVencimiento );
Autorizacion.Estado estado = am.getEstado(fecha);
exitoso = ( estado == Autorizacion.Estado.Pendiente ); //Determinación del resultado
this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso,
fecha, estado);
}
public void Test04_Manual_Estado()
{
bool exitoso = false;
// 10 de diciembre, 17hs
DateTime fecha = new DateTime( 2005, 12, 10, 17, 0, 0 );
DateTime fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs
DateTime fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs
bool aprobada = true;
DateTime fechaVencimiento = fechaResolucion.AddMonths( 2 );
DateTime fechaRealizacion = new DateTime(2005,5,16, 9, 0, 0); //16 de mayo, 9hs
AutorizacionManual am = MakeAutorizacionManual( 1, fechaSolicitud, fechaResolucion, aprobada,
fechaRealizacion, fechaVencimiento );
Autorizacion.Estado estado = am.getEstado(fecha);
exitoso = ( estado == Autorizacion.Estado.Realizada ); //Determinación del resultado
this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso,
fecha, estado);
}
public void Test05_Manual_Estado()
{
bool exitoso = false;
// 10 de diciembre, 17hs
DateTime fecha = new DateTime( 2005, 12, 10, 17, 0, 0 );
DateTime fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs
DateTime fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs
bool aprobada = true;
DateTime fechaVencimiento = fechaResolucion.AddMonths( 2 );
DateTime fechaRealizacion = DateTime.MinValue; //No realizada
AutorizacionManual am = this.MakeAutorizacionManual( 1, fechaSolicitud, fechaResolucion, aprobada,
fechaRealizacion, fechaVencimiento );
Autorizacion.Estado estado = am.getEstado(fecha);
exitoso = ( estado == Autorizacion.Estado.Realizada ); //Determinación del resultado
this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso,
fecha, estado);
}
public void Test06_Manual_Estado()
{
bool exitoso = false;
// 10 de diciembre, 17hs
DateTime fecha = new DateTime( 2005, 12, 10, 17, 0, 0 );
DateTime fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs
DateTime fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs
bool aprobada = false;
DateTime fechaVencimiento = DateTime.MinValue;
DateTime fechaRealizacion = DateTime.MinValue; //No realizada
AutorizacionManual am = this.MakeAutorizacionManual( 1, fechaSolicitud, fechaResolucion, aprobada,
fechaRealizacion, fechaVencimiento );
Autorizacion.Estado estado = am.getEstado(fecha);
exitoso = ( estado == Autorizacion.Estado.Rechazada ); //Determinación del resultado
this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso,
fecha, estado);
}
public void Test07_Manual_Estado()
{
bool exitoso = false;
// 2 de mayo, 12hs
DateTime fecha = new DateTime( 2005, 5, 2, 12, 0, 0 );
DateTime fechaSolicitud = new DateTime(2005,5,2, 11, 0, 0); //2 de mayo, 11hs
DateTime fechaResolucion = new DateTime(2005,5,2, 18, 0, 0); //2 de mayo, 18hs
bool aprobada = false;
DateTime fechaVencimiento = DateTime.MinValue;
DateTime fechaRealizacion = DateTime.MinValue; //No realizada
AutorizacionManual am = this.MakeAutorizacionManual( 1, fechaSolicitud, fechaResolucion, aprobada,
fechaRealizacion, fechaVencimiento );
Autorizacion.Estado estado = am.getEstado(fecha);
exitoso = ( estado == Autorizacion.Estado.Pendiente ); //Determinación del resultado
this.MostrarTest( System.Reflection.MethodInfo.GetCurrentMethod().Name, am, exitoso,
fecha, estado);
}
#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.Write( a.ToString() );
foreach ( object o in parametrosExtra )
{
Console.WriteLine( o.ToString() );
}
Console.WriteLine();
}
#endregion Muestra de los tests
}
}