private void Test(String name, byte[] newLine, bool useRdw = false)
        {
            //BeforeClass();
            string     input      = Inputs + "/" + name + ".txt";
            string     output     = Outputs + "/" + name + ".txt";
            string     copybook   = Copybook + "/" + name + ".fileformat";
            FileFormat fileFormat = CopybookLoader.LoadCopybook(copybook);

            using (BufferedStream inputStream = new BufferedStream(GetInputStream(input)))
                using (BufferedStream outputStream = new BufferedStream(new FileStream(output, FileMode.OpenOrCreate)))
                {
                    EbcdicReader reader = new EbcdicReader(inputStream, fileFormat, useRdw);
                    EbcdicWriter writer = new EbcdicWriter(outputStream, fileFormat.Charset, useRdw, EbcdicEncoder.DefaultValue.LowValue)
                    {
                        RecordFormatMap = new RecordFormatMap(fileFormat)
                    };


                    List <Object> record = reader.NextRecord();
                    while (record != null)
                    {
                        writer.WriteRecord(record);
                        outputStream.Write(newLine);
                        record = reader.NextRecord();
                    }
                }

            Assert.IsTrue(TestHelper.TestHelper.ContentEquals(GetInputStream(output), GetInputStream(input)));
        }
        public void EbcdicTestsTestReader()
        {
            FileFormat fileFormat = CopybookLoader.LoadCopybook(Copybook + "/Test.fileformat");

            using (BufferedStream inputStream = new BufferedStream(new MemoryStream(Bytes)))
            {
                EbcdicReader  reader = new EbcdicReader(inputStream, fileFormat, false);
                List <object> record = reader.NextRecord();
                Assert.AreEqual(Objects.Length, record.ToArray().Length);
                Assert.AreEqual(Objects.GetType(), record.ToArray().GetType());

                //NOTE : CollectionAssert does not support nested collection handling ...
                int index = 0;
                foreach (var rec in record.ToArray())
                {
                    var array = rec as Array;
                    if (array != null)
                    {
                        CollectionAssert.AreEqual((Array)Objects[index], array);
                    }
                    else
                    {
                        Assert.AreEqual(Objects[index], rec);
                    }
                    index++;
                }
            }
        }
 /// <summary>
 /// Load the copybooks
 /// </summary>
 /// <exception cref="CopybookParsingException">&nbsp;</exception>
 /// <exception cref="IOException">&nbsp;</exception>
 private void LoadCopyBooks()
 {
     foreach (IResource copybook in Copybooks)
     {
         FileFormat fileFormat = CopybookLoader.LoadCopybook(copybook.GetInputStream());
         _charset = fileFormat.Charset;
         _recordFormatMaps[copybook.GetFileInfo().Name] = new RecordFormatMap(fileFormat);
     }
 }
Exemple #4
0
        /// <summary>
        /// @see AbstractItemCountingItemStreamItemReader#DoOpen
        /// </summary>
        protected override void DoOpen()
        {
            Assert.IsTrue(Resource.Exists(), "The input file must exist.");
            _inputStream = new BufferedStream(Resource.GetInputStream());

            FileFormat fileFormat = CopybookLoader.LoadCopybook(Copybook.GetInputStream());

            _reader = new EbcdicReader(_inputStream, fileFormat, Rdw);
            EbcdicReaderMapper.RecordFormatMap = new RecordFormatMap(fileFormat);

            _nbRead = 0;
            Name    = string.Concat("EbcdicFileReader.", Resource.GetFilename());
        }
        public void EbcdicTestsTestWriter()
        {
            MemoryStream byteArrayOutputStream = new MemoryStream();
            FileFormat   fileFormat            = CopybookLoader.LoadCopybook(Copybook + "/Test.fileformat");

            using (BufferedStream outputStream = new BufferedStream(byteArrayOutputStream))
            {
                EbcdicWriter writer = new EbcdicWriter(outputStream, fileFormat.Charset, false,
                                                       EbcdicEncoder.DefaultValue.LowValue)
                {
                    RecordFormatMap = new RecordFormatMap(fileFormat)
                };
                writer.WriteRecord(new List <object>(Objects));
            }
            CollectionAssert.AreEqual(Bytes, byteArrayOutputStream.ToArray());
        }