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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }