public TransactionZoneDbaseRecordsTranslatorTests() { _fixture = new Fixture(); _fixture.CustomizeReason(); _fixture.CustomizeOperatorName(); _fixture.CustomizeOrganizationId(); _fixture.Customize <TransactionZoneDbaseRecord>( composer => composer .FromFactory(random => new TransactionZoneDbaseRecord { SOURCE_ID = { Value = random.Next(1, 9999) }, TYPE = { Value = random.Next(1, 9999) }, BESCHRIJV = { Value = _fixture.Create <Reason>().ToString() }, OPERATOR = { Value = _fixture.Create <OperatorName>().ToString() }, ORG = { Value = _fixture.Create <OrganizationId>().ToString() }, APPLICATIE = { Value = new string(_fixture .CreateMany <char>(TransactionZoneDbaseRecord.Schema.APPLICATIE.Length.ToInt32()) .ToArray()) } }) .OmitAutoProperties()); _sut = new TransactionZoneDbaseRecordsTranslator(); _enumerator = new List <TransactionZoneDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("transactiezone.dbf"); }
public EuropeanRoadChangeDbaseRecordsTranslatorTests() { _fixture = new Fixture(); _fixture.CustomizeRecordType(); _fixture.CustomizeAttributeId(); _fixture.CustomizeRoadSegmentId(); _fixture.CustomizeEuropeanRoadNumber(); _fixture.Customize <EuropeanRoadChangeDbaseRecord>( composer => composer .FromFactory(random => new EuropeanRoadChangeDbaseRecord { RECORDTYPE = { Value = (short)_fixture.Create <RecordType>().Translation.Identifier }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, EU_OIDN = { Value = new AttributeId(random.Next(1, int.MaxValue)) }, WS_OIDN = { Value = _fixture.Create <RoadSegmentId>().ToInt32() }, EUNUMMER = { Value = _fixture.Create <EuropeanRoadNumber>().ToString() } }) .OmitAutoProperties()); _sut = new EuropeanRoadChangeDbaseRecordsTranslator(); _enumerator = new List <EuropeanRoadChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("atteuropweg_all.dbf"); }
public AnonymousDbaseRecordEnumeratorOverStreamWithEndOfFileTests() { var fixture = new Fixture(); fixture.CustomizeWordLength(); fixture.CustomizeDbaseFieldName(); fixture.CustomizeDbaseFieldLength(); fixture.CustomizeDbaseDecimalCount(); fixture.CustomizeDbaseField(); fixture.CustomizeDbaseCodePage(); fixture.CustomizeDbaseRecordCount(); fixture.CustomizeDbaseSchema(); var header = fixture.Create <DbaseFileHeader>(); var stream = new MemoryStream(); long position; using (var writer = new BinaryWriter(stream, Encoding.UTF8, true)) { header.Write(writer); writer.Flush(); position = stream.Position; writer.Write(DbaseRecord.EndOfFile); writer.Flush(); } stream.Position = position; _reader = new DisposableBinaryReader(stream, Encoding.UTF8, false); _sut = header.CreateAnonymousDbaseRecordEnumerator(_reader); }
public RoadSegmentSurfaceChangeDbaseRecordsValidatorTests() { _fixture = new Fixture(); _fixture.CustomizeAttributeId(); _fixture.CustomizeRoadSegmentId(); _fixture.CustomizeRoadSegmentSurfaceType(); _fixture.CustomizeRoadSegmentPosition(); _fixture.Customize <RoadSegmentSurfaceChangeDbaseRecord>( composer => composer .FromFactory(random => new RoadSegmentSurfaceChangeDbaseRecord { RECORDTYPE = { Value = (short)random.Next(1, 5) }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, WV_OIDN = { Value = new AttributeId(random.Next(1, int.MaxValue)) }, WS_OIDN = { Value = _fixture.Create <RoadSegmentId>().ToInt32() }, VANPOSITIE = { Value = _fixture.Create <RoadSegmentPosition>().ToDouble() }, TOTPOSITIE = { Value = _fixture.Create <RoadSegmentPosition>().ToDouble() }, TYPE = { Value = (short)_fixture.Create <RoadSegmentSurfaceType>().Translation.Identifier } }) .OmitAutoProperties()); _sut = new RoadSegmentSurfaceChangeDbaseRecordsValidator(); _enumerator = new List <RoadSegmentSurfaceChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("attwegverharding_all.dbf"); }
public NumberedRoadChangeDbaseRecordsValidatorTests() { _fixture = new Fixture(); _fixture.CustomizeAttributeId(); _fixture.CustomizeRoadSegmentId(); _fixture.CustomizeNumberedRoadNumber(); _fixture.CustomizeRoadSegmentNumberedRoadOrdinal(); _fixture.CustomizeRoadSegmentNumberedRoadDirection(); _fixture.Customize <NumberedRoadChangeDbaseRecord>( composer => composer .FromFactory(random => new NumberedRoadChangeDbaseRecord { RECORDTYPE = { Value = (short)random.Next(1, 5) }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, GW_OIDN = { Value = new AttributeId(random.Next(1, int.MaxValue)) }, WS_OIDN = { Value = _fixture.Create <RoadSegmentId>().ToInt32() }, IDENT8 = { Value = _fixture.Create <NumberedRoadNumber>().ToString() }, RICHTING = { Value = (short)_fixture.Create <RoadSegmentNumberedRoadDirection>().Translation.Identifier }, VOLGNUMMER = { Value = _fixture.Create <RoadSegmentNumberedRoadOrdinal>().ToInt32() } }) .OmitAutoProperties()); _sut = new NumberedRoadChangeDbaseRecordsValidator(); _enumerator = new List <NumberedRoadChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("attgenumweg_all.dbf"); }
public GradeSeparatedJunctionChangeDbaseRecordsTranslatorTests() { _fixture = new Fixture(); _fixture.CustomizeRecordType(); _fixture.CustomizeRoadSegmentId(); _fixture.CustomizeGradeSeparatedJunctionId(); _fixture.CustomizeGradeSeparatedJunctionType(); _fixture.Customize <GradeSeparatedJunctionChangeDbaseRecord>( composer => composer .FromFactory(random => new GradeSeparatedJunctionChangeDbaseRecord { RECORDTYPE = { Value = (short)_fixture.Create <RecordType>().Translation.Identifier }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, OK_OIDN = { Value = new GradeSeparatedJunctionId(random.Next(1, int.MaxValue)) }, TYPE = { Value = (short)_fixture.Create <GradeSeparatedJunctionType>().Translation.Identifier }, BO_WS_OIDN = { Value = _fixture.Create <RoadSegmentId>().ToInt32() }, ON_WS_OIDN = { Value = _fixture.Create <RoadSegmentId>().ToInt32() }, }) .OmitAutoProperties()); _sut = new GradeSeparatedJunctionChangeDbaseRecordsTranslator(); _enumerator = new List <GradeSeparatedJunctionChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("rltogkruising_all.dbf"); }
public ZipArchiveProblems Validate(ZipArchiveEntry entry, IDbaseRecordEnumerator <FakeDbaseRecord> records) { var collected = new List <FakeDbaseRecord>(); while (records.MoveNext()) { collected.Add(records.Current); } Collected = collected.ToArray(); return(ZipArchiveProblems.None); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <FakeDbaseRecord> records, TranslatedChanges changes) { var collected = new List <FakeDbaseRecord>(); while (records.MoveNext()) { collected.Add(records.Current); } Collected = collected.ToArray(); return(changes); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <RoadSegmentChangeDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } while (records.MoveNext()) { var record = records.Current; if (record != null) { switch (record.RECORDTYPE.Value) { case RecordType.AddedIdentifier: changes = changes.Append( new AddRoadSegment( records.CurrentRecordNumber, new RoadSegmentId(record.WS_OIDN.Value), new RoadNodeId(record.B_WK_OIDN.Value), new RoadNodeId(record.E_WK_OIDN.Value), new OrganizationId(record.BEHEERDER.Value), RoadSegmentGeometryDrawMethod.ByIdentifier[record.METHODE.Value], RoadSegmentMorphology.ByIdentifier[record.MORFOLOGIE.Value], RoadSegmentStatus.ByIdentifier[record.STATUS.Value], RoadSegmentCategory.ByIdentifier[record.WEGCAT.Value], RoadSegmentAccessRestriction.ByIdentifier[record.TGBEP.Value], record.LSTRNMID.Value.HasValue ? new CrabStreetnameId(record.LSTRNMID.Value.Value) : new CrabStreetnameId?(), record.RSTRNMID.Value.HasValue ? new CrabStreetnameId(record.RSTRNMID.Value.Value) : new CrabStreetnameId?() ) ); break; } } } return(changes); }
public AnonymousDbaseRecordEnumeratorWithEmptyStreamTests() { var fixture = new Fixture(); fixture.CustomizeWordLength(); fixture.CustomizeDbaseFieldName(); fixture.CustomizeDbaseFieldLength(); fixture.CustomizeDbaseDecimalCount(); fixture.CustomizeDbaseField(); fixture.CustomizeDbaseCodePage(); fixture.CustomizeDbaseRecordCount(); fixture.CustomizeDbaseSchema(); var header = fixture.Create <DbaseFileHeader>(); _reader = new DisposableBinaryReader(new MemoryStream(), Encoding.UTF8, false); _sut = header.CreateAnonymousDbaseRecordEnumerator(_reader); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <RoadSegmentLaneChangeDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } while (records.MoveNext()) { var record = records.Current; if (record != null) { switch (record.RECORDTYPE.Value) { case RecordType.EqualIdentifier: case RecordType.AddedIdentifier: case RecordType.ModifiedIdentifier: var segmentId = new RoadSegmentId(record.WS_OIDN.Value); if (changes.TryFindAddRoadSegment(segmentId, out var change)) { var lane = new RoadSegmentLaneAttribute( new AttributeId(record.RS_OIDN.Value), new RoadSegmentLaneCount(record.AANTAL.Value), RoadSegmentLaneDirection.ByIdentifier[record.RICHTING.Value], RoadSegmentPosition.FromDouble(record.VANPOSITIE.Value), RoadSegmentPosition.FromDouble(record.TOTPOSITIE.Value) ); changes = changes.Replace(change, change.WithLane(lane)); } break; } } } return(changes); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <RoadSegmentWidthChangeDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } while (records.MoveNext()) { var record = records.Current; if (record != null) { switch (record.RECORDTYPE.Value) { case RecordType.EqualIdentifier: case RecordType.AddedIdentifier: case RecordType.ModifiedIdentifier: var segmentId = new RoadSegmentId(record.WS_OIDN.Value); if (changes.TryFindAddRoadSegment(segmentId, out var before)) { var width = new RoadSegmentWidthAttribute( new AttributeId(record.WB_OIDN.Value), new RoadSegmentWidth(record.BREEDTE.Value), RoadSegmentPosition.FromDouble(record.VANPOSITIE.Value), RoadSegmentPosition.FromDouble(record.TOTPOSITIE.Value) ); changes = changes.Replace(before, before.WithWidth(width)); } break; } } } return(changes); }
public AnonymousDbaseRecordEnumeratorOverStreamWithExpectedBytesTests() { var fixture = new Fixture(); fixture.CustomizeWordLength(); fixture.CustomizeDbaseFieldName(); fixture.CustomizeDbaseFieldLength(); fixture.CustomizeDbaseDecimalCount(); fixture.CustomizeDbaseField(); fixture.CustomizeDbaseCodePage(); fixture.CustomizeDbaseRecordCount(); fixture.CustomizeDbaseSchema(); _record1 = new FakeDbaseRecord { Id = { Value = fixture.Create <int>() } }; _record2 = new FakeDbaseRecord { Id = { Value = fixture.Create <int>() } }; var header = new DbaseFileHeader( fixture.Create <DateTime>(), DbaseCodePage.Western_European_ANSI, new DbaseRecordCount(2), new FakeDbaseSchema()); var stream = new MemoryStream(); long position; using (var writer = new BinaryWriter(stream, Encoding.UTF8, true)) { header.Write(writer); writer.Flush(); position = stream.Position; _record1.Write(writer); _record2.Write(writer); writer.Write(DbaseRecord.EndOfFile); writer.Flush(); } stream.Position = position; _reader = new DisposableBinaryReader(stream, Encoding.UTF8, false); _sut = header.CreateAnonymousDbaseRecordEnumerator(_reader); }
public DbaseRecordEnumeratorWithLongerStreamTests() { var fixture = new Fixture(); fixture.CustomizeWordLength(); fixture.CustomizeDbaseFieldName(); fixture.CustomizeDbaseFieldLength(); fixture.CustomizeDbaseDecimalCount(); fixture.CustomizeDbaseField(); fixture.CustomizeDbaseCodePage(); fixture.CustomizeDbaseRecordCount(); fixture.CustomizeDbaseSchema(); _record = new FakeDbaseRecord { Id = { Value = fixture.Create <int>() } }; var header = new DbaseFileHeader( fixture.Create <DateTime>(), DbaseCodePage.Western_European_ANSI, new DbaseRecordCount(1), new FakeDbaseSchema()); var stream = new MemoryStream(); long position; using (var writer = new BinaryWriter(stream, Encoding.UTF8, true)) { header.Write(writer); writer.Flush(); position = stream.Position; _record.Write(writer); writer.Write(DbaseRecord.EndOfFile); writer.Write(fixture.CreateMany <byte>(10).ToArray()); writer.Flush(); } stream.Position = position; _reader = new DisposableBinaryReader(stream, Encoding.UTF8, false); _sut = header.CreateDbaseRecordEnumerator <FakeDbaseRecord>(_reader); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <RoadNodeChangeDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } var recordNumber = RecordNumber.Initial; while (records.MoveNext()) { var record = records.Current; if (record != null) { switch (record.RECORDTYPE.Value) { case RecordType.AddedIdentifier: changes = changes.Append( new AddRoadNode( recordNumber, new RoadNodeId(record.WEGKNOOPID.Value), RoadNodeType.ByIdentifier[record.TYPE.Value] ) ); break; } } recordNumber = recordNumber.Next(); } return(changes); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <NumberedRoadChangeDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } while (records.MoveNext()) { var record = records.Current; if (record != null) { switch (record.RECORDTYPE.Value) { case RecordType.AddedIdentifier: changes = changes.Append( new AddRoadSegmentToNumberedRoad( new AttributeId(record.GW_OIDN.Value), new RoadSegmentId(record.WS_OIDN.Value), NumberedRoadNumber.Parse(record.IDENT8.Value), RoadSegmentNumberedRoadDirection.ByIdentifier[record.RICHTING.Value], new RoadSegmentNumberedRoadOrdinal(record.VOLGNUMMER.Value) ) ); break; } } } return(changes); }
public RoadNodeChangeDbaseRecordsValidatorTests() { _fixture = new Fixture(); _fixture.CustomizeRoadNodeId(); _fixture.CustomizeRoadNodeType(); _fixture.Customize <RoadNodeChangeDbaseRecord>( composer => composer .FromFactory(random => new RoadNodeChangeDbaseRecord { RECORDTYPE = { Value = (short)random.Next(1, 5) }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, WEGKNOOPID = { Value = new RoadNodeId(random.Next(1, int.MaxValue)) }, TYPE = { Value = (short)_fixture.Create <RoadNodeType>().Translation.Identifier } }) .OmitAutoProperties()); _sut = new RoadNodeChangeDbaseRecordsValidator(); _enumerator = new List <RoadNodeChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("wegknoop_all.dbf"); }
public RoadSegmentChangeDbaseRecordsTranslatorTests() { _fixture = new Fixture(); _fixture.CustomizeRecordType(); _fixture.CustomizeRoadNodeId(); _fixture.CustomizeRoadSegmentId(); _fixture.CustomizeRoadSegmentGeometryDrawMethod(); _fixture.CustomizeOrganizationId(); _fixture.CustomizeRoadSegmentMorphology(); _fixture.CustomizeRoadSegmentStatus(); _fixture.CustomizeRoadSegmentCategory(); _fixture.CustomizeRoadSegmentAccessRestriction(); _fixture.Customize <RoadSegmentChangeDbaseRecord>( composer => composer .FromFactory(random => new RoadSegmentChangeDbaseRecord { RECORDTYPE = { Value = (short)_fixture.Create <RecordType>().Translation.Identifier }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, WS_OIDN = { Value = new RoadSegmentId(random.Next(1, int.MaxValue)) }, METHODE = { Value = (short)_fixture.Create <RoadSegmentGeometryDrawMethod>().Translation.Identifier }, BEHEERDER = { Value = _fixture.Create <OrganizationId>() }, MORFOLOGIE = { Value = (short)_fixture.Create <RoadSegmentMorphology>().Translation.Identifier }, STATUS = { Value = _fixture.Create <RoadSegmentStatus>().Translation.Identifier }, WEGCAT = { Value = _fixture.Create <RoadSegmentCategory>().Translation.Identifier }, B_WK_OIDN = { Value = new RoadNodeId(random.Next(1, int.MaxValue)) }, E_WK_OIDN = { Value = new RoadNodeId(random.Next(1, int.MaxValue)) }, LSTRNMID = { Value = new CrabStreetnameId(random.Next(1, int.MaxValue)) }, RSTRNMID = { Value = new CrabStreetnameId(random.Next(1, int.MaxValue)) }, TGBEP = { Value = (short)_fixture.Create <RoadSegmentAccessRestriction>().Translation.Identifier }, EVENTIDN = { Value = new RoadSegmentId(random.Next(1, int.MaxValue)) } }) .OmitAutoProperties()); _sut = new RoadSegmentChangeDbaseRecordsTranslator(); _enumerator = new List <RoadSegmentChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("wegsegment_all.dbf"); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <GradeSeparatedJunctionChangeDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } while (records.MoveNext()) { var record = records.Current; if (record != null) { switch (record.RECORDTYPE.Value) { case RecordType.AddedIdentifier: changes = changes.Append( new AddGradeSeparatedJunction( new GradeSeparatedJunctionId(record.OK_OIDN.Value), GradeSeparatedJunctionType.ByIdentifier[record.TYPE.Value], new RoadSegmentId(record.BO_WS_OIDN.Value), new RoadSegmentId(record.ON_WS_OIDN.Value) ) ); break; } } } return(changes); }
public RoadSegmentLaneChangeDbaseRecordsTranslatorTests() { _fixture = new Fixture(); _fixture.CustomizeRecordType(); _fixture.CustomizeRoadNodeId(); _fixture.CustomizeRoadSegmentId(); _fixture.CustomizeRoadSegmentGeometryDrawMethod(); _fixture.CustomizeOrganizationId(); _fixture.CustomizeRoadSegmentMorphology(); _fixture.CustomizeRoadSegmentStatus(); _fixture.CustomizeRoadSegmentCategory(); _fixture.CustomizeRoadSegmentAccessRestriction(); _fixture.CustomizeAttributeId(); _fixture.CustomizeRoadSegmentLaneCount(); _fixture.CustomizeRoadSegmentLaneDirection(); _fixture.CustomizeRoadSegmentPosition(); _fixture.Customize <RoadSegmentLaneChangeDbaseRecord>( composer => composer .FromFactory(random => new RoadSegmentLaneChangeDbaseRecord { RECORDTYPE = { Value = (short)_fixture.Create <RecordType>().Translation.Identifier }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, RS_OIDN = { Value = new AttributeId(random.Next(1, int.MaxValue)) }, WS_OIDN = { Value = _fixture.Create <RoadSegmentId>().ToInt32() }, VANPOSITIE = { Value = _fixture.Create <RoadSegmentPosition>().ToDouble() }, TOTPOSITIE = { Value = _fixture.Create <RoadSegmentPosition>().ToDouble() }, AANTAL = { Value = (short)_fixture.Create <RoadSegmentLaneCount>().ToInt32() }, RICHTING = { Value = (short)_fixture.Create <RoadSegmentLaneDirection>().Translation.Identifier } }) .OmitAutoProperties()); _sut = new RoadSegmentLaneChangeDbaseRecordsTranslator(); _enumerator = new List <RoadSegmentLaneChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("attrijstroken_all.dbf"); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <EuropeanRoadChangeDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } while (records.MoveNext()) { var record = records.Current; if (record != null) { switch (record.RECORDTYPE.Value) { case RecordType.AddedIdentifier: changes = changes.Append( new AddRoadSegmentToEuropeanRoad( new AttributeId(record.EU_OIDN.Value), new RoadSegmentId(record.WS_OIDN.Value), EuropeanRoadNumber.Parse(record.EUNUMMER.Value) ) ); break; } } } return(changes); }
public NationalRoadChangeDbaseRecordsValidatorTests() { _fixture = new Fixture(); _fixture.CustomizeAttributeId(); _fixture.CustomizeRoadSegmentId(); _fixture.CustomizeNationalRoadNumber(); _fixture.Customize <NationalRoadChangeDbaseRecord>( composer => composer .FromFactory(random => new NationalRoadChangeDbaseRecord { RECORDTYPE = { Value = (short)random.Next(1, 5) }, TRANSACTID = { Value = (short)random.Next(1, 9999) }, NW_OIDN = { Value = new AttributeId(random.Next(1, int.MaxValue)) }, WS_OIDN = { Value = _fixture.Create <RoadSegmentId>().ToInt32() }, IDENT2 = { Value = _fixture.Create <NationalRoadNumber>().ToString() } }) .OmitAutoProperties()); _sut = new NationalRoadChangeDbaseRecordsValidator(); _enumerator = new List <NationalRoadChangeDbaseRecord>().ToDbaseRecordEnumerator(); _stream = new MemoryStream(); _archive = new ZipArchive(_stream, ZipArchiveMode.Create); _entry = _archive.CreateEntry("attnationweg_all.dbf"); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <TransactionZoneDbaseRecord> records, TranslatedChanges changes) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } if (changes == null) { throw new ArgumentNullException(nameof(changes)); } if (records.MoveNext() && records.Current != null) { return(changes .WithReason(new Reason(records.Current.BESCHRIJV.Value)) .WithOperatorName(new OperatorName(records.Current.OPERATOR.Value)) .WithOrganization(new OrganizationId(records.Current.ORG.Value))); } return(changes); }
public ZipArchiveProblems Validate(ZipArchiveEntry entry, IDbaseRecordEnumerator <RoadSegmentChangeDbaseRecord> records) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } var problems = ZipArchiveProblems.None; try { var identifiers = new Dictionary <RoadSegmentId, RecordNumber>(); var moved = records.MoveNext(); if (moved) { while (moved) { var recordContext = entry.AtDbaseRecord(records.CurrentRecordNumber); var record = records.Current; if (record != null) { if (!record.RECORDTYPE.HasValue) { problems += recordContext.RequiredFieldIsNull(record.RECORDTYPE.Field); } else { if (!RecordType.ByIdentifier.ContainsKey(record.RECORDTYPE.Value)) { problems += recordContext.RecordTypeMismatch(record.RECORDTYPE.Value); } } if (record.WS_OIDN.HasValue) { if (record.WS_OIDN.Value == 0) { problems += recordContext.IdentifierZero(); } else { var identifier = new RoadSegmentId(record.WS_OIDN.Value); if (identifiers.TryGetValue(identifier, out var takenByRecordNumber)) { problems += recordContext.IdentifierNotUnique( identifier, takenByRecordNumber ); } else { identifiers.Add(identifier, records.CurrentRecordNumber); } } } else { problems += recordContext.RequiredFieldIsNull(record.WS_OIDN.Field); } if (!record.TGBEP.HasValue) { problems += recordContext.RequiredFieldIsNull(record.TGBEP.Field); } else if (!RoadSegmentAccessRestriction.ByIdentifier.ContainsKey(record.TGBEP.Value)) { problems += recordContext.RoadSegmentAccessRestrictionMismatch(record.TGBEP.Value); } if (!record.STATUS.HasValue) { problems += recordContext.RequiredFieldIsNull(record.STATUS.Field); } else if (!RoadSegmentStatus.ByIdentifier.ContainsKey(record.STATUS.Value)) { problems += recordContext.RoadSegmentStatusMismatch(record.STATUS.Value); } if (!record.WEGCAT.HasValue) { problems += recordContext.RequiredFieldIsNull(record.WEGCAT.Field); } else if (!RoadSegmentCategory.ByIdentifier.ContainsKey(record.WEGCAT.Value)) { problems += recordContext.RoadSegmentCategoryMismatch(record.WEGCAT.Value); } if (!record.METHODE.HasValue) { problems += recordContext.RequiredFieldIsNull(record.METHODE.Field); } else if (!RoadSegmentGeometryDrawMethod.ByIdentifier.ContainsKey(record.METHODE.Value)) { problems += recordContext.RoadSegmentGeometryDrawMethodMismatch(record.METHODE.Value); } if (!record.MORFOLOGIE.HasValue) { problems += recordContext.RequiredFieldIsNull(record.MORFOLOGIE.Field); } else if (!RoadSegmentMorphology.ByIdentifier.ContainsKey(record.MORFOLOGIE.Value)) { problems += recordContext.RoadSegmentMorphologyMismatch(record.MORFOLOGIE.Value); } if (!record.B_WK_OIDN.HasValue) { problems += recordContext.RequiredFieldIsNull(record.B_WK_OIDN.Field); } else if (!RoadNodeId.Accepts(record.B_WK_OIDN.Value)) { problems += recordContext.BeginRoadNodeIdOutOfRange(record.B_WK_OIDN.Value); } if (!record.E_WK_OIDN.HasValue) { problems += recordContext.RequiredFieldIsNull(record.E_WK_OIDN.Field); } else if (!RoadNodeId.Accepts(record.E_WK_OIDN.Value)) { problems += recordContext.EndRoadNodeIdOutOfRange(record.E_WK_OIDN.Value); } if (!record.BEHEERDER.HasValue) { problems += recordContext.RequiredFieldIsNull(record.BEHEERDER.Field); } } moved = records.MoveNext(); } } else { problems += entry.HasNoDbaseRecords(false); } } catch (Exception exception) { problems += entry.AtDbaseRecord(records.CurrentRecordNumber).HasDbaseRecordFormatError(exception); } return(problems); }
public TranslatedChanges Translate(ZipArchiveEntry entry, IDbaseRecordEnumerator <FakeDbaseRecord> records, TranslatedChanges changes) { return(_translation(changes)); }
public ZipArchiveProblems Validate(ZipArchiveEntry entry, IDbaseRecordEnumerator <NationalRoadChangeDbaseRecord> records) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } var problems = ZipArchiveProblems.None; try { var identifiers = new Dictionary <AttributeId, RecordNumber>(); var moved = records.MoveNext(); if (moved) { while (moved) { var recordContext = entry.AtDbaseRecord(records.CurrentRecordNumber); var record = records.Current; if (record != null) { if (!record.RECORDTYPE.HasValue) { problems += recordContext.RequiredFieldIsNull(record.RECORDTYPE.Field); } else { if (!RecordType.ByIdentifier.ContainsKey(record.RECORDTYPE.Value)) { problems += recordContext.RecordTypeMismatch(record.RECORDTYPE.Value); } } if (record.NW_OIDN.HasValue) { if (record.NW_OIDN.Value == 0) { problems += recordContext.IdentifierZero(); } else { var identifier = new AttributeId(record.NW_OIDN.Value); if (identifiers.TryGetValue(identifier, out var takenByRecordNumber)) { problems += recordContext.IdentifierNotUnique( identifier, takenByRecordNumber ); } else { identifiers.Add(identifier, records.CurrentRecordNumber); } } } else { problems += recordContext.RequiredFieldIsNull(record.NW_OIDN.Field); } if (record.IDENT2.Value == null) { problems += recordContext.RequiredFieldIsNull(record.IDENT2.Field); } else if (!NationalRoadNumber.CanParse(record.IDENT2.Value)) { problems += recordContext.NotNationalRoadNumber(record.IDENT2.Value); } if (!record.WS_OIDN.HasValue) { problems += recordContext.RequiredFieldIsNull(record.WS_OIDN.Field); } else if (!RoadSegmentId.Accepts(record.WS_OIDN.Value)) { problems += recordContext.RoadSegmentIdOutOfRange(record.WS_OIDN.Value); } moved = records.MoveNext(); } } } else { problems += entry.HasNoDbaseRecords(true); } } catch (Exception exception) { problems += entry.AtDbaseRecord(records.CurrentRecordNumber).HasDbaseRecordFormatError(exception); } return(problems); }
public ZipArchiveProblems Validate(ZipArchiveEntry entry, IDbaseRecordEnumerator <TransactionZoneDbaseRecord> records) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } var problems = ZipArchiveProblems.None; try { var count = 0; var moved = records.MoveNext(); if (moved) { while (moved) { var recordContext = entry.AtDbaseRecord(records.CurrentRecordNumber); var record = records.Current; if (record != null) { if (!record.BESCHRIJV.HasValue) { problems += recordContext.RequiredFieldIsNull(record.BESCHRIJV.Field); } if (!record.OPERATOR.HasValue) { problems += recordContext.RequiredFieldIsNull(record.OPERATOR.Field); } if (!record.ORG.HasValue) { problems += recordContext.RequiredFieldIsNull(record.ORG.Field); } else if (!OrganizationId.AcceptsValue(record.ORG.Value)) { problems += recordContext.OrganizationIdOutOfRange(record.ORG.Value); } count++; moved = records.MoveNext(); } } if (count != 1) { problems += entry.HasTooManyDbaseRecords(1, count); } } else { problems += entry.HasNoDbaseRecords(true); } } catch (Exception exception) { problems += entry.AtDbaseRecord(records.CurrentRecordNumber).HasDbaseRecordFormatError(exception); } return(problems); }
public ZipArchiveProblems Validate(ZipArchiveEntry entry, IDbaseRecordEnumerator <FakeDbaseRecord> records) { return(ZipArchiveProblems.None.AddRange(_problems)); }
public ZipArchiveProblems Validate(ZipArchiveEntry entry, IDbaseRecordEnumerator <RoadSegmentLaneChangeDbaseRecord> records) { if (entry == null) { throw new ArgumentNullException(nameof(entry)); } if (records == null) { throw new ArgumentNullException(nameof(records)); } var problems = ZipArchiveProblems.None; try { var identifiers = new Dictionary <AttributeId, RecordNumber>(); var moved = records.MoveNext(); if (moved) { while (moved) { var recordContext = entry.AtDbaseRecord(records.CurrentRecordNumber); var record = records.Current; if (record != null) { if (!record.RECORDTYPE.HasValue) { problems += recordContext.RequiredFieldIsNull(record.RECORDTYPE.Field); } else { if (!RecordType.ByIdentifier.ContainsKey(record.RECORDTYPE.Value)) { problems += recordContext.RecordTypeMismatch(record.RECORDTYPE.Value); } } if (record.RS_OIDN.HasValue) { if (record.RS_OIDN.Value == 0) { problems += recordContext.IdentifierZero(); } else { var identifier = new AttributeId(record.RS_OIDN.Value); if (identifiers.TryGetValue(identifier, out var takenByRecordNumber)) { problems += recordContext.IdentifierNotUnique( identifier, takenByRecordNumber ); } else { identifiers.Add(identifier, records.CurrentRecordNumber); } } } else { problems += recordContext.RequiredFieldIsNull(record.RS_OIDN.Field); } if (!record.AANTAL.HasValue) { problems += recordContext.RequiredFieldIsNull(record.AANTAL.Field); } else if (!RoadSegmentLaneCount.Accepts(record.AANTAL.Value)) { problems += recordContext.LaneCountOutOfRange(record.AANTAL.Value); } if (!record.RICHTING.HasValue) { problems += recordContext.RequiredFieldIsNull(record.RICHTING.Field); } else if (!RoadSegmentLaneDirection.ByIdentifier.ContainsKey(record.RICHTING.Value)) { problems += recordContext.LaneDirectionMismatch(record.RICHTING.Value); } if (!record.VANPOSITIE.HasValue) { problems += recordContext.RequiredFieldIsNull(record.VANPOSITIE.Field); } else if (!RoadSegmentPosition.Accepts(record.VANPOSITIE.Value)) { problems += recordContext.FromPositionOutOfRange(record.VANPOSITIE.Value); } if (!record.TOTPOSITIE.HasValue) { problems += recordContext.RequiredFieldIsNull(record.TOTPOSITIE.Field); } else if (!RoadSegmentPosition.Accepts(record.TOTPOSITIE.Value)) { problems += recordContext.ToPositionOutOfRange(record.TOTPOSITIE.Value); } if (!record.WS_OIDN.HasValue) { problems += recordContext.RequiredFieldIsNull(record.WS_OIDN.Field); } else if (!RoadSegmentId.Accepts(record.WS_OIDN.Value)) { problems += recordContext.RoadSegmentIdOutOfRange(record.WS_OIDN.Value); } } moved = records.MoveNext(); } } else { problems += entry.HasNoDbaseRecords(false); } } catch (Exception exception) { problems += entry.AtDbaseRecord(records.CurrentRecordNumber).HasDbaseRecordFormatError(exception); } return(problems); }