Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/0.0.27.1 #148

Merged
merged 3 commits into from
Sep 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions SW-sdk-45/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.26.2")]
[assembly: AssemblyFileVersion("0.0.26.2")]
[assembly: AssemblyVersion("0.0.27.1")]
[assembly: AssemblyFileVersion("0.0.27.1")]
32 changes: 32 additions & 0 deletions SW-sdk-45/Services/Stamp/BaseStamp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,38 @@ public virtual StampResponseV3 TimbrarV3(string xml, bool isb64 = false)
return handler.HandleException(ex);
}
}
//Método para reintento request
public virtual StampResponseV3 TimbrarXmlV3(string xml, bool isb64 = false)
{
StampResponseHandlerV3 handler = new StampResponseHandlerV3();
string format = isb64 ? "b64" : "";
var xmlBytes = Encoding.UTF8.GetBytes(xml);
var headers = GetHeaders();
var content = GetMultipartContent(xmlBytes);
var proxy = Helpers.RequestHelper.ProxySettings(this.Proxy, this.ProxyPort);
int maxRetries = 2;
int retries = 0;

try
{
var response = handler.GetPostResponse(this.Url,string.Format("cfdi33/{0}/{1}/{2}",
_operation,StampTypes.v3.ToString(),format), headers, content, proxy);

while (response.message != null && (response.message.Equals("Se han producido uno o varios errores.")
|| response.message.Equals("One or more errors occurred.")) && retries < maxRetries)
{
retries++;
response = handler.GetPostResponse(this.Url,string.Format("cfdi33/{0}/{1}/{2}",
_operation,StampTypes.v3.ToString(),format), headers, content, proxy);
}

return response;
}
catch (Exception ex)
{
return handler.HandleException(ex);
}
}
public virtual ConcurrentDictionary<string, StampResponseV3> TimbrarV3(string[] xmls, bool isb64 = false)
{
StampResponseHandlerV3 handler = new StampResponseHandlerV3();
Expand Down
48 changes: 48 additions & 0 deletions SW-sdk-45/Services/Stamp/BaseStampV4.cs
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,55 @@ public virtual StampResponseV4 TimbrarV4(string xml, string email = null, string
return handler.HandleException(ex);
}
}
//Método para reintento request
public virtual StampResponseV4 TimbrarXmlV4(string xml, string email = null, string customId = null, bool isb64 = false)
{
StampResponseHandlerV4 handler = new StampResponseHandlerV4();
string format = isb64 ? "b64" : "";
var xmlBytes = Encoding.UTF8.GetBytes(xml);
var proxy = Helpers.RequestHelper.ProxySettings(this.Proxy, this.ProxyPort);
int maxRetries = 2;
int retries = 0;
var content = GetMultipartContent(xmlBytes);
var headers = new Dictionary<string, string>();

try
{
headers = GetHeaders(email, customId);
}
catch (Exception ex)
{
return handler.HandleException(ex);
}

try
{
var response = handler.GetPostResponse(this.Url, string.Format("v4/cfdi33/{0}/{1}/{2}", _operation,
StampTypes.v4.ToString(), format), headers, content, proxy);

while (response.message != null && (response.message.Equals("Se han producido uno o varios errores.")
|| response.message.Equals("One or more errors occurred.")) && retries < maxRetries)
{
retries++;

try
{
response = handler.GetPostResponse(this.Url, string.Format("v4/cfdi33/{0}/{1}/{2}", _operation,
StampTypes.v4.ToString(), format), headers, content, proxy);
}
catch (Exception ex)
{
return handler.HandleException(ex);
}
}

return response;
}
catch (Exception ex)
{
return handler.HandleException(ex);
}
}
public virtual StampResponseV4 TimbrarV4Analytics(string xml, string email = null, string customId = null, bool isb64 = false)
{
StampResponseHandlerV4 handler = new StampResponseHandlerV4();
Expand Down
4 changes: 2 additions & 2 deletions SW-sdk/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.0.26.2")]
[assembly: AssemblyFileVersion("0.0.26.2")]
[assembly: AssemblyVersion("0.0.27.1")]
[assembly: AssemblyFileVersion("0.0.27.1")]
3 changes: 2 additions & 1 deletion Test_SW-sdk-45/Services/Pdf/Pdf_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ public void UT_GeneratePdf_Pagos20()
Assert.IsTrue(pdfResult.status == "success");

}
[TestMethod]
//Omitida por vigencia de CP
[Ignore]
public void UT_GeneratePdf_Carta_Porte20()
{
var build = new BuildSettings();
Expand Down
65 changes: 65 additions & 0 deletions Test_SW-sdk-45/Services/Stamp/StampV4_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ public void Stamp_Test_45_StampV4_V4_email_customId()
Assert.IsTrue(!string.IsNullOrEmpty(response.data.fechaTimbrado), "El resultado data.fechaTimbrado viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.qrCode), "El resultado data.qrCode viene vacio.");
}

[TestMethod]
public void Stamp_Test_45_StampV4_V4_customId()
{
Expand Down Expand Up @@ -271,6 +272,70 @@ public void Stamp_Test_45_StampV4_V4()
Assert.IsTrue(!string.IsNullOrEmpty(response.data.fechaTimbrado), "El resultado data.fechaTimbrado viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.qrCode), "El resultado data.qrCode viene vacio.");
}


[TestMethod]
public void Stamp_Test_45_StampXmlV4_V4_customId()
{
Random rnd = new Random();
var build = new BuildSettings();
StampV4 stamp = new StampV4(build.Url, build.User, build.Password);
var xml = GetXml(build);
var response = (StampResponseV4)stamp.TimbrarXmlV4(xml, null, rnd.Next().ToString());
Assert.IsTrue(response.data != null, "El resultado data viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.cadenaOriginalSAT), "El resultado data.cadenaOriginalSAT viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.noCertificadoSAT), "El resultado data.noCertificadoSAT viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.noCertificadoCFDI), "El resultado data.noCertificadoCFDI viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.uuid), "El resultado data.uuid viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.selloSAT), "El resultado data.selloSAT viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.selloCFDI), "El resultado data.selloCFDI viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.fechaTimbrado), "El resultado data.fechaTimbrado viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.qrCode), "El resultado data.qrCode viene vacio.");
}


[TestMethod]
public void Stamp_Test_45_StampXmlV4_V4_some_emails()
{
var build = new BuildSettings();
StampV4 stamp = new StampV4(build.Url, build.User, build.Password);
var xml = GetXml(build);
var response = (StampResponseV4)stamp.TimbrarXmlV4(xml, "some@email.com,some2@email.com,some3@email.com,some4@email.com,some5@email.com");
Assert.IsTrue(response.data != null, "El resultado data viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.cadenaOriginalSAT), "El resultado data.cadenaOriginalSAT viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.noCertificadoSAT), "El resultado data.noCertificadoSAT viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.noCertificadoCFDI), "El resultado data.noCertificadoCFDI viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.uuid), "El resultado data.uuid viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.selloSAT), "El resultado data.selloSAT viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.selloCFDI), "El resultado data.selloCFDI viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.fechaTimbrado), "El resultado data.fechaTimbrado viene vacio.");
Assert.IsTrue(!string.IsNullOrEmpty(response.data.qrCode), "El resultado data.qrCode viene vacio.");
}
[TestMethod]
public void Stamp_Test_45_StampXmlV4_V4_InvalidCustomId_Error()
{
var build = new BuildSettings();
StampV4 stamp = new StampV4(build.Url, build.User, build.Password);
var customId = Guid.NewGuid().ToString();
customId = string.Concat(Enumerable.Repeat(customId, 10));
var xml = GetXml(build);
var response = (StampResponseV4)stamp.TimbrarXmlV4(xml, null, customId);
Assert.IsTrue(response.status == "error");
Assert.IsTrue(response.message == "El CustomId no es válido o es mayor a 100 caracteres.");
}
[TestMethod]
public void Stamp_Test_45_StampXmlV4_V4_InvalidCustomId_Error2()
{
var build = new BuildSettings();
StampV4 stamp = new StampV4(build.Url, build.User, build.Password);
var customId = Guid.NewGuid().ToString();
var xml = File.ReadAllText("Resources/EmptyXML.xml");
var response = (StampResponseV4)stamp.TimbrarXmlV4(xml, null, null);
Assert.IsTrue(response.status == "error");
Assert.IsTrue(response.message == "Xml CFDI33 no proporcionado o viene vacio.");
}
[TestMethod]
public void Stamp_Test_StampV4XMLV1_HashedCustomId_IdDuplicado_Error()
{
Expand Down
41 changes: 41 additions & 0 deletions Test_SW-sdk-45/Services/Stamp/Stamp_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,47 @@ public void Stamp_Test_45_MassStampXMLV4()
Assert.IsTrue(!string.IsNullOrEmpty(dic.Value.data.qrCode), "El resultado data.qrCode viene vacio.");
}
}

[TestMethod]
public void Stamp_Test_45_StampXmlV3byToken()
{
var build = new BuildSettings();
Stamp stamp = new Stamp(build.Url, build.Token);
var xml = GetXml(build);
var response = (StampResponseV3)stamp.TimbrarXmlV3(xml);
Assert.IsTrue(response.status == "success"
&& !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");
}
[TestMethod]
public void Stamp_Test_45_StampXmlV3Base64byToken()
{
var build = new BuildSettings();
Stamp stamp = new Stamp(build.Url, build.Token);
var xml = GetXml(build);
xml = Convert.ToBase64String(Encoding.UTF8.GetBytes(xml));
var response = (StampResponseV3)stamp.TimbrarXmlV3(xml, true);
Assert.IsTrue(response.status == "success"
&& !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");
}
[TestMethod]
public void Stamp_Test_45_StampXmlV3_ValidateEmptyXML()
{
var resultExpect = "Xml CFDI33 no proporcionado o viene vacio.";
var build = new BuildSettings();
Stamp stamp = new Stamp(build.Url, build.Token);
var xml = File.ReadAllText("Resources/EmptyXML.xml");
var response = stamp.TimbrarXmlV3(xml);
Assert.AreEqual(response.message, (string)resultExpect, (string)resultExpect);
}
[TestMethod]
public void Stamp_Test_45_StampXmlV3_ValidateExistToken()
{
var build = new BuildSettings();
Stamp stamp = new Stamp(build.Url, "");
var xml = File.ReadAllText("Resources/cfdi40.xml");
var response = stamp.TimbrarXmlV3(xml);
Assert.IsTrue(response.message.Contains("El token debe contener 3 partes"));
}
[TestMethod]
public void Stamp_Test_45_ValidateServerError()
{
Expand Down
3 changes: 2 additions & 1 deletion Test_SW-sdk/Services/Pdf/Pdf_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ public void UT_GeneratePdf_Pagos20()
var pdfResult = pdf.GenerarPdf(xml, build.Logo, TemplatesId.payment20);
Assert.IsTrue(pdfResult.status == "success");
}
[TestMethod]
//Omitida por vigencia de CP
[Ignore]
public void UT_GeneratePdf_Carta_Porte20()
{
var build = new BuildSettings();
Expand Down