Ejemplo n.º 1
0
        /// <summary>
        /// Loads the specified file for calls to Read.
        /// </summary>
        /// <param name="fileInfo">The file to load.</param>
        internal void LoadFile(MainfileInfo fileInfo)
        {
            Check.IsNotNull(fileInfo, "fileInfo");

            this.DisposeReaderStream();
            this.readerStream   = FileSystem.Instance.OpenRead(fileInfo.Path);
            this.readerIterator = new LineIterator(this.readerStream, fileInfo.RecordLength, fileInfo.RecordCount);
        }
Ejemplo n.º 2
0
        public void ShouldParseWelshAddressFile()
        {
            MainfileInfo fileInfo = this.LoadFile(ExamplePafFileData.MainAddress, ExamplePafFileData.WelshFilename);

            Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.WelshAddress));
            Assert.That(fileInfo.RecordLength, Is.EqualTo(88 + 2));
            CheckEditionAndRecords(fileInfo);
        }
Ejemplo n.º 3
0
        public void ShouldParseSubBuildingNamesFile()
        {
            MainfileInfo fileInfo = this.LoadFile(ExamplePafFileData.SubBuildingName);

            Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.SubBuildingNames));
            Assert.That(fileInfo.RecordLength, Is.EqualTo(38 + 2));
            CheckEditionAndRecords(fileInfo);
        }
Ejemplo n.º 4
0
        public void ShouldParseThoroughfaresFile()
        {
            MainfileInfo fileInfo = this.LoadFile(ExamplePafFileData.Thoroughfares);

            Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.Thoroughfares));
            Assert.That(fileInfo.RecordLength, Is.EqualTo(68 + 2));
            CheckEditionAndRecords(fileInfo);
        }
Ejemplo n.º 5
0
        public void ShouldParseOrganisationsFile()
        {
            MainfileInfo fileInfo = this.LoadFile(ExamplePafFileData.Organisations);

            Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.Organisations));
            Assert.That(fileInfo.RecordLength, Is.EqualTo(153 + 2));
            CheckEditionAndRecords(fileInfo);
        }
Ejemplo n.º 6
0
        public void ShouldParseLocalityNamesFile()
        {
            MainfileInfo fileInfo = this.LoadFile(ExamplePafFileData.Localities);

            Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.Localities));
            Assert.That(fileInfo.RecordLength, Is.EqualTo(151 + 2));
            CheckEditionAndRecords(fileInfo);
        }
Ejemplo n.º 7
0
        public void ShouldParseBusinessMailFile()
        {
            MainfileInfo fileInfo = this.LoadFile(ExamplePafFileData.BuisinessMail);

            Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.BusinessMail));
            Assert.That(fileInfo.RecordLength, Is.EqualTo(10 + 2));
            CheckEditionAndRecords(fileInfo);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Parses the specified file, adding parsed records to the specified
        /// repository.
        /// </summary>
        /// <param name="info">Contains the information about the file.</param>
        /// <param name="repository">The repository to add records to.</param>
        public void Parse(MainfileInfo info, PafRepository repository)
        {
            Check.IsNotNull(info, "info");
            Check.IsNotNull(repository, "repository");

            using (Stream stream = FileSystem.Instance.OpenRead(info.Path))
            {
                var iterator = new LineIterator(stream, info.RecordLength, info.RecordCount);
                while (iterator.MoveNext())
                {
                    this.ParseLine(repository, iterator);
                }
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Initializes a new instance of the RecordDataReader class.
        /// </summary>
        /// <param name="files">The files to iterate over.</param>
        public RecordDataReader(IEnumerable <MainfileInfo> files)
        {
            Check.IsNotNull(files, "files");

            this.fileEnumerator = files.GetEnumerator();
            if (this.fileEnumerator.MoveNext())
            {
                MainfileInfo file = this.fileEnumerator.Current;
#if DEBUG
                this.fileType = file.FileType;
#endif
                this.parser = RecordParserFactory.Create(file.FileType);
                if (parser != null)
                {
                    KeyValuePair <string, Type>[] columns = this.parser.GetColumns();
                    this.columnNames = Array.ConvertAll(columns, kvp => kvp.Key);
                    this.columnTypes = Array.ConvertAll(columns, kvp => kvp.Value);

                    this.parser.LoadFile(file);
                }
            }
        }
Ejemplo n.º 10
0
 private static void CheckEditionAndRecords(MainfileInfo fileInfo)
 {
     Assert.That(fileInfo.Edition, Is.EqualTo("Y14M05"));
     Assert.That(fileInfo.RecordCount, Is.EqualTo(3));
 }
Ejemplo n.º 11
0
        public void ShouldHandleInvalidInput()
        {
            MainfileInfo fileInfo = this.LoadFile(string.Empty);

            Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.Unknown));
        }