/// <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); }
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); }
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); }
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); }
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); }
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); }
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); }
/// <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); } } }
/// <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); } } }
private static void CheckEditionAndRecords(MainfileInfo fileInfo) { Assert.That(fileInfo.Edition, Is.EqualTo("Y14M05")); Assert.That(fileInfo.RecordCount, Is.EqualTo(3)); }
public void ShouldHandleInvalidInput() { MainfileInfo fileInfo = this.LoadFile(string.Empty); Assert.That(fileInfo.FileType, Is.EqualTo(MainfileType.Unknown)); }