RenumeracionIvaTest.cs
1 using sage.ew.contabilidad;
2 using Microsoft.VisualStudio.TestTools.UnitTesting;
3 using System.Data;
4 using Sage.ES.S50.UnitTest.Tools;
8 using Sage.ES.S50.UnitTest.Mock;
9 using System;
10 using sage.ew.global;
11 
12 namespace Sage.ES.S50.UnitTest.Contabilidad
13 {
17  [TestClass()]
18  public class RenumeracionIvaTest
19  {
20  //Para guardar valores actuales de la global antes de ajustarlos para las pruebas
21  DateTime _periodoIni;
22  DateTime _periodoFin;
23  string _ejercicioInvocacion;
24  string _codigoEmpresa;
25  bool _ejercicioPartido;
26 
27  [TestInitialize()]
28  public void MyTestInitialize()
29  {
30  _periodoIni = Convert.ToDateTime(EW_GLOBAL._GetVariable("wd_periodoini"));
31  _periodoFin = Convert.ToDateTime(EW_GLOBAL._GetVariable("wd_periodofin"));
32  _ejercicioInvocacion = EW_GLOBAL._GetVariable("wc_any").ToString();
33  _codigoEmpresa = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
34  _ejercicioPartido = Convert.ToBoolean(EW_GLOBAL._GetVariable("wl_parti"));
35 
36  //Establecer el entorno para el test
37  EW_GLOBAL._SetVariable("wd_periodoini", new DateTime(2023,1,1));
38  EW_GLOBAL._GetVariable("wd_periodofin", new DateTime(2023, 12, 31));
39  EW_GLOBAL._SetVariable("wc_any", "2023");
40  EW_GLOBAL._SetVariable("wc_empresa", "01");
41  EW_GLOBAL._SetVariable("wl_parti", false);
42  }
43 
44  //
45  [TestCleanup()]
46  public void MyTestCleanup()
47  {
48  //Restablecer valores de la global
49  EW_GLOBAL._SetVariable("wd_periodoini", _periodoIni);
50  EW_GLOBAL._GetVariable("wd_periodofin", _periodoFin);
51  EW_GLOBAL._SetVariable("wc_any", _ejercicioInvocacion);
52  EW_GLOBAL._SetVariable("wc_empresa", _codigoEmpresa);
53  EW_GLOBAL._SetVariable("wl_parti", _ejercicioPartido);
54  }
55 
56  [Owner(Owners.Santi_Andiñach), TestMethod()]
57  [TestCategory("Injection")]
58  [Priority(1)]
60  {
61  Assert.IsNotNull(DependencyInjector.Instance.Retrieve<IRenumeracionIvaDA>(), "No se resolvió correctamente la interfaz IRenumeracionIvaDA");
62  }
63 
64  [Owner(Owners.Santi_Andiñach), TestMethod()]
65  [TestCategory("Injection")]
66  [Priority(1)]
68  {
70  Assert.IsTrue(negocio is RenumeracionIvaDAMock, "No se resolvió correctamente la clase Mock");
71  }
72 
73  [Owner(Owners.Santi_Andiñach), TestMethod()]
74  [TestCategory("Renumeracion de Iva")]
75  [Priority(2)]
77  {
78  RenumeracionIva negocio = new RenumeracionIva();
79  PrivateObject negocioPO = new PrivateObject(negocio);
80  RenumeracionIvaDAMock negocioMock = (RenumeracionIvaDAMock)negocioPO.GetField("_RenumeracionIvaDA");
81 
82  negocio._Execute_Process();
83 
84 
85  //Los datos de la instalación y del test no coinciden. Presuntamente se parametriza al empezar. Lo valido
86  var ejercicioInvocacion = (string)negocioPO.GetField("_ejercicioInvocacion");
87  Assert.IsTrue(ejercicioInvocacion.Equals("2023"), $"El test se esta ejecutando contra {ejercicioInvocacion} y se esperaba 2023 ");
88  //Ha pasado por la copia 1 vez
89  Assert.IsTrue(negocioMock.CopiaSeguridadHits.Equals(1), $"Se esperaba 1 hit sobre la copia de seguridad y hay {negocioMock.CopiaSeguridadHits}");
90  }
91  }
92 }
Interfície del acceso a datos de la renumeración de IVA
object Retrieve(Type T)
Resuelve objeto de tipo T
Clase para el proceso de renumeraicón de IVA
Clase para los tests del proceso de renumeración de IVA
bool _Execute_Process()
Ejecuta el listado (de tipo 2)
Clase Inyector de dependencias para resolver las dependencias