コード例 #1
0
        public void TestParseX12WithValidationFailure()
        {
            // ARRANGE
            const string sample = "EdiFabric.Tests.Edi.X12_810_00204.txt";

            // ACT
            var message           = TestHelper.ParseX12(sample).OfType <M_810>().Single();
            var validationResults = EdiValidator.Create("EdiFabric.Xsd").Validate(message);

            // ASSERT
            Assert.IsNotNull(validationResults);
            Assert.IsNotNull(validationResults.ErrorContext);
            Assert.IsTrue(validationResults.ErrorContext.Errors.Any() || validationResults.ErrorContext.Codes.Any());
        }
コード例 #2
0
ファイル: TestEdifact.cs プロジェクト: tubalu/ediFabric
        public void TestParseEdifactWithValidation()
        {
            // ARRANGE
            const string sample = "EdiFabric.Tests.Edi.Edifact_INVOIC_D00A_Valid.txt";

            // ACT
            var message           = TestHelper.ParseEdifact(sample).OfType <M_INVOIC>().Single();
            var validationResults = EdiValidator.Create("EdiFabric.Xsd").Validate(message);

            // ASSERT
            Assert.IsNotNull(validationResults);
            Assert.IsNotNull(validationResults.ErrorContext);
            Assert.IsFalse(validationResults.ErrorContext.Errors.Any());
            Assert.IsFalse(validationResults.ErrorContext.Codes.Any());
        }
コード例 #3
0
        public void TestValidationRules()
        {
            // ARRANGE
            const string sample         = "EdiFabric.Tests.Xml.X12_810_00204_Validation.xml";
            var          obj            = TestHelper.Deserialize <Rules.Rep.X12002040810.M_810>(TestHelper.Load(sample));
            const string expectedResult = "EdiFabric.Tests.Xml.X12_810_00204_ValidationExpected.xml";
            var          expectedXml    = XElement.Load(TestHelper.Load(expectedResult));

            // ACT
            var error = EdiValidator.Create("EdiFabric.Xsd").Validate(obj);

            // ASSERT
            Assert.IsNotNull(error);
            var root = TestHelper.Serialize(error.Flatten().ToList()).Root;

            Assert.IsNotNull(root);
            Assert.AreEqual(root.ToString(), expectedXml.ToString());
        }
コード例 #4
0
        private static int ValidateInstanceFile(Parameters parameters)
        {
            string specCertFullPath = parameters.SpecCertName;
            string specCertFileName = Path.GetFileName(specCertFullPath);
            string instanceFilePath = parameters.InstanceFileName;
            string instanceFileName = Path.GetFileName(instanceFilePath);

            if (File.Exists(specCertFullPath) == false)
            {
                ConsoleExtensions.WriteError("{0} does not exist.", specCertFullPath);
                return(1);
            }

            if (Path.GetExtension(specCertFullPath) != ".xlsx")
            {
                ConsoleExtensions.WriteError("{0} is not a zip file.", specCertFullPath);
                return(1);
            }

            if (File.Exists(instanceFilePath) == false)
            {
                ConsoleExtensions.WriteError("{0} does not exist.", instanceFilePath);
                return(1);
            }

            string logFileName = Path.ChangeExtension(instanceFileName, "log");

            ConsoleExtensions.WriteInfo("Log file for this processing: {0}", logFileName);

            string instanceFileData = File.ReadAllText(instanceFilePath);

            using (StreamWriter logFile = new StreamWriter(logFileName))
            {
                try
                {
                    TradingPartnerSpecCertMetadata metadata = new TradingPartnerSpecCertMetadata();
                    metadata.Initialize(specCertFileName);

                    GCExcelToDocumentPlug excelToDocumentPlug;
                    switch ((SpecCertFileType)metadata.FileType)
                    {
                    case SpecCertFileType.X12:
                        excelToDocumentPlug = new X12GCExcelToDocumentPlug();
                        break;

                    case SpecCertFileType.Xml:
                        excelToDocumentPlug = new XmlGCExcelToDocumentPlug();
                        break;

                    case SpecCertFileType.FlatFile:
                        excelToDocumentPlug = new FlatFileGCExcelToDocumentPlug();
                        break;

                    default:
                        throw new NotSupportedException(string.Format("Spec cert type {0} is not supported", (SpecCertFileType)metadata.FileType));
                        break;
                    }

                    LogInformation(logFile, string.Format("Generating document plug from spec cert {0}", specCertFileName));

                    TradingPartnerSpecCertMetadata specCertMetadata = new TradingPartnerSpecCertMetadata();
                    specCertMetadata.Initialize(specCertFileName);

                    IDocumentPlug documentPlug = null;
                    using (StreamReader stream = new StreamReader(specCertFullPath))
                        documentPlug = excelToDocumentPlug.GenerateDocumentPlug(
                            stream.BaseStream, specCertMetadata.TradingPartnerName, specCertMetadata.DocumentType,
                            specCertMetadata.Direction, Maarg.Contracts.GCValidate.SpecCertFileType.X12);

                    if (documentPlug == null)
                    {
                        LogError(logFile, "Document plug generation failed");
                        return(-1);
                    }
                    else
                    {
                        LogInformation(logFile, "Document plug generated successfully");
                    }
                    LogInformation(logFile, "Validating instance file");

                    IFatpipeDocument    fatpipeDocument;
                    EDIValidationResult result = EdiValidator.ValidateEdi(instanceFileData, instanceFileName, specCertFileName, documentPlug, out fatpipeDocument);

                    LogValidationResult(result, logFile);
                }
                catch (Exception ex)
                {
                    LogError(logFile, string.Format("Error encountered during validating {0} file. Error: {1}", instanceFileName, ex.ToString()));
                }
            }

            return(0);
        }