public void SerializeTest(bool withCompression) { var grammar = EdiGrammar.NewEdiFact(); var interchange = default(Models.EdiFact01.Interchange); using (var stream = Helpers.GetResourceStream("edifact.01.edi")) { interchange = new EdiSerializer().Deserialize <Models.EdiFact01.Interchange>(new StreamReader(stream), grammar); } var expected = new StringBuilder(); if (withCompression) { #region ...compressed output... expected.AppendLine("UNA:+.? '"); expected.AppendLine("UNB+UNOC:3+1234567891123:14+7080005059275:14:SPOTMARKED+101012:1104+HBQ001++++1'"); expected.AppendLine("UNH+1+QUOTES:D:96A:UN:EDIEL2+S'"); expected.AppendLine("BGM+310+2010101900026812+9+AB'"); expected.AppendLine("DTM+137:201010191104:203'"); expected.AppendLine("DTM+163:201010192300:203'"); expected.AppendLine("DTM+164:201010202300:203'"); expected.AppendLine("DTM+:1:805'"); expected.AppendLine("CUX+2:SEK'"); expected.AppendLine("NAD+FR+1234567891123::9'"); expected.AppendLine("NAD+DO+7080005059275::9'"); expected.AppendLine("LOC+105+SE1::SM'"); expected.AppendLine("LIN+1++1420:::SM'"); expected.AppendLine("DTM+324:201010192300201010200000:013'"); expected.AppendLine("PRI+CAL:-2100'"); expected.AppendLine("RNG+4+1:-0.1'"); expected.AppendLine("PRI+CAL:21000'"); expected.AppendLine("RNG+4+1:-0.1'"); expected.AppendLine("LIN+2++1420:::SM'"); expected.AppendLine("DTM+324:201010200000201010200100:013'"); expected.AppendLine("PRI+CAL:-2100'"); expected.AppendLine("RNG+4+1:0'"); expected.AppendLine("PRI+CAL:21000'"); expected.AppendLine("RNG+4+1:0'"); expected.AppendLine("LIN+3++1420:::SM'"); expected.AppendLine("DTM+324:201010200100201010200200:013'"); expected.AppendLine("PRI+CAL:-2100'"); expected.AppendLine("RNG+4+1:0'"); expected.AppendLine("PRI+CAL:21000'"); expected.AppendLine("UNS+S'"); expected.AppendLine("UNT+158+1'"); expected.AppendLine("UNZ+1+20101000064507'"); } #endregion else { #region ...uncompressed output... expected.AppendLine("UNA:+.? '"); expected.AppendLine("UNB+UNOC:3+1234567891123:14:+7080005059275:14:SPOTMARKED+101012:1104+HBQ001++++1'"); expected.AppendLine("UNH+1+QUOTES:D:96A:UN:EDIEL2+S'"); expected.AppendLine("BGM+310+2010101900026812+9+AB'"); expected.AppendLine("DTM+137:201010191104:203'"); expected.AppendLine("DTM+163:201010192300:203'"); expected.AppendLine("DTM+164:201010202300:203'"); expected.AppendLine("DTM+:1:805'"); expected.AppendLine("CUX+2:SEK'"); expected.AppendLine("NAD+FR+1234567891123::9'"); expected.AppendLine("NAD+DO+7080005059275::9'"); expected.AppendLine("LOC+105+SE1::SM'"); expected.AppendLine("LIN+1++1420:::SM'"); expected.AppendLine("DTM+324:201010192300201010200000:013'"); expected.AppendLine("PRI+CAL:-2100:'"); expected.AppendLine("RNG+4+1:-0.1'"); expected.AppendLine("PRI+CAL:21000:'"); expected.AppendLine("RNG+4+1:-0.1'"); expected.AppendLine("LIN+2++1420:::SM'"); expected.AppendLine("DTM+324:201010200000201010200100:013'"); expected.AppendLine("PRI+CAL:-2100:'"); expected.AppendLine("RNG+4+1:0'"); expected.AppendLine("PRI+CAL:21000:'"); expected.AppendLine("RNG+4+1:0'"); expected.AppendLine("LIN+3++1420:::SM'"); expected.AppendLine("DTM+324:201010200100201010200200:013'"); expected.AppendLine("PRI+CAL:-2100:'"); expected.AppendLine("RNG+4+1:0'"); expected.AppendLine("PRI+CAL:21000:'"); expected.AppendLine("UNS+S'"); expected.AppendLine("UNT+158+1'"); expected.AppendLine("UNZ+1+20101000064507'"); #endregion } var output = new StringBuilder(); using (var writer = new EdiTextWriter(new StringWriter(output), grammar)) { new EdiSerializer() { EnableCompression = withCompression }.Serialize(writer, interchange); } Assert.Equal(expected.ToString(), output.ToString()); }