public void ValidateWithRecordsThatHaveTheirRecordTypeMismatchReturnsExpectedResult() { var records = _fixture .CreateMany <NumberedRoadChangeDbaseRecord>(2) .Select((record, index) => { record.GW_OIDN.Value = index + 1; record.RECORDTYPE.Value = -1; return(record); }) .ToDbaseRecordEnumerator(); var result = _sut.Validate(_entry, records); Assert.Equal( ZipArchiveProblems.Many( _entry .AtDbaseRecord(new RecordNumber(1)) .RecordTypeMismatch(-1), _entry .AtDbaseRecord(new RecordNumber(2)) .RecordTypeMismatch(-1) ), result); }
public void ValidateWithEmptyPolyLineMRecordsReturnsExpectedResult() { var records = Enumerable.Range(0, 2) .Select(index => new PolyLineMShapeContent( GeometryTranslator.FromGeometryMultiLineString( new MultiLineString( new[] { new LineString( new CoordinateArraySequence(new[] { NetTopologySuite.Geometries.Point.Empty.Coordinate, NetTopologySuite.Geometries.Point.Empty.Coordinate }), GeometryConfiguration.GeometryFactory) }))).RecordAs(new RecordNumber(index + 1))) .GetEnumerator(); var result = _sut.Validate(_entry, records); Assert.Equal( ZipArchiveProblems.Many( _entry.AtShapeRecord(new RecordNumber(1)).ShapeRecordGeometryMismatch(), _entry.AtShapeRecord(new RecordNumber(2)).ShapeRecordGeometryMismatch() ), result); }
public void ValidateReturnsExpectedResultFromEntryValidators() { using (var archive = CreateArchiveWithEmptyFiles()) { var sut = new ZipArchiveValidator(Encoding.UTF8); var result = sut.Validate(archive); Assert.Equal( ZipArchiveProblems.Many( archive.Entries.Select(entry => entry.Name.EndsWith(".SHP") ? entry.HasNoShapeRecords() : entry.HasNoDbaseRecords(false)) ), result); } }
public void ValidateWithEmptyPointRecordsReturnsExpectedResult() { var records = Enumerable.Range(0, 2) .Select(index => new PointShapeContent(GeometryTranslator.FromGeometryPoint(NetTopologySuite.Geometries.Point.Empty)) .RecordAs(new RecordNumber(index + 1))) .GetEnumerator(); var result = _sut.Validate(_entry, records); Assert.Equal( ZipArchiveProblems.Many( _entry.AtShapeRecord(new RecordNumber(1)).ShapeRecordGeometryMismatch(), _entry.AtShapeRecord(new RecordNumber(2)).ShapeRecordGeometryMismatch() ), result); }
public void ValidateWithTooLittleOrTooManyLinesPolyLineMRecordsReturnsExpectedResult() { var records = Enumerable.Range(0, 2) .Select(index => { if (index == 0) { return(new PolyLineMShapeContent( GeometryTranslator.FromGeometryMultiLineString(new MultiLineString(new LineString[0])) ).RecordAs(new RecordNumber(index + 1))); } return(new PolyLineMShapeContent( GeometryTranslator.FromGeometryMultiLineString( new MultiLineString(new[] { new LineString( new CoordinateArraySequence(new[] { new Coordinate(index * 2.0, index * 2.0), new Coordinate(index * 2.0 + 1.0, index * 2.0 + 1.0) }), GeometryConfiguration.GeometryFactory), new LineString( new CoordinateArraySequence(new[] { new Coordinate(index * 4.0, index * 4.0), new Coordinate(index * 4.0 + 1.0, index * 4.0 + 1.0) }), GeometryConfiguration.GeometryFactory) })) ).RecordAs(new RecordNumber(index + 1))); }) .GetEnumerator(); var result = _sut.Validate(_entry, records); Assert.Equal( ZipArchiveProblems.Many( _entry.AtShapeRecord(new RecordNumber(1)).ShapeRecordGeometryLineCountMismatch(1, 0), _entry.AtShapeRecord(new RecordNumber(2)).ShapeRecordGeometryLineCountMismatch(1, 2) ), result); }
public void ValidateWithRecordsThatHaveZeroAsAttributeIdentifierReturnsExpectedResult() { var records = _fixture .CreateMany <NumberedRoadChangeDbaseRecord>(2) .Select(record => { record.GW_OIDN.Value = 0; return(record); }) .ToDbaseRecordEnumerator(); var result = _sut.Validate(_entry, records); Assert.Equal( ZipArchiveProblems.Many( _entry.AtDbaseRecord(new RecordNumber(1)).IdentifierZero(), _entry.AtDbaseRecord(new RecordNumber(2)).IdentifierZero() ), result); }
public void ValidateWithRecordsThatHaveNullAsEuropeanRoadNumbersReturnsExpectedResult() { var records = _fixture .CreateMany <EuropeanRoadChangeDbaseRecord>(2) .Select((record, index) => { record.EU_OIDN.Value = index + 1; record.EUNUMMER.Value = null; return(record); }) .ToDbaseRecordEnumerator(); var result = _sut.Validate(_entry, records); Assert.Equal( ZipArchiveProblems.Many( _entry.AtDbaseRecord(new RecordNumber(1)).RequiredFieldIsNull(EuropeanRoadChangeDbaseRecord.Schema.EUNUMMER), _entry.AtDbaseRecord(new RecordNumber(2)).RequiredFieldIsNull(EuropeanRoadChangeDbaseRecord.Schema.EUNUMMER) ), result); }
public void ValidateWithRecordsThatDoNotHaveEuropeanRoadNumbersReturnsExpectedResult(string number) { var records = _fixture .CreateMany <EuropeanRoadChangeDbaseRecord>(2) .Select((record, index) => { record.EU_OIDN.Value = index + 1; record.EUNUMMER.Value = number; return(record); }) .ToDbaseRecordEnumerator(); var result = _sut.Validate(_entry, records); Assert.Equal( ZipArchiveProblems.Many( _entry.AtDbaseRecord(new RecordNumber(1)).NotEuropeanRoadNumber(number), _entry.AtDbaseRecord(new RecordNumber(2)).NotEuropeanRoadNumber(number) ), result); }