public AddmlDefinition GetAddmlDefinition() { List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = GetAddmlFlatFileDefinitions(); List <FileInfo> fileInfos = _workingDirectory.Content().DirectoryInfo().GetFiles().ToList(); List <AddmlFlatFileDefinition> addmlFlatFilesExistingInDirectory = GetFilesExistingInDirectory(addmlFlatFileDefinitions, fileInfos); GetFilesExistingInDirectory(addmlFlatFileDefinitions, fileInfos); return(new AddmlDefinition(addmlFlatFileDefinitions, addmlFlatFilesExistingInDirectory)); }
private List <AddmlFlatFileDefinition> GetAddmlFlatFileDefinitions() { List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = new List <AddmlFlatFileDefinition>(); flatFileDefinition[] flatFileDefinitions = GetFlatFileDefinitions(); foreach (flatFileDefinition flatFileDefinition in flatFileDefinitions) { string name = flatFileDefinition.name; string recordSeparator = GetRecordSeparator(flatFileDefinition.typeReference); string fieldSeparator = GetFieldSeparator(flatFileDefinition.typeReference); string fileName = GetFileName(flatFileDefinition.name); FileInfo fileInfo = _workingDirectory.Content().WithFile(fileName); string charset = GetCharset(flatFileDefinition.typeReference); string recordDefinitionFieldIdentifier = flatFileDefinition.recordDefinitionFieldIdentifier; int? numberOfRecords = GetNumberOfRecords(flatFileDefinition.name); Checksum checksum = GetChecksum(flatFileDefinition.name); AddmlFlatFileFormat format = GetFlatFileFormat(flatFileDefinition.typeReference); List <string> flatFileProcesses = GetFlatFileProcessNames(flatFileDefinition.name); AddmlFlatFileDefinition addmlFlatFileDefinition = new AddmlFlatFileDefinition(name, fileName, fileInfo, recordSeparator, fieldSeparator, charset, recordDefinitionFieldIdentifier, numberOfRecords, checksum, format, flatFileProcesses); AddAddmlFieldDefinitions(addmlFlatFileDefinition, flatFileDefinition); addmlFlatFileDefinitions.Add(addmlFlatFileDefinition); } SetForeignKeyReferences(addmlFlatFileDefinitions); return(addmlFlatFileDefinitions); }
public void ShouldNotReportExtraFilesWhenDefinedInDokversXml() { WorkingDirectory workingDirectory = new WorkingDirectory(null, new DirectoryInfo(TestUtil.TestDataDirectory + "noark4-extrafiles")); AddmlFlatFileDefinition flatFileDefinition2 = new AddmlFlatFileDefinitionBuilder() .WithFileInfo(new FileInfo( workingDirectory.Content().DirectoryInfo().FullName + Path.DirectorySeparatorChar + "DOKVERS.XML")) .WithFileName("DATA\\DOKVERS.XML") .Build(); AddmlDefinition addmlDefinition = new AddmlDefinitionBuilder() .WithAddmlFlatFileDefinitions(new List <AddmlFlatFileDefinition> { flatFileDefinition2 }) .Build(); Archive archive = new Archive(ArchiveType.Noark4, Uuid.Random(), workingDirectory); ControlExtraOrMissingFiles test = new ControlExtraOrMissingFiles(addmlDefinition, archive); TestRun testRun = test.GetTestRun(); testRun.IsSuccess().Should().BeTrue(); }
public void ShouldReportWhenFileInArchiveIsNotReferencedInAddml() { WorkingDirectory workingDirectory = new WorkingDirectory(null, new DirectoryInfo(TestUtil.TestDataDirectory + "noark3")); AddmlFlatFileDefinition flatFileDefinition1 = new AddmlFlatFileDefinitionBuilder() .WithFileInfo(new FileInfo(workingDirectory.Content().DirectoryInfo().FullName + Path.DirectorySeparatorChar + "nosuchfile.txt")) .WithFileName("nosuchfile.txt") .Build(); AddmlFlatFileDefinition flatFileDefinition2 = new AddmlFlatFileDefinitionBuilder() .WithFileInfo(new FileInfo(workingDirectory.Content().DirectoryInfo().FullName + Path.DirectorySeparatorChar + "ARKIV.DAT")) .WithFileName("ARKIV.DAT") .Build(); AddmlDefinition addmlDefinition = new AddmlDefinitionBuilder() .WithAddmlFlatFileDefinitions( new List <AddmlFlatFileDefinition> { flatFileDefinition1, flatFileDefinition2 }, new List <AddmlFlatFileDefinition> { flatFileDefinition1, }) .Build(); Archive archive = new Archive(ArchiveType.Fagsystem, Uuid.Random(), workingDirectory); AH_02_ControlExtraOrMissingFiles test = new AH_02_ControlExtraOrMissingFiles(addmlDefinition, archive); TestRun testRun = test.GetTestRun(); testRun.IsSuccess().Should().BeFalse(); testRun.Results.Count.Should().Be(4); string errorMessage = "Finnes i arkiv, men ikke i ADDML"; testRun.Results[0].Location.ToString().Should().Contain("DOK.DAT"); testRun.Results[0].Message.Should().Be(errorMessage); testRun.Results[1].Location.ToString().Should().Contain("noark_3_arkivuttrekk_med_prosesser.xml"); testRun.Results[1].Message.Should().Be(errorMessage); testRun.Results[2].Location.ToString().Should().Contain("SAK.DAT"); testRun.Results[2].Message.Should().Be(errorMessage); testRun.Results[3].Location.ToString().Should().Contain("nosuchfile.txt"); testRun.Results[3].Message.Should().Be("Finnes i ADDML, men ikke i arkiv"); }
private FlatFile GetDokDat() { var workingDirectory = new WorkingDirectory(ArkadeProcessingArea.WorkDirectory, new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\TestData\\noark3")); AddmlInfo addml = AddmlUtil.ReadFromFile(workingDirectory.Content().WithFile("noark_3_arkivuttrekk_med_prosesser.xml").FullName); AddmlDefinition addmlDefinition = new AddmlDefinitionParser(addml, workingDirectory, new StatusEventHandler()).GetAddmlDefinition(); FlatFile flatFile = addmlDefinition.GetFlatFiles().Single(file => file.Definition.FileName == "DOK.DAT"); return(flatFile); }
private FlatFile GetDokDat() { var workingDirectory = new WorkingDirectory(ArkadeConstants.GetArkadeWorkDirectory(), new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\\..\\..\\TestData\\noark3\\")); AddmlInfo addml = AddmlUtil.ReadFromFile(workingDirectory.Content().WithFile("noark_3_arkivuttrekk_med_prosesser.xml").FullName); AddmlDefinition addmlDefinition = new AddmlDefinitionParser(addml, workingDirectory, new StatusEventHandler()).GetAddmlDefinition(); FlatFile flatFile = addmlDefinition.GetFlatFiles().Single(file => file.Definition.FileName == "DOK.DAT"); return(flatFile); }
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(); }
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 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); } }