ValidarEANTest.cs
1 using System;
3 using Microsoft.VisualStudio.TestTools.UnitTesting;
4 using System.Data;
5 using System.Collections.Generic;
6 using System.IO;
7 using Sage.ES.S50.UnitTest.Tools;
10 using Sage.ES.S50.UnitTest.Mock;
11 using System.Windows.Forms;
12 using sage.ew.botones;
15 using System.Linq;
16 using Sage.ES.S50.Extensions;
17 using System.Text;
18 
19 namespace Sage.ES.S50.UnitTest.addons.idatos
20 {
21  [TestClass]
22  [DeploymentItem(@"Idatos\", "Idatos")]
23  public class ValidarEANTest
24  {
25  #region Properties
26 
27  private DataTable dtPlinter_c = new DataTable();
28  private DataTable dtPlinter_d = new DataTable();
29  private DataTable dtPlinter_d1 = new DataTable();
30  private DataTable dtPlinter_d2 = new DataTable();
31 
32  private TestContext testContextInstance;
33 
38  public TestContext TestContext
39  {
40  get
41  {
42  return testContextInstance;
43  }
44  set
45  {
46  testContextInstance = value;
47  }
48  }
49  #endregion Properties
50 
51  #region Additional test attributes
52  //
53  //You can use the following additional attributes as you write your tests:
54  //
55  //Use ClassInitialize to run code before running the first test in the class
56  [ClassInitialize()]
57  public static void MyClassInitialize(TestContext testContext)
58  {
59  //Conexion a Base de Datos
60  testContext.__Test_LoadRandomConfig();
61  }
62 
63  #endregion
64 
65  #region Members
66 
67  // private CargarDatos _CargarDatos = new CargarDatos();
68  #endregion
69 
70  [Owner(Owners.Luisa_Galvan), TestMethod()]
71  [Priority(1)]
72  public void ValidarEAN_IdatosTest()
73  {
75  string lcCarpetaAleatoria = System.IO.Path.GetRandomFileName().ToUpper();
76 
77  GuiaTools loGuiaTools = new GuiaTools();
78  loGuiaTools.Tools("0ARTICULOS_20230307.guide", "0ARTICULOS_20230307.csv", lcCarpetaAleatoria);
79 
80  loGuiaTools.DeleteTmp(lcCarpetaAleatoria);
81 
82  bool lbExiste = false;
83  int posic = PosicionEANTabla(loGuiaTools, out lbExiste);
84 
85  if (lbExiste)
86  {
87  foreach(DataRow loRow in loGuiaTools.dtCSV.Rows)
88  {
89  string valor = Convert.ToString(loRow.ItemArray[posic]);
90 
91  if (!string.IsNullOrEmpty(valor))
92  {
93  ValidarEAN loValidaEAN = new ValidarEAN();
94  ValidationResult vrResult = loValidaEAN.Validar(valor, loRow);
95 
96  if (vrResult.result)
97  Assert.IsTrue(vrResult.result, vrResult.mensaje);
98  else
99  Assert.IsFalse(vrResult.result);
100  }
101  }
102  }
103  }
104 
105 
106  #region Métodos privados
107 
108  private int PosicionEANTabla(GuiaTools loGuiaTools, out bool existeRegistro)
109  {
110  int valor = 0;
111  bool lbFind = false;
112 
113  string id_d = Convert.ToString(loGuiaTools.dtPlinter_d1.AsEnumerable().Where(g => g.Field<int>("idcampo") == 956).Select(g => g.Field<string>("id_d")).ToList().FirstOrDefault());
114 
115  if (!string.IsNullOrEmpty(id_d))
116  {
117  string columna = Convert.ToString(loGuiaTools.dtPlinter_d.AsEnumerable().Where(g => g.Field<string>("id_rela") == id_d).Select(g => g.Field<string>("columna")).ToList().FirstOrDefault());
118 
119  if (!string.IsNullOrEmpty(columna))
120  {
121  lbFind = true;
122  int pos = posicionColumna(columna);
123  valor = pos;
124  }
125  }
126 
127  existeRegistro = lbFind;
128 
129  return valor;
130  }
131 
132  private int posicionColumna(string nombreColumna)
133  {
134  int ret = 0;
135  if (nombreColumna.Length == 1)
136  {
137  ret = Encoding.ASCII.GetBytes(nombreColumna)[0] - 65;
138  }
139  else
140  {
141  if (!string.IsNullOrWhiteSpace(nombreColumna))
142  {
143  Int32 times = Convert.ToInt32(nombreColumna.Substring(0, 1));
144  ret = ((Encoding.ASCII.GetBytes("Z")[0] - 65) * times) + (Encoding.ASCII.GetBytes(nombreColumna)[1] - 65) + 1;
145  }
146  }
147 
148  return ret;
149  }
150 
151  #endregion Métodos privados
152  }
153 }
string mensaje
Mensaje para mostrar si no pasa validación
static bool testMode
Modo Test para no mostrar mensajes de alerta
Definition: classConfig.cs:31
Clase de negocio para la configuración del módulo de intercambio de datos
Definition: classConfig.cs:18
bool result
Comprobar si pasa o no validación
override ValidationResult Validar()
Definition: ValidarEAN.cs:61