示例#1
0
        public async Task Stamp_Test_ValidateIsUTF8FromXMLAsync()
        {
            var     resultExpect = "301";
            var     build        = new BuildSettings();
            StampV4 stamp        = new StampV4(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();
            StampV4 stamp        = new StampV4(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_ValidateExistTokenAsync()
        {
            var     resultExpect = "401 Unauthorized";
            var     build        = new BuildSettings();
            StampV4 stamp        = new StampV4(build.Url, "");
            var     xml          = File.ReadAllText("Resources/file.xml");
            var     response     = await stamp.TimbrarV1Async(xml, "*****@*****.**");

            Assert.True(response.message.Contains("401"), (string)resultExpect);
        }
示例#4
0
        public async Task Stamp_Test_ValidateServerErrorAsync()
        {
            var     resultExpect = "404";
            var     build        = new BuildSettings();
            StampV4 stamp        = new StampV4(build.Url + "/ot", build.Token);
            var     xml          = File.ReadAllText("Resources/file.xml");
            var     response     = await stamp.TimbrarV1Async(xml, "*****@*****.**");

            Assert.Equal(response.message, (string)resultExpect);
        }
示例#5
0
        public async Task Stamp_Test_ValidateSpecialCharactersFromXMLAsync()
        {
            var     build = new BuildSettings();
            StampV4 stamp = new StampV4(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);
        }
示例#6
0
        public async Task Stamp_Test_StampV4XMLV4byTokenAsync()
        {
            var     build    = new BuildSettings();
            StampV4 stamp    = new StampV4(build.Url, build.Token);
            var     xml      = GetXml(build);
            var     response = (StampResponseV4)await stamp.TimbrarV4Async(xml, "*****@*****.**");

            Assert.True(response.data != null, "El resultado data viene vacio.");
            Assert.True(!string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");
            response = (StampResponseV4)await stamp.TimbrarV4Async(xml, "*****@*****.**");

            Assert.True(response.status == "error" && response.message == "307. El comprobante contiene un timbre previo.");
        }
示例#7
0
        public async Task Stamp_Test_StampV4XMLV1Async()
        {
            var     build    = new BuildSettings();
            StampV4 stamp    = new StampV4(build.Url, build.User, build.Password);
            var     xml      = GetXml(build);
            var     response = (StampResponseV1)await stamp.TimbrarV1Async(xml, "*****@*****.**");

            Assert.True(response.status == "success" &&
                        !string.IsNullOrEmpty(response.data.tfd), "El resultado data.tfd viene vacio.");
            response = (StampResponseV1)await stamp.TimbrarV1Async(xml, "*****@*****.**");

            Assert.True(response.status == "error" && response.message == "307. El comprobante contiene un timbre previo.");
        }
示例#8
0
        public async Task Stamp_Test_StampV4XMLV3WithAddenda307Async()
        {
            var     build    = new BuildSettings();
            StampV4 stamp    = new StampV4(build.Url, build.Token);
            var     xml      = GetXml(build);
            var     response = (StampResponseV3)await stamp.TimbrarV3Async(xml, "*****@*****.**");

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

            response = (StampResponseV3)await stamp.TimbrarV3Async(xml, "*****@*****.**");

            Assert.True(response.status == "error" &&
                        !string.IsNullOrEmpty(response.data.cfdi), "El resultado data.cfdi viene vacio.");
            Assert.Contains("cfdi:Addenda", response.data.cfdi);
        }
示例#9
0
        public async Task Stamp_Test_MultipleStampV4XMLV1byTokenAsync()
        {
            var     build        = new BuildSettings();
            var     resultExpect = false;
            int     iterations   = 10;
            StampV4 stamp        = new StampV4(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)await stamp.TimbrarV1Async(xml, "*****@*****.**");

                listXmlResult.Add(response);
            }
            if (listXmlResult != null)
            {
                resultExpect = listXmlResult.FindAll(w => w.status == ResponseType.success.ToString() || w.message.Contains("72 horas")).Count == iterations;
            }

            Assert.True((bool)resultExpect);
        }