public void ShouldParseAddmlWithForeignKey() { AddmlDefinition addmlDefinition = _parser.GetAddmlDefinition(); List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions; addmlFlatFileDefinitions.Count.Should().Be(3); addmlFlatFileDefinitions[0].Name.Should().Be("Saksregister"); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0]; addmlRecordDefinition.Name.Should().Be("Saksregisterpost"); addmlRecordDefinition.Processes.Should().BeEmpty(); addmlRecordDefinition.ForeignKeys.Should().NotBeNullOrEmpty(); addmlRecordDefinition.ForeignKeys.Count.Should().Be(1); AddmlForeignKey foreignKey = addmlRecordDefinition.ForeignKeys[0]; foreignKey.Name.Should().Be("FK1sak"); foreignKey.ForeignKeys.Count.Should().Be(1); foreignKey.ForeignKeys[0].Name.Should().Be("Arkiv_2_delfelt"); foreignKey.ForeignKeyReferenceIndexes[0].GetFlatFileDefinitionName().Should().Be("arkivnoekkelregister"); foreignKey.ForeignKeyReferenceIndexes[0].GetRecordDefinitionName().Should().Be("arkivnoekkelregisterpost"); foreignKey.ForeignKeyReferenceIndexes[0].GetFieldDefinitionName().Should().Be("arkivkode"); List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(18); addmlFieldDefinitions[5].Name.Should().Be("Arkiv_2_delfelt"); }
protected FileFormatReader(AddmlFlatFileDefinition addmlFlatFileDefinition) { List <AddmlRecordDefinition> addmlRecordDefinitions = addmlFlatFileDefinition.AddmlRecordDefinitions; if (addmlRecordDefinitions.Count < 1) { throw new ArgumentException("At least 1 addmlFlatFileDefinition must be present. Found: " + addmlRecordDefinitions.Count); } if (addmlRecordDefinitions.Count == 1) { _addmlRecordDefinition = addmlRecordDefinitions[0]; return; } foreach (AddmlRecordDefinition addmlRecordDefinition in addmlRecordDefinitions) { string recordDefinitionFieldValue = addmlRecordDefinition.RecordDefinitionFieldValue; if (string.IsNullOrEmpty(recordDefinitionFieldValue)) { throw new ArgumentException("recordDefinitionFieldValue must be present"); } _addmlRecordDefinitions.Add(recordDefinitionFieldValue, addmlRecordDefinition); } }
private Record GetNextRecord() { Tuple <string, List <string> > fieldIdentifierAndValues = _fixedFormatReader.GetNextValue(); List <Field> fields = CreateFields(fieldIdentifierAndValues); AddmlRecordDefinition addmlRecordDefinition = _addmlRecordDefinitions[fieldIdentifierAndValues.Item1]; return(new Record(addmlRecordDefinition, fields)); }
public Noark4FileReader(FlatFile file) { FileStream fileStream = file.Definition.FileInfo.OpenRead(); XmlReader xmlReader = XmlReaderUtil.Read(fileStream); // TODO: Support for multiple RecordDefinitions per file _addmlRecordDefinition = file.Definition.AddmlRecordDefinitions[0]; string recordName = _addmlRecordDefinition.Name; _reader = new XmlFormatReader(xmlReader, recordName); }
private List <Field> CreateFields(Tuple <string, List <string> > fieldIdentifierAndValues) { List <Field> fields = new List <Field>(); for (int i = 0; i < fieldIdentifierAndValues.Item2.Count; i++) { List <string> fieldValues = fieldIdentifierAndValues.Item2; AddmlRecordDefinition addmlRecordDefinition = _addmlRecordDefinitions[fieldIdentifierAndValues.Item1]; fields.Add(new Field(addmlRecordDefinition.AddmlFieldDefinitions[i], fieldValues[i])); } return(fields); }
public AddmlRecordDefinition Build() { if (_addmlFlatFileDefinition == null) { _addmlFlatFileDefinition = new AddmlFlatFileDefinitionBuilder().Build(); } var addmlRecordDefinition = new AddmlRecordDefinition(_addmlFlatFileDefinition, _name, _recordLength, _recordDefinitionFieldValue, _foreignKeys, _processes); _addmlFlatFileDefinition.AddmlRecordDefinitions.Add(addmlRecordDefinition); return(addmlRecordDefinition); }
private List <int> GetFieldLengths(AddmlRecordDefinition addmlRecordDefinition) { List <int> fieldLengths = new List <int>(); foreach (AddmlFieldDefinition fd in addmlRecordDefinition.AddmlFieldDefinitions) { int?fixedLength = fd.FixedLength; if (!fixedLength.HasValue) { throw new ArkadeException("FixedLength must be present in ADDML to use FlatFileReader"); } fieldLengths.Add(fixedLength.Value); } return(fieldLengths); }
public void ShouldParseAddmlWithProcesses() { AddmlDefinition addmlDefinition = _parser.GetAddmlDefinition(); List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions; addmlFlatFileDefinitions.Count.Should().Be(3); addmlFlatFileDefinitions[0].Name.Should().Be("Saksregister"); addmlFlatFileDefinitions[0].FileName.Should().Be("SAK.DAT"); addmlFlatFileDefinitions[0].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[0].RecordSeparator.Should().BeNull(); addmlFlatFileDefinitions[0].AddmlRecordDefinitions.Count.Should().Be(1); addmlFlatFileDefinitions[0].Processes.Should().BeEmpty(); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0]; addmlRecordDefinition.Name.Should().Be("Saksregisterpost"); addmlRecordDefinition.Processes.Should().BeEmpty(); List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(18); addmlFieldDefinitions[0].Name.Should().Be("Posttype"); addmlFieldDefinitions[0].Processes.Should().Equal( "Analyse_FindMinMaxLengths", "Control_BirthNumber", "Control_Codes", "Analyse_FindMinMaxValues", "Analyse_FrequencyList" ); addmlFieldDefinitions[1].Name.Should().Be("Grad"); addmlFieldDefinitions[2].Name.Should().Be("Saksnr"); addmlFieldDefinitions[3].Name.Should().Be("Dato"); addmlRecordDefinition.PrimaryKey.Should().Equal( new List <AddmlFieldDefinition>() { addmlFieldDefinitions[2] } ); }
public AddmlFieldDefinition Build() { if (_addmlRecordDefinition == null) { _addmlRecordDefinition = new AddmlRecordDefinitionBuilder().Build(); } var addmlFieldDefinition = _addmlRecordDefinition.AddAddmlFieldDefinition(_name, _startPosition, _fixedLength, _dataType, _isUnique, _isNullable, _minLength, _maxLength, _processes, _codes, _isPartOfPrimaryKey); return(addmlFieldDefinition); }
public void ShouldParseAddmlWithForeignKey() { AddmlDefinition addmlDefinition = _parser.GetAddmlDefinition(); List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions; addmlFlatFileDefinitions.Count.Should().Be(3); addmlFlatFileDefinitions[0].Name.Should().Be("Saksregister"); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0]; addmlRecordDefinition.Name.Should().Be("Saksregisterpost"); addmlRecordDefinition.Processes.Should().BeEmpty(); List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(18); addmlFieldDefinitions[5].Name.Should().Be("Arkiv_2_delfelt"); addmlFieldDefinitions[5].ForeignKey.Should().NotBeNull(); addmlFieldDefinitions[5].ForeignKey.Name.Should().Be("Arkivkode"); addmlFieldDefinitions[5].ForeignKey.AddmlRecordDefinition.Name.Should().Be("Arkivnoekkelregisterpost"); addmlFieldDefinitions[5].ForeignKey.AddmlRecordDefinition.AddmlFlatFileDefinition.Name.Should().Be("Arkivnoekkelregister"); }
public void ShouldParseNoark4ConvertedArkivuttrekkXml() { // Code to convert NOARKIH.XML to addml.xml //string noarkihString = TestUtil.ReadFromFileInTestDataDir("noark4\\NOARKIH.XML"); //string addmlString = NoarkihToAddmlTransformer.Transform(noarkihString); // File is converted from NOARKIH.XML format var testDataDirectory = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\TestData\\noark4"); var workingDirectory = new WorkingDirectory(testDataDirectory, testDataDirectory); AddmlInfo addml = AddmlUtil.ReadFromFile(workingDirectory.Content().WithFile("addml.xml").FullName); AddmlDefinitionParser parser = new AddmlDefinitionParser(addml, workingDirectory, new StatusEventHandler()); AddmlDefinition addmlDefinition = parser.GetAddmlDefinition(); List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions; addmlFlatFileDefinitions.Count.Should().Be(63); addmlFlatFileDefinitions[0].Name.Should().Be("ORDNPRINSTYPE"); addmlFlatFileDefinitions[0].FileName.Should().Be("OPRITYP.XML"); addmlFlatFileDefinitions[0].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[0].RecordSeparator.Should().BeNull(); addmlFlatFileDefinitions[0].AddmlRecordDefinitions.Count.Should().Be(1); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0]; addmlRecordDefinition.Name.Should().Be("ORDNPRINSTYPE"); List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(2); addmlFieldDefinitions[0].Name.Should().Be("OT.KODE"); addmlFieldDefinitions[0].Type.Should().Be(StringDataType.Default); addmlFieldDefinitions[1].Name.Should().Be("OT.BETEGN"); addmlFieldDefinitions[1].Type.Should().Be(StringDataType.Default); addmlRecordDefinition.PrimaryKey.Should().BeNull(); }
private Record GetCurrentRecord() { List <Field> fields = new List <Field>(); string currentLine = _lines.Current; string[] strings = currentLine.Split(new[] { _fieldDelimiter }, StringSplitOptions.None); string recordIdentifier = null; if (_recordIdentifierPosition.HasValue) { recordIdentifier = strings[_recordIdentifierPosition.Value]; } AddmlRecordDefinition recordDefinition = GetAddmlRecordDefinition(recordIdentifier); List <AddmlFieldDefinition> fieldDefinitions = recordDefinition.AddmlFieldDefinitions; if (fieldDefinitions.Count != strings.Length) { int maxFields = 40; string fielddata = currentLine.Length <= maxFields ? currentLine : currentLine.Substring(0, maxFields - 1); throw new ArkadeAddmlDelimiterException( $"{Resources.AddmlMessages.UnexpectedNumberOfFields}: {strings.Length}/{fieldDefinitions.Count}", recordDefinition.Name, fielddata); } for (int i = 0; i < strings.Length; i++) { string s = strings[i]; AddmlFieldDefinition fieldDefinition = fieldDefinitions[i]; fields.Add(new Field(fieldDefinition, s)); } return(new Record(recordDefinition, fields)); }
public Record(AddmlRecordDefinition definition, List <Field> fields) { Definition = definition; Fields = fields; }
public A_16_ControlForeignKeyCombinedKeyTest() { _attachmentRecordDef = new AddmlRecordDefinitionBuilder() .WithAddmlFlatFileDefinition(new AddmlFlatFileDefinitionBuilder().Build()) .Build(); _messageIdPrimaryKeyFieldDef = new AddmlFieldDefinitionBuilder() .WithRecordDefinition(_attachmentRecordDef) .WithName("MessageId") .IsPartOfPrimaryKey(true) .Build(); _attachmentNumberPrimaryKeyFieldDef = new AddmlFieldDefinitionBuilder() .WithRecordDefinition(_attachmentRecordDef) .WithName("AttachmentNumber") .IsPartOfPrimaryKey(true) .Build(); _documentRecordDef = new AddmlRecordDefinitionBuilder() .WithAddmlFlatFileDefinition(new AddmlFlatFileDefinitionBuilder().Build()) .Build(); _documentPrimaryKeyFieldDef = new AddmlFieldDefinitionBuilder() .WithRecordDefinition(_documentRecordDef) .WithName("DocumentId") .IsPartOfPrimaryKey(true) .Build(); AddmlForeignKey addmlForeignKeyAttachment = new AddmlForeignKey("fk1-attachment"); AddmlForeignKey addmlForeignKeyDocument = new AddmlForeignKey("fk2-document"); _recordWithBothCombinedAndSingleForeignKeyDef = new AddmlRecordDefinitionBuilder() .WithAddmlFlatFileDefinition(new AddmlFlatFileDefinitionBuilder().Build()) .WithRecordProcess(A_16_ControlForeignKey.Name) .WithForeignKey(addmlForeignKeyAttachment) .WithForeignKey(addmlForeignKeyDocument) .Build(); _primaryKeyFieldDef = new AddmlFieldDefinitionBuilder() .WithRecordDefinition(_recordWithBothCombinedAndSingleForeignKeyDef) .WithName("Id") .IsPartOfPrimaryKey(true) .Build(); _foreignKeyMessageIdFieldDef = new AddmlFieldDefinitionBuilder() .WithRecordDefinition(_recordWithBothCombinedAndSingleForeignKeyDef) .WithName("MessageId") .Build(); _foreignKeyAttachmentNumberFieldDef = new AddmlFieldDefinitionBuilder() .WithRecordDefinition(_recordWithBothCombinedAndSingleForeignKeyDef) .WithName("AttachmentNumber") .Build(); addmlForeignKeyAttachment.ForeignKeys.Add(_foreignKeyMessageIdFieldDef); addmlForeignKeyAttachment.ForeignKeys.Add(_foreignKeyAttachmentNumberFieldDef); addmlForeignKeyAttachment.ForeignKeyReferenceIndexes.Add(_messageIdPrimaryKeyFieldDef.GetIndex()); addmlForeignKeyAttachment.ForeignKeyReferenceIndexes.Add(_attachmentNumberPrimaryKeyFieldDef.GetIndex()); addmlForeignKeyAttachment.ForeignKeyReferenceFields.Add(_messageIdPrimaryKeyFieldDef); addmlForeignKeyAttachment.ForeignKeyReferenceFields.Add(_attachmentNumberPrimaryKeyFieldDef); _foreignKeyDocumentIdFieldDef = new AddmlFieldDefinitionBuilder() .WithRecordDefinition(_recordWithBothCombinedAndSingleForeignKeyDef) .WithName("DocumentId") .Build(); addmlForeignKeyDocument.ForeignKeys.Add(_foreignKeyDocumentIdFieldDef); addmlForeignKeyDocument.ForeignKeyReferenceIndexes.Add(_documentPrimaryKeyFieldDef.GetIndex()); addmlForeignKeyDocument.ForeignKeyReferenceFields.Add(_documentPrimaryKeyFieldDef); }
public void ShouldParseJegerreg98ArkivuttrekkXml() { var externalContentDirectory = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\..\\..\\TestData\\jegerreg-98-dos\\"); var workingDirectory = new WorkingDirectory(ArkadeConstants.GetArkadeWorkDirectory(), externalContentDirectory); AddmlInfo addml = AddmlUtil.ReadFromFile(workingDirectory.Content().WithFile("arkivuttrekk.xml").FullName); AddmlDefinition addmlDefinition = new AddmlDefinitionParser(addml, workingDirectory).GetAddmlDefinition(); List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions; addmlFlatFileDefinitions.Count.Should().Be(10); { addmlFlatFileDefinitions[0].Name.Should().Be("ffd_3"); addmlFlatFileDefinitions[0].FileName.Should().Be("jeger.dat"); addmlFlatFileDefinitions[0].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[0].RecordSeparator.Should().Be(Separator.CRLF); addmlFlatFileDefinitions[0].AddmlRecordDefinitions.Count.Should().Be(1); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0]; List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(36); addmlFieldDefinitions[0].Name.Should().Be("fodselsnummer"); addmlRecordDefinition.PrimaryKey.Should() .Equal(new List <AddmlFieldDefinition>() { addmlFieldDefinitions[0] }); } { addmlFlatFileDefinitions[1].Name.Should().Be("ffd_4"); addmlFlatFileDefinitions[1].FileName.Should().Be("ut_jeger.dat"); addmlFlatFileDefinitions[1].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[1].RecordSeparator.Should().Be(Separator.CRLF); addmlFlatFileDefinitions[1].AddmlRecordDefinitions.Count.Should().Be(1); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[1].AddmlRecordDefinitions[0]; List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(37); addmlFieldDefinitions[0].Name.Should().Be("plassnummer"); addmlFieldDefinitions[0].Type.Should().Be(IntegerDataType.Default); addmlFieldDefinitions[1].Name.Should().Be("landkort"); addmlFieldDefinitions[8].Name.Should().Be("personnummer"); addmlRecordDefinition.PrimaryKey.Should() .Equal(new List <AddmlFieldDefinition>() { addmlFieldDefinitions[0], addmlFieldDefinitions[1], addmlFieldDefinitions[8] }); } { addmlFlatFileDefinitions[2].Name.Should().Be("ffd_5"); addmlFlatFileDefinitions[2].FileName.Should().Be("ikkejeg.dat"); addmlFlatFileDefinitions[2].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[2].RecordSeparator.Should().Be(Separator.CRLF); addmlFlatFileDefinitions[2].AddmlRecordDefinitions.Count.Should().Be(1); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[2].AddmlRecordDefinitions[0]; List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(44); addmlFieldDefinitions[0].Name.Should().Be("fodselsnummer"); addmlFieldDefinitions[0].StartPosition.Should().Be(1); addmlFieldDefinitions[0].FixedLength.Should().Be(11); addmlFieldDefinitions[0].IsUnique.Should().BeTrue(); addmlFieldDefinitions[0].IsNullable.Should().BeFalse(); addmlFieldDefinitions[0].MaxLength.Should().NotHaveValue(); addmlFieldDefinitions[0].MinLength.Should().NotHaveValue(); addmlFieldDefinitions[0].Type.Should().Be(StringDataType.Default); addmlFieldDefinitions[0].ForeignKey.Should().Be( addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0].AddmlFieldDefinitions[0] ); addmlFieldDefinitions[1].Name.Should().Be("etternavn"); addmlFieldDefinitions[1].StartPosition.Should().Be(12); addmlFieldDefinitions[1].FixedLength.Should().Be(25); addmlFieldDefinitions[1].IsUnique.Should().BeFalse(); addmlFieldDefinitions[1].IsNullable.Should().BeTrue(); addmlFieldDefinitions[1].MaxLength.Should().NotHaveValue(); addmlFieldDefinitions[1].MinLength.Should().NotHaveValue(); addmlFieldDefinitions[1].Type.Should().Be(StringDataType.Default); addmlFieldDefinitions[1].ForeignKey.Should().BeNull(); addmlRecordDefinition.PrimaryKey.Should() .Equal(new List <AddmlFieldDefinition>() { addmlFieldDefinitions[0] }); TestDateDataType(addmlDefinition); TestBooleanDataType(addmlDefinition); TestFloatDataType(addmlDefinition); } }
public AddmlFieldDefinitionBuilder WithRecordDefinition(AddmlRecordDefinition recordDefinition) { _addmlRecordDefinition = recordDefinition; return(this); }
public void ShouldParseJegerreg98ArkivuttrekkXml() { var externalContentDirectory = new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestData\\jegerreg-98-dos"); var workingDirectory = new WorkingDirectory(ArkadeProcessingArea.WorkDirectory, externalContentDirectory); AddmlInfo addml = AddmlUtil.ReadFromFile(workingDirectory.Content().WithFile("arkivuttrekk.xml").FullName); AddmlDefinition addmlDefinition = new AddmlDefinitionParser(addml, workingDirectory, new StatusEventHandler()).GetAddmlDefinition(); List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions; addmlFlatFileDefinitions.Count.Should().Be(10); { addmlFlatFileDefinitions[0].Name.Should().Be("ffd_3"); addmlFlatFileDefinitions[0].FileName.Should().Be("jeger.dat"); addmlFlatFileDefinitions[0].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[0].RecordSeparator.Should().Be(Separator.CRLF); addmlFlatFileDefinitions[0].AddmlRecordDefinitions.Count.Should().Be(1); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0]; List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(36); addmlFieldDefinitions[0].Name.Should().Be("fodselsnummer"); addmlRecordDefinition.PrimaryKey.Should() .Equal(new List <AddmlFieldDefinition>() { addmlFieldDefinitions[0] }); } { addmlFlatFileDefinitions[1].Name.Should().Be("ffd_4"); addmlFlatFileDefinitions[1].FileName.Should().Be("ut_jeger.dat"); addmlFlatFileDefinitions[1].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[1].RecordSeparator.Should().Be(Separator.CRLF); addmlFlatFileDefinitions[1].AddmlRecordDefinitions.Count.Should().Be(1); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[1].AddmlRecordDefinitions[0]; List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(37); addmlFieldDefinitions[0].Name.Should().Be("plassnummer"); addmlFieldDefinitions[0].Type.Should().Be(IntegerDataType.Default); addmlFieldDefinitions[1].Name.Should().Be("landkort"); addmlFieldDefinitions[8].Name.Should().Be("personnummer"); addmlRecordDefinition.PrimaryKey.Should() .Equal(new List <AddmlFieldDefinition>() { addmlFieldDefinitions[0], addmlFieldDefinitions[1], addmlFieldDefinitions[8] }); } { addmlFlatFileDefinitions[2].Name.Should().Be("ffd_5"); addmlFlatFileDefinitions[2].FileName.Should().Be("ikkejeg.dat"); addmlFlatFileDefinitions[2].Encoding.Should().Be(Encodings.ISO_8859_1); addmlFlatFileDefinitions[2].RecordSeparator.Should().Be(Separator.CRLF); addmlFlatFileDefinitions[2].AddmlRecordDefinitions.Count.Should().Be(1); AddmlRecordDefinition addmlRecordDefinition = addmlFlatFileDefinitions[2].AddmlRecordDefinitions[0]; List <AddmlFieldDefinition> addmlFieldDefinitions = addmlRecordDefinition.AddmlFieldDefinitions; addmlFieldDefinitions.Count.Should().Be(44); addmlFieldDefinitions[0].Name.Should().Be("fodselsnummer"); addmlFieldDefinitions[0].StartPosition.Should().Be(1); addmlFieldDefinitions[0].FixedLength.Should().Be(11); addmlFieldDefinitions[0].IsUnique.Should().BeTrue(); addmlFieldDefinitions[0].IsNullable.Should().BeFalse(); addmlFieldDefinitions[0].MaxLength.Should().NotHaveValue(); addmlFieldDefinitions[0].MinLength.Should().NotHaveValue(); addmlFieldDefinitions[0].Type.Should().Be(StringDataType.Default); /* addmlFieldDefinitions[0].ForeignKeys.First().Should().Be( * addmlFlatFileDefinitions[0].AddmlRecordDefinitions[0].AddmlFieldDefinitions[0] * );*/ addmlFieldDefinitions[1].Name.Should().Be("etternavn"); addmlFieldDefinitions[1].StartPosition.Should().Be(12); addmlFieldDefinitions[1].FixedLength.Should().Be(25); addmlFieldDefinitions[1].IsUnique.Should().BeFalse(); addmlFieldDefinitions[1].IsNullable.Should().BeTrue(); addmlFieldDefinitions[1].MaxLength.Should().NotHaveValue(); addmlFieldDefinitions[1].MinLength.Should().NotHaveValue(); addmlFieldDefinitions[1].Type.Should().Be(StringDataType.Default); // addmlFieldDefinitions[1].ForeignKeys.Should().BeEmpty(); addmlRecordDefinition.PrimaryKey.Should() .Equal(new List <AddmlFieldDefinition>() { addmlFieldDefinitions[0] }); TestDateDataType(addmlDefinition); TestBooleanDataType(addmlDefinition); TestFloatDataType(addmlDefinition); } }
public Record(AddmlRecordDefinition definition, params Field[] fields) { Definition = definition; Fields = fields.ToList(); }