예제 #1
0
        public async Task Stamp_Test_ValidateIsUTF8FromXMLAsync()
        {
            var     resultExpect = "301";
            var     build        = new BuildSettings();
            StampV2 stamp        = new StampV2(build.Url, build.Token);
            var     xml          = Encoding.UTF8.GetString(File.ReadAllBytes("Resources/fileANSI.xml"));
            var     response     = await stamp.TimbrarV1Async(xml);

            Assert.True(response.message.Contains(resultExpect), "Result not expected. Error: " + response.message);
        }
예제 #2
0
        public async Task Stamp_Test_ValidateEmptyXMLAsync()
        {
            var     resultExpect = "Xml CFDI33 no proporcionado o viene vacio.";
            var     build        = new BuildSettings();
            StampV2 stamp        = new StampV2(build.Url, build.Token);
            var     xml          = File.ReadAllText("Resources/EmptyXML.xml");
            var     response     = await stamp.TimbrarV1Async(xml);

            Assert.Equal(response.message, (string)resultExpect);
        }
예제 #3
0
        public async Task Stamp_Test_ValidateServerErrorAsync()
        {
            var     resultExpect = "404";
            var     build        = new BuildSettings();
            StampV2 stamp        = new StampV2(build.Url + "/ot", build.Token);
            var     xml          = File.ReadAllText("Resources/file.xml");
            var     response     = await stamp.TimbrarV1Async(xml);

            Assert.Equal(response.message, (string)resultExpect);
        }
예제 #4
0
        public async Task Stamp_Test_ValidateExistTokenAsync()
        {
            var     resultExpect = "401 Unauthorized";
            var     build        = new BuildSettings();
            StampV2 stamp        = new StampV2(build.Url, "");
            var     xml          = File.ReadAllText("Resources/file.xml");
            var     response     = await stamp.TimbrarV1Async(xml);

            Assert.True(response.message.Contains("401"), (string)resultExpect);
        }
예제 #5
0
        public void Stamp_Test_45_ValidateFormatToken()
        {
            var     resultExpect = "Token Mal Formado";
            var     build        = new BuildSettings();
            StampV2 stamp        = new StampV2(build.Url, build.Token + ".");
            var     xml          = File.ReadAllText("Resources/file.xml");
            var     response     = stamp.TimbrarV1(xml);

            Assert.IsTrue(response.message.Contains("401"), (string)resultExpect);
        }
예제 #6
0
        public void Stamp_Test_45_ValidateServerError()
        {
            var     resultExpect = "404";
            var     build        = new BuildSettings();
            StampV2 stamp        = new StampV2(build.Url + "/ot", build.Token);
            var     xml          = File.ReadAllText("Resources/File.xml");
            var     response     = stamp.TimbrarV1(xml);

            Assert.AreEqual(response.message, (string)resultExpect, (string)resultExpect);
        }
예제 #7
0
        public async Task Stamp_Test_ValidateSpecialCharactersFromXMLAsync()
        {
            var     build = new BuildSettings();
            StampV2 stamp = new StampV2(build.Url, build.Token);
            var     xml   = File.ReadAllText("Resources/SpecialCharacters.xml");

            xml = SignTools.SigXml(xml, Convert.FromBase64String(build.Pfx), build.CerPassword);
            var response = await stamp.TimbrarV1Async(xml);

            Assert.True(response.status == "success", "Result not expected. Error: " + response.message);
            Assert.False(string.IsNullOrEmpty(response.data.tfd), "Result not expected. Error: " + response.message);
        }
예제 #8
0
        public void Stamp_Test_45_StampV2XMLV3byToken()
        {
            var     build    = new BuildSettings();
            StampV2 stamp    = new StampV2(build.Url, build.Token);
            var     xml      = GetXml(build);
            var     response = (StampResponseV3)stamp.TimbrarV3(xml);

            Assert.IsTrue(response.status == "success" &&
                          !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.tfd viene vacio.");
            response = (StampResponseV3)stamp.TimbrarV3(xml);
            Assert.IsTrue(response.status == "error" && response.message == "307. El comprobante contiene un timbre previo.");
        }
예제 #9
0
        public async Task Stamp_Test_StampV2XMLV2Async()
        {
            var     build    = new BuildSettings();
            StampV2 stamp    = new StampV2(build.Url, build.User, build.Password);
            var     xml      = GetXml(build);
            var     response = (StampResponseV2)await stamp.TimbrarV2Async(xml);

            Assert.True(response.status == "success" &&
                        !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.tfd viene vacio.");
            response = (StampResponseV2)await stamp.TimbrarV2Async(xml);

            Assert.True(response.status == "error" && response.message == "307. El comprobante contiene un timbre previo.");
        }
예제 #10
0
        public void Stamp_Test_45_StampV2XMLV2WithAddenda307()
        {
            var     build    = new BuildSettings();
            StampV2 stamp    = new StampV2(build.Url, build.User, build.Password);
            var     xml      = GetXml(build);
            var     response = (StampResponseV2)stamp.TimbrarV2(xml);

            Assert.IsTrue(response.status == "success" &&
                          !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.tfd viene vacio.");
            response = (StampResponseV2)stamp.TimbrarV2(xml);
            Assert.IsTrue(response.status == "error" && response.message == "307. El comprobante contiene un timbre previo.");
            Assert.IsTrue(response.data.cfdi.Contains("cfdi:Addenda"));
        }
예제 #11
0
        public void Stamp_Test_45_StampV2XMLV3WithAddenda307()
        {
            var     build    = new BuildSettings();
            StampV2 stamp    = new StampV2(build.Url, build.Token);
            var     xml      = GetXml(build);
            var     response = (StampResponseV3)stamp.TimbrarV3(xml);

            Assert.IsTrue(response.status == "success" &&
                          !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");

            response = (StampResponseV3)stamp.TimbrarV3(xml);
            Assert.IsTrue(response.status == "error" &&
                          !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");
            Assert.IsTrue(response.data.cfdi.Contains("cfdi:Addenda"));
        }
예제 #12
0
        public void Stamp_Test_45_StampV2XMLV4byToken()
        {
            var     build    = new BuildSettings();
            StampV2 stamp    = new StampV2(build.Url, build.Token);
            var     xml      = GetXml(build);
            var     response = (StampResponseV4)stamp.TimbrarV4(xml);

            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.");
            response = (StampResponseV4)stamp.TimbrarV4(xml);
            Assert.IsTrue(response.status == "error" && response.message == "307. El comprobante contiene un timbre previo.");
        }
예제 #13
0
        public void Stamp_Test_45_MultipleStampV2XMLV1byToken()
        {
            var     build        = new BuildSettings();
            var     resultExpect = false;
            int     iterations   = 10;
            StampV2 stamp        = new StampV2(build.Url, build.Token);
            List <StampResponseV1> listXmlResult = new List <StampResponseV1>();

            for (int i = 0; i < iterations; i++)
            {
                string xml = Encoding.UTF8.GetString(File.ReadAllBytes("Resources/file.xml"));
                xml = SignTools.SigXml(xml, Convert.FromBase64String(build.Pfx), build.CerPassword);
                var response = (StampResponseV1)stamp.TimbrarV1(xml);
                listXmlResult.Add(response);
            }
            if (listXmlResult != null)
            {
                resultExpect = listXmlResult.FindAll(w => w.status == ResponseType.success.ToString() || w.message.Contains("72 horas")).Count == iterations;
            }

            Assert.IsTrue((bool)resultExpect);
        }