1 using Microsoft.VisualStudio.TestTools.UnitTesting;
10 using System.Collections.Generic;
13 using System.Threading.Tasks;
20 [DeploymentItem(
@"XML\CobrosEnMetalico\",
@"XML\CobrosEnMetalico")]
23 public class CobrosEnMetalicoTest
25 #region PROPIEDADES PRIVADAS 26 private string _ejercicio =
string.Empty;
28 private String _NIF =
string.Empty;
29 private decimal _importe = 0;
30 private decimal _trimestre1 = 0;
31 private decimal _trimestre2 = 0;
32 private decimal _trimestre3 = 0;
33 private decimal _trimestre4 = 0;
34 #endregion PROPIEDADES PRIVADAS 36 #region TEST INITIALIZE/CLEANUP 41 public void MyTestInitialize()
43 _ejercicio = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_any"));
45 EW_GLOBAL._SetVariable(
"wc_any",
"2023");
52 public void MyTestCleanup()
54 EW_GLOBAL._SetVariable(
"wc_any", _ejercicio);
56 #endregion TEST INITIALIZE/CLEANUP 58 #region TESTS COBROS EN METÁLICO 59 [Owner(Owners.Diego_Martinez),
64 Description(
"Cobro en metálico de una factura, con un único cliente de NIF B58836321 y un importe superior a 6.000€ (10.4000€)"),
65 DeploymentItem(
"sage.50.exe")]
67 [TestCategory(
"Contabilidad")]
68 [DataRow(
"B58836321", 10400.00, 0.00, 0.00, 0.00, 10400.00)]
69 public void CobrosEnMetalicoUnClienteUnaFacturaSoloCobroEfectivoTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
72 string descripcionTest =
"Cobro en metálico de una factura, con un único cliente de NIF B58836321 y un importe superior a 6.000€ (10.4000€)";
73 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
81 metalico.
_Load(EjerciciosMetalico());
85 AssertInformacionMetalico(metalico, descripcionTest);
86 AssertInformacionMetalicoItem(metalico, descripcionTest);
92 [Owner(Owners.Diego_Martinez),
94 Description(
"Cobro en metálico de 2 facturas de (4.235€ y 4.235€), con un único cliente de NIF 43000005X y un importe superior a 6.000€ (8.470€)"),
95 DeploymentItem(
"sage.50.exe")]
97 [TestCategory(
"Contabilidad")]
98 [DataRow(
"43000005X", 8470.00, 0.00, 8470.00, 0.00, 0.00)]
99 public void CobrosEnMetalicoUnClienteDosFacturasSoloCobroEfectivoTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
102 string descripcionTest =
"Cobro en metálico de 2 facturas de (4.235€ y 4.235€), con un único cliente de NIF 43000005X y un importe superior a 6.000€ (8.470€)";
103 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
111 metalico.
_Load(EjerciciosMetalico());
115 AssertInformacionMetalico(metalico, descripcionTest);
116 AssertInformacionMetalicoItem(metalico, descripcionTest);
126 [Owner(Owners.Diego_Martinez),
128 Description(
"Cobro en metálico donde tenemos el desglose guardado en la tabla MOD347M. Cobro de 2 facturas de clientes diferentes y en el asiento del cobro tenemos dos formas de cobros diferente"),
129 DeploymentItem(
"sage.ew.contabilidad.dll")]
131 [TestCategory(
"Contabilidad")]
132 [DataRow(
"43000006B", 31200.00, 0.00, 0.00, 0.00, 31200.00)]
133 public void CobrosEnMetalicoDosClientesDosFormasCobroConDesgloseEfectivoTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
136 string descripcionTest =
"Cobro en metálico donde tenemos el desglose guardado en la tabla MOD347M. Cobro de 2 facturas de clientes diferentes y en el asiento del cobro tenemos dos formas de cobros diferente";
137 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
145 metalico.
_Load(EjerciciosMetalico());
149 AssertInformacionMetalico(metalico, descripcionTest);
150 AssertInformacionMetalicoItem(metalico, descripcionTest);
160 [Owner(Owners.Diego_Martinez),
162 Description(
"Cobro en metálico donde NO tenemos el desglose guardado en la tabla MOD347M. Cobro de 2 facturas de clientes diferentes y en el asiento del cobro tenemos dos formas de cobros diferente"),
163 DeploymentItem(
"sage.ew.contabilidad.dll")]
165 [TestCategory(
"Contabilidad")]
166 [DataRow(
"43000006B", 31200.00, 0.00, 0.00, 0.00, 31200.00)]
167 public void CobrosEnMetalicoDosClientesDosFormasCobroSinDesgloseEfectivoTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
170 string descripcionTest =
"Cobro en metálico donde NO tenemos el desglose guardado en la tabla MOD347M. Cobro de 2 facturas de clientes diferentes y en el asiento del cobro tenemos dos formas de cobros diferente";
171 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
179 metalico.
_Load(EjerciciosMetalico());
183 AssertInformacionMetalicoSinRegistroItem(metalico, descripcionTest);
193 [Owner(Owners.Diego_Martinez),
195 Description(
"Cobro en metálico para validar los clientes facturas o clientes con el mismo NIF (Cliente factura)"),
196 DeploymentItem(
"sage.ew.contabilidad.dll")]
198 [TestCategory(
"Contabilidad")]
199 [DataRow(
"43000104V", 7200.00, 0.00, 0.00, 0.00, 7200.00)]
200 public void CobrosEnMetalicoDosClientesConClienteFacturaTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
203 string descripcionTest =
"Cobro en metálico para validar los clientes facturas o clientes con el mismo NIF (Cliente factura)";
204 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
212 metalico.
_Load(EjerciciosMetalico());
216 AssertInformacionMetalico(metalico, descripcionTest);
217 AssertInformacionMetalicoItem(metalico, descripcionTest);
228 [Owner(Owners.Diego_Martinez),
230 Description(
"Cobro en metálico de 3 clientes diferentes con el mismo NIF (No está guardado de la misma forma)"),
231 DeploymentItem(
"sage.ew.contabilidad.dll")]
233 [TestCategory(
"Contabilidad")]
234 [DataRow(
"43000106L", 7384.00, 1560.00, 2496.00, 3328.00, 0.00)]
235 public void CobrosEnMetalicoTresClientesConMismoNIFTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
238 string descripcionTest =
"Cobro en metálico de 3 clientes diferentes con el mismo NIF (No está guardado de la misma forma)";
239 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
247 metalico.
_Load(EjerciciosMetalico());
251 AssertInformacionMetalico(metalico, descripcionTest);
252 AssertInformacionMetalicoItem(metalico, descripcionTest);
261 [Owner(Owners.Diego_Martinez),
263 Description(
"Cobro en metálico IVA Europeo - Operaciones en el Régimen de la Unión - OSS servicio sujeto"),
264 DeploymentItem(
"sage.ew.contabilidad.dll")]
266 [TestCategory(
"Contabilidad")]
267 [DataRow(
"FR54515379444", 12100.00, 0.00, 0.00, 0.00, 12100.00)]
268 public void CobrosEnMetalicoIVAEuropeoOSSServicioSujetoTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
271 string descripcionTest =
"Cobro en metálico IVA Europeo - Operaciones en el Régimen de la Unión - OSS servicio sujeto";
272 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
280 metalico.
_Load(EjerciciosMetalico());
284 AssertInformacionMetalico(metalico, descripcionTest);
285 AssertInformacionMetalicoItem(metalico, descripcionTest);
292 [Owner(Owners.Diego_Martinez),
294 Description(
"Cobro en metálico de un factura de suplidos"),
295 DeploymentItem(
"sage.ew.contabilidad.dll")]
297 [TestCategory(
"Contabilidad")]
298 [DataRow(
"43091030R", 40000.00, 0.00, 0.00, 0.00, 40000.00)]
299 public void CobrosEnMetalicoFacturaConSuplidosTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
302 string descripcionTest =
"Cobro en metálico de un factura de suplidos";
303 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
311 metalico.
_Load(EjerciciosMetalico());
315 AssertInformacionMetalicoSinRegistroItem(metalico, descripcionTest);
328 [Owner(Owners.Diego_Martinez),
330 Description(
"Cobros en metálico de un factura realizada en el ejercicio 2022 (Con cobros en el 2023)"),
331 DeploymentItem(
"sage.ew.contabilidad.dll")]
333 [TestCategory(
"Contabilidad")]
334 [DataRow(
"43000100J", 11000.00, 0.00, 0.00, 0.00, 11000.00)]
335 public void CobrosEnMetalicoFacturaEjercicioAnteriorConCobroEnActualTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
338 string descripcionTest =
"Cobros en metálico de un factura realizada en el ejercicio 2022 (Con cobros en el 2023)";
339 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
347 metalico.
_Load(EjerciciosMetalico());
351 AssertInformacionMetalico(metalico, descripcionTest);
352 AssertInformacionMetalicoItem(metalico, descripcionTest);
364 [Owner(Owners.Diego_Martinez),
366 Description(
"Cobros en metálico de un factura realizada en el ejercicio 2022 (Sin cobros en el 2023)"),
367 DeploymentItem(
"sage.ew.contabilidad.dll")]
369 [TestCategory(
"Contabilidad")]
370 [DataRow(
"43000100J", 0.00, 0.00, 0.00, 0.00, 0.00)]
371 public void CobrosEnMetalicoFacturaEjercicioAnteriorSinCobroEnActualTest(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
374 string descripcionTest =
"Cobros en metálico de un factura realizada en el ejercicio 2022 (Sin cobros en el 2023)";
375 Arrange(nif, importe, trimestre1, trimestre2, trimestre3, trimestre4);
383 metalico.
_Load(EjerciciosMetalico());
387 AssertInformacionMetalicoSinRegistroItem(metalico, descripcionTest);
390 #endregion TESTS COBROS EN METÁLICO 392 #region MÉTODOS PRIVADOS 393 private void RegisterTypes()
414 private void Arrange(
string nif,
double importe,
double trimestre1,
double trimestre2,
double trimestre3,
double trimestre4)
417 _importe = Convert.ToDecimal(importe);
418 _trimestre1 = Convert.ToDecimal(trimestre1);
419 _trimestre2 = Convert.ToDecimal(trimestre2);
420 _trimestre3 = Convert.ToDecimal(trimestre3);
421 _trimestre4 = Convert.ToDecimal(trimestre4);
430 private string[] EjerciciosMetalico()
432 string[] lcEjercicios =
new string[] { };
434 lcEjercicios =
new string[1];
435 lcEjercicios[0] = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_any"));
445 private void AssertInformacionMetalico(
IMetalico metalico,
string descripcionTest)
447 Assert.IsNotNull(metalico, $
"No se ha podido inicializar la clase para consultar los cobros en metálico. {descripcionTest}");
448 Assert.IsTrue(metalico.
_CobrosEnMetalico.Count > 0, $
"No hay información de cobros en metálico. {descripcionTest}");
456 private void AssertInformacionMetalicoItem(
IMetalico metalico,
string descripcionTest)
461 Assert.IsTrue(cobroEnMetalico.
_NIF == _NIF, $
"El NIF del cliente es {cobroEnMetalico._NIF} cuando se esperaba el NIF {_NIF}.");
462 Assert.IsTrue(cobroEnMetalico.
_Importe == _importe, $
"El importe total de cobros en metálico es de {cobroEnMetalico._Importe} cuando se esperaba un importe de {_importe}. {descripcionTest}");
463 Assert.IsTrue(cobroEnMetalico.
_Trimestre1 == _trimestre1, $
"El importe de cobros en metálico del 'Trimestre 1' es de {cobroEnMetalico._Trimestre1} cuando se esperaba un importe de {_trimestre1}. {descripcionTest}");
464 Assert.IsTrue(cobroEnMetalico.
_Trimestre2 == _trimestre2, $
"El importe de cobros en metálico del 'Trimestre 2' es de {cobroEnMetalico._Trimestre2} cuando se esperaba un importe de {_trimestre2}. {descripcionTest}");
465 Assert.IsTrue(cobroEnMetalico.
_Trimestre3 == _trimestre3, $
"El importe de cobros en metálico del 'Trimestre 3' es de {cobroEnMetalico._Trimestre3} cuando se esperaba un importe de {_trimestre3}. {descripcionTest}");
466 Assert.IsTrue(cobroEnMetalico.
_Trimestre4 == _trimestre4, $
"El importe de cobros en metálico del 'Trimestre 4' es de {cobroEnMetalico._Trimestre4} cuando se esperaba un importe de {_trimestre4}. {descripcionTest}");
474 private void AssertInformacionMetalicoSinRegistroItem(
IMetalico metalico,
string descripcionTest)
476 Assert.IsNotNull(metalico, $
"No se ha podido inicializar la clase para consultar los cobros en metálico. {descripcionTest}");
482 Assert.IsTrue(lstMetalico.Count == 0, $
"No se esperaba ningún registro con el NIF {_NIF}.");
485 Assert.IsTrue(metalico.
_CobrosEnMetalico.Count == 0, $
"No se esperaba ningun registro cobros en metálico. {descripcionTest}");
487 #endregion MÉTODOS PRIVADOS
void Register(Type I, Type T, params InjectionMember[] injectionMember)
Regista tipo
static DependencyInjector Instance
Instancia
Clase Inyector de dependencias para resolver las dependencias