コード例 #1
0
        public void TestLoadingWithDelegate()
        {
            // ARRANGE
            const string   sample    = "EdiWeave.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A.txt";
            var            ediStream = CommonHelper.LoadStream(sample);
            var            expected  = CommonHelper.LoadString(sample, Encoding.UTF8);
            List <EdiItem> ediItems;

            // ACT
            using (var ediReader = new EdifactReader(ediStream, AssemblyLoadFactory))
            {
                ediItems = ediReader.ReadToEnd().ToList();
            }
            var actual = EdifactHelper.Generate(ediItems, null, Environment.NewLine);

            // ASSERT
            Assert.IsNotNull(ediItems);
            Assert.IsNotNull(ediItems.OfType <UNB>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNG>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <TSINVOIC>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNE>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <UNZ>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <ErrorContext>().SingleOrDefault());
            Assert.AreEqual(expected, actual);
        }
コード例 #2
0
        public void TestTrailingBlanks()
        {
            // ARRANGE
            const string   sample      = "EdiWeave.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A_TrailingBlanks.txt";
            const string   sampleClean = "EdiWeave.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A.txt";
            var            ediStream   = CommonHelper.LoadStream(sample);
            var            expected    = CommonHelper.LoadString(sampleClean, Encoding.UTF8);
            List <EdiItem> ediItems;

            // ACT
            using (var ediReader = new EdifactReader(ediStream, "EdiWeave.Rules.EdifactD00A"))
            {
                ediItems = ediReader.ReadToEnd().ToList();
            }
            var actual = EdifactHelper.Generate(ediItems, null, Environment.NewLine);

            // ASSERT
            Assert.IsNotNull(ediItems);
            Assert.IsNotNull(ediItems.OfType <UNB>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNG>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNE>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <UNZ>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <ErrorContext>().SingleOrDefault());
            Assert.IsTrue(ediItems.OfType <TSINVOIC>().Count() == 1);
            Assert.AreEqual(expected, actual);
        }
コード例 #3
0
        public void TestMultipleInterchange()
        {
            // ARRANGE
            const string sample    = "EdiWeave.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A_MultipleInterchange.txt";
            var          ediStream = CommonHelper.LoadStream(sample);
            var          expected  = CommonHelper.LoadString(sample, Encoding.UTF8);
            var          ediItems  = new List <EdiItem>();

            // ACT
            var actual = "";

            using (var ediReader = new EdifactReader(ediStream, "EdiWeave.Rules.EdifactD00A"))
            {
                while (ediReader.Read())
                {
                    if (ediReader.Item is UNB && ediItems.Any())
                    {
                        actual = actual + EdifactHelper.Generate(ediItems, null, Environment.NewLine);
                        ediItems.Clear();
                    }

                    ediItems.Add(ediReader.Item);
                }

                actual = actual + EdifactHelper.Generate(ediItems, ediReader.Separators, Environment.NewLine);
            }

            // ASSERT
            Assert.AreEqual(expected, actual);
        }
コード例 #4
0
        public void TestPostfixLf()
        {
            // ARRANGE
            const string   sample    = "EdiWeave.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A_LF.txt";
            var            ediStream = CommonHelper.LoadStream(sample);
            var            expected  = CommonHelper.LoadString(sample, Encoding.UTF8);
            List <EdiItem> ediItems;

            // ACT
            using (var ediReader = new EdifactReader(ediStream, "EdiWeave.Rules.EdifactD00A"))
            {
                ediItems = ediReader.ReadToEnd().ToList();
            }
            var actual = EdifactHelper.Generate(ediItems, null, "\n", Encoding.UTF8);

            // ASSERT
            Assert.IsNotNull(ediItems);
            Assert.IsNotNull(ediItems.OfType <UNB>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNG>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <TSINVOIC>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNE>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <UNZ>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <ErrorContext>().SingleOrDefault());
            Assert.AreEqual(expected, actual);
        }
コード例 #5
0
ファイル: UnitTests.cs プロジェクト: zyhong/EdiWeave
        public void TestSingleMessage()
        {
            // ARRANGE
            const string   sample    = "EdiWeave.UnitTests.Eancom.Edi.Eancom_INVOIC_D01BEAN3.txt";
            var            ediStream = CommonHelper.LoadStream(sample);
            var            expected  = CommonHelper.LoadString(sample);
            List <EdiItem> ediItems;

            // ACT
            using (var ediReader = new EdifactReader(ediStream, "EdiWeave.Rules.EancomD01BEAN3"))
            {
                ediItems = ediReader.ReadToEnd().ToList();
            }
            var actual = EdifactHelper.Generate(ediItems, null, Environment.NewLine);

            // ASSERT
            Assert.IsNotNull(ediItems);
            Assert.IsNotNull(ediItems.OfType <UNB>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNG>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <TSINVOIC>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNE>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <UNZ>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <ErrorContext>().SingleOrDefault());
            Assert.AreEqual(expected, actual);
        }
コード例 #6
0
ファイル: UnitTests.cs プロジェクト: zee-mzha/edifabric
        public void TestNonDefaultUna()
        {
            // ARRANGE
            const string   sample    = "EdiFabric.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A_NonDefaultSeparators.txt";
            var            ediStream = CommonHelper.LoadStream(sample);
            var            expected  = CommonHelper.LoadString(sample, Encoding.UTF8);
            List <EdiItem> ediItems;
            Separators     separators;

            // ACT
            using (var ediReader = new EdifactReader(ediStream, "EdiFabric.Rules.EdifactD00A"))
            {
                ediItems   = ediReader.ReadToEnd().ToList();
                separators = ediReader.Separators;
            }
            var actual = EdifactHelper.Generate(ediItems, separators, Environment.NewLine, Encoding.UTF8);

            // ASSERT
            Assert.IsNotNull(ediItems);
            Assert.IsNotNull(ediItems.OfType <UNB>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNG>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <TSINVOIC>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <UNE>().SingleOrDefault());
            Assert.IsNotNull(ediItems.OfType <UNZ>().SingleOrDefault());
            Assert.IsNull(ediItems.OfType <ErrorContext>().SingleOrDefault());
            Assert.AreEqual(expected, actual);
        }
コード例 #7
0
        public void TestBom()
        {
            // ARRANGE
            const string   sample    = "EdiWeave.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A_BOM.txt";
            var            ediStream = CommonHelper.LoadStream(sample);
            var            expected  = CommonHelper.LoadString(sample, Encoding.UTF8);
            List <EdiItem> ediItems;

            // ACT
            using (var ediReader = new EdifactReader(ediStream, "EdiWeave.Rules.EdifactD00A"))
            {
                ediItems = ediReader.ReadToEnd().ToList();
            }
            var actual = EdifactHelper.Generate(ediItems, null, Environment.NewLine, Encoding.UTF8);

            // ASSERT
            Assert.AreEqual(expected, actual);
        }
コード例 #8
0
        private static void Main(string[] args)
        {
            // This sample will generate an EDI message from a custom object. The steps are:
            // 1. It creates an Interchange out of a single custom object.
            // For simplicity the custom object bears the same structure as the ediFabric object. The only difference being the root element and the namespace
            // 2. Validates the Message object to ensure it adheres to the EDI rules for this transaction and version
            // 3. Converts the Interchange into a list of segments. This way any preference on postfixes can be attached at the end of each segment.
            // 4. Converts the list of segments into a real EDI message with CRLF postfix
            // The default locations for the transaction set classes and validation XSD are set in the app.config

            // This sample is for Edifact and uses a compiled XSLT map to convert from custom object to ediFabric object
            var ediFactInterchange = EdifactHelper.CreateInterchange(EdifactHelper.CreateSampleCustomInvoic());
            var ediFactSegments    = ediFactInterchange.ToEdi();
            var ediFactInvoice     = ediFactSegments.Aggregate("", (current, segment) => current + segment + Environment.NewLine);

            // This sample is for X12 and uses a code map (I used Automapper, but could be any custom code\mapper) to convert from custom object to ediFabric object
            var x12Interchange = X12Helper.CreateInterchange(X12Helper.CreateSampleCustom810());
            var x12Segments    = x12Interchange.ToEdi();
            var x12Invoice     = x12Segments.Aggregate("", (current, segment) => current + segment + Environment.NewLine);
        }
コード例 #9
0
        public void TestNoPreserveWhiteSpace()
        {
            // ARRANGE
            const string sample   = "EdiWeave.UnitTests.Edifact.Edi.Edifact_INVOIC_D00A_WriteNoPreserveWhitespace.txt";
            var          expected = CommonHelper.LoadString(sample, Encoding.UTF8);
            string       actual;

            // ACT
            using (var stream = new MemoryStream())
            {
                var writer = new EdifactWriter(stream, Encoding.UTF8, Environment.NewLine);

                writer.Write(EdifactHelper.CreateUnb());
                writer.Write(EdifactHelper.CreateInvoice());
                writer.Flush();

                actual = CommonHelper.LoadString(stream);
            }

            // ASSERT
            Assert.AreEqual(expected, actual);
        }