Пример #1
0
 private HashSet <string> GetAllFilesInAddmlDefinition(AddmlDefinition addmlDefinition)
 {
     return(new HashSet <string>(
                addmlDefinition.AddmlFlatFileDefinitions
                .Select(d => d.FileName)
                .AsEnumerable()));
 }
Пример #2
0
        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");
        }
Пример #3
0
 public void Init(AddmlDefinition addmlDefinition)
 {
     _processManager      = new ProcessManager(addmlDefinition);
     _fileProcessRunner   = new FileProcessRunner(_processManager);
     _recordProcessRunner = new RecordProcessRunner(_processManager);
     _fieldProcessRunner  = new FieldProcessRunner(_processManager);
 }
Пример #4
0
        public void ShouldParseAddmlWithNumberOfRecordsProperty()
        {
            AddmlDefinition addmlDefinition = _parser.GetAddmlDefinition();
            List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions;

            addmlFlatFileDefinitions[1].Name.Should().Be("Dokumentregister");
            addmlFlatFileDefinitions[1].NumberOfRecords.Should().Be(195);
        }
Пример #5
0
        public void ShouldParseAddmlWithMultipleRecordDefinitions()
        {
            AddmlDefinition addmlDefinition = _parser.GetAddmlDefinition();
            List <AddmlFlatFileDefinition> addmlFlatFileDefinitions = addmlDefinition.AddmlFlatFileDefinitions;

            addmlFlatFileDefinitions[1].Name.Should().Be("Dokumentregister");
            addmlFlatFileDefinitions[1].AddmlRecordDefinitions.Count.Should().Be(2);
            addmlFlatFileDefinitions[1].AddmlRecordDefinitions[0].Name.Should().Be("Eksterne_dokumenter");
            addmlFlatFileDefinitions[1].AddmlRecordDefinitions[1].Name.Should().Be("Interne_dokumenter");
        }
Пример #6
0
        private void TestBooleanDataType(AddmlDefinition addmlDefinition)
        {
            AddmlFlatFileDefinition addmlFlatFileDefinition = addmlDefinition.AddmlFlatFileDefinitions[3];

            addmlFlatFileDefinition.Name.Should().Be("ffd_6");
            addmlFlatFileDefinition.FileName.Should().Be("jegerK.dat");
            AddmlFieldDefinition addmlFieldDefinition = addmlFlatFileDefinition.AddmlRecordDefinitions[0].AddmlFieldDefinitions[10];

            addmlFieldDefinition.Name.Should().Be("avgift");
            addmlFieldDefinition.Type.Should().Be(new BooleanDataType("J/N"));
        }
Пример #7
0
        public void ShouldAddControlForeignKeyToFlatFileContainingReferencedPrimaryKey()
        {
            AddmlFlatFileDefinition personFile          = new AddmlFlatFileDefinitionBuilder().WithName("personFile").Build();
            AddmlRecordDefinition   personFileRecordDef = new AddmlRecordDefinitionBuilder().WithAddmlFlatFileDefinition(personFile).Build();
            AddmlFieldDefinition    personPrimaryKey    = new AddmlFieldDefinitionBuilder().WithRecordDefinition(personFileRecordDef)
                                                          .WithName("personPrimaryKey")
                                                          .IsPartOfPrimaryKey(true).Build();


            AddmlFlatFileDefinition addressFile          = new AddmlFlatFileDefinitionBuilder().WithName("addressFile").Build();
            AddmlRecordDefinition   addressFileRecordDef = new AddmlRecordDefinitionBuilder().WithAddmlFlatFileDefinition(addressFile).Build();

            new AddmlFieldDefinitionBuilder().WithRecordDefinition(addressFileRecordDef).WithName("addressPrimaryKey").IsPartOfPrimaryKey(true).Build();
            AddmlFieldDefinition addressForeignKey = new AddmlFieldDefinitionBuilder().WithRecordDefinition(addressFileRecordDef)
                                                     .WithName("addressForeignKey")
                                                     .WithForeignKey(personPrimaryKey)
                                                     .WithProcess(ControlForeignKey.Name)
                                                     .Build();

            AddmlFlatFileDefinition unrelatedFile           = new AddmlFlatFileDefinitionBuilder().WithName("unrelatedFile").Build();
            AddmlRecordDefinition   unrelatedFileRecordDef  = new AddmlRecordDefinitionBuilder().WithAddmlFlatFileDefinition(unrelatedFile).Build();
            AddmlFieldDefinition    unrelatedFilePrimaryKey = new AddmlFieldDefinitionBuilder().WithRecordDefinition(unrelatedFileRecordDef)
                                                              .WithName("unrelatedFilePrimaryKey")
                                                              .IsPartOfPrimaryKey(true).Build();


            AddmlDefinition addmlDefinition = new AddmlDefinition(new List <AddmlFlatFileDefinition>()
            {
                personFile, addressFile, unrelatedFile
            });

            Dictionary <IAddmlIndex, List <string> > fieldProcesses = addmlDefinition.GetFieldProcessesGroupedByField();

            _testOutputHelper.WriteLine("field processes:");
            foreach (var item in fieldProcesses)
            {
                _testOutputHelper.WriteLine(item.Key.ToString());
                if (item.Value == null || !item.Value.Any())
                {
                    _testOutputHelper.WriteLine("* [empty]");
                }
                else
                {
                    foreach (var process in item.Value)
                    {
                        _testOutputHelper.WriteLine($"* {process}");
                    }
                }
            }

            fieldProcesses[personPrimaryKey.GetIndex()].Contains(ControlForeignKey.Name).Should().BeTrue();
            fieldProcesses[addressForeignKey.GetIndex()].Contains(ControlForeignKey.Name).Should().BeTrue();
            fieldProcesses[unrelatedFilePrimaryKey.GetIndex()].Contains(ControlForeignKey.Name).Should().BeFalse();
        }
Пример #8
0
        private void TestDateDataType(AddmlDefinition addmlDefinition)
        {
            AddmlFlatFileDefinition addmlFlatFileDefinition = addmlDefinition.AddmlFlatFileDefinitions[2];

            addmlFlatFileDefinition.Name.Should().Be("ffd_5");
            addmlFlatFileDefinition.FileName.Should().Be("ikkejeg.dat");
            AddmlFieldDefinition addmlFieldDefinition = addmlFlatFileDefinition.AddmlRecordDefinitions[0].AddmlFieldDefinitions[35];

            addmlFieldDefinition.Name.Should().Be("fradato");
            addmlFieldDefinition.Type.Should().Be(new DateDataType("ddmmyyyy"));
        }
Пример #9
0
        private void TestFloatDataType(AddmlDefinition addmlDefinition)
        {
            AddmlFlatFileDefinition addmlFlatFileDefinition = addmlDefinition.AddmlFlatFileDefinitions[5];

            addmlFlatFileDefinition.Name.Should().Be("ffd_8");
            addmlFlatFileDefinition.FileName.Should().Be("betalt.dat");
            AddmlFieldDefinition addmlFieldDefinition = addmlFlatFileDefinition.AddmlRecordDefinitions[0].AddmlFieldDefinitions[8];

            addmlFieldDefinition.Name.Should().Be("beløp");
            addmlFieldDefinition.Type.Should().Be(new FloatDataType());
        }
Пример #10
0
        public void ShouldAddCollectPrimaryKeyToRecordDefinitionsContainingReferencedPrimaryKey()
        {
            AddmlFlatFileDefinition personFile          = new AddmlFlatFileDefinitionBuilder().WithName("personFile").Build();
            AddmlRecordDefinition   personFileRecordDef = new AddmlRecordDefinitionBuilder().WithAddmlFlatFileDefinition(personFile).Build();
            AddmlFieldDefinition    personPrimaryKey    = new AddmlFieldDefinitionBuilder().WithRecordDefinition(personFileRecordDef)
                                                          .WithName("personPrimaryKey")
                                                          .IsPartOfPrimaryKey(true).Build();


            AddmlFlatFileDefinition addressFile = new AddmlFlatFileDefinitionBuilder().WithName("addressFile").Build();
            var addmlForeignKey = new AddmlForeignKey("testkey");

            AddmlRecordDefinition addressFileRecordDef = new AddmlRecordDefinitionBuilder()
                                                         .WithAddmlFlatFileDefinition(addressFile)
                                                         .WithRecordProcess(A_16_ControlForeignKey.Name)
                                                         .WithForeignKey(addmlForeignKey)
                                                         .Build();

            new AddmlFieldDefinitionBuilder().WithRecordDefinition(addressFileRecordDef).WithName("addressPrimaryKey").IsPartOfPrimaryKey(true).Build();
            AddmlFieldDefinition addressForeignKey = new AddmlFieldDefinitionBuilder().WithRecordDefinition(addressFileRecordDef)
                                                     .WithName("addressForeignKey")
//                .WithForeignKey(personPrimaryKey)
                                                     .Build();

            addmlForeignKey.ForeignKeys.Add(addressForeignKey);
            addmlForeignKey.ForeignKeyReferenceIndexes.Add(personPrimaryKey.GetIndex());
            addmlForeignKey.ForeignKeyReferenceFields.Add(personPrimaryKey);

            AddmlFlatFileDefinition unrelatedFile           = new AddmlFlatFileDefinitionBuilder().WithName("unrelatedFile").Build();
            AddmlRecordDefinition   unrelatedFileRecordDef  = new AddmlRecordDefinitionBuilder().WithAddmlFlatFileDefinition(unrelatedFile).Build();
            AddmlFieldDefinition    unrelatedFilePrimaryKey = new AddmlFieldDefinitionBuilder().WithRecordDefinition(unrelatedFileRecordDef)
                                                              .WithName("unrelatedFilePrimaryKey")
                                                              .IsPartOfPrimaryKey(true).Build();


            AddmlDefinition addmlDefinition = new AddmlDefinition(
                new List <AddmlFlatFileDefinition>()
            {
                personFile, addressFile, unrelatedFile
            },
                new List <AddmlFlatFileDefinition>()
            {
                personFile, addressFile
            });

            Dictionary <IAddmlIndex, List <string> > recordProcesses = addmlDefinition.GetRecordProcessesGroupedByRecord();

            DebugPrintListOfProcesses(recordProcesses);

            recordProcesses[personFileRecordDef.GetIndex()].Contains(AI_01_CollectPrimaryKey.Name).Should().BeTrue();
            recordProcesses[addressFileRecordDef.GetIndex()].Contains(A_16_ControlForeignKey.Name).Should().BeTrue();
            recordProcesses[unrelatedFileRecordDef.GetIndex()].Should().BeEmpty();
        }
Пример #11
0
        public void ShouldNotAddCollectPrimaryKeyProcessWhenControlForeignKeyIsNotDefinedInAnyRecordDefinition()
        {
            AddmlFlatFileDefinition personFile          = new AddmlFlatFileDefinitionBuilder().WithName("personFile").Build();
            AddmlRecordDefinition   personFileRecordDef = new AddmlRecordDefinitionBuilder().WithAddmlFlatFileDefinition(personFile).Build();
            AddmlFieldDefinition    personPrimaryKey    = new AddmlFieldDefinitionBuilder().WithRecordDefinition(personFileRecordDef)
                                                          .WithName("personPrimaryKey")
                                                          .IsPartOfPrimaryKey(true).Build();


            AddmlFlatFileDefinition addressFile = new AddmlFlatFileDefinitionBuilder().WithName("addressFile").Build();
            var addmlForeignKey = new AddmlForeignKey("testkey");
            AddmlRecordDefinition addressFileRecordDef = new AddmlRecordDefinitionBuilder()
                                                         .WithAddmlFlatFileDefinition(addressFile)
                                                         .WithForeignKey(addmlForeignKey)
                                                         .Build();

            new AddmlFieldDefinitionBuilder().WithRecordDefinition(addressFileRecordDef).WithName("addressPrimaryKey").IsPartOfPrimaryKey(true).Build();
            var addressField = new AddmlFieldDefinitionBuilder().WithRecordDefinition(addressFileRecordDef)
                               .WithName("addressForeignKey")
                               .Build();

            addmlForeignKey.ForeignKeys.Add(addressField);
            addmlForeignKey.ForeignKeyReferenceIndexes.Add(personPrimaryKey.GetIndex());
            addmlForeignKey.ForeignKeyReferenceFields.Add(personPrimaryKey);


            AddmlDefinition addmlDefinition = new AddmlDefinition(
                new List <AddmlFlatFileDefinition>()
            {
                personFile, addressFile
            },
                new List <AddmlFlatFileDefinition>()
            {
                personFile, addressFile
            });

            Dictionary <IAddmlIndex, List <string> > recordProcesses = addmlDefinition.GetRecordProcessesGroupedByRecord();

            DebugPrintListOfProcesses(recordProcesses);

            recordProcesses[personFileRecordDef.GetIndex()].Should().BeEmpty();
            recordProcesses[addressFileRecordDef.GetIndex()].Should().BeEmpty();
        }
Пример #12
0
        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]
            }
                );
        }
Пример #13
0
        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");
        }
Пример #14
0
        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();
        }
Пример #15
0
 public AH_02_ControlExtraOrMissingFiles(AddmlDefinition addmlDefinition, Archive archive)
 {
     _addmlDefinition = addmlDefinition;
     _archive         = archive;
 }
Пример #16
0
 public HardcodedProcessRunner(AddmlDefinition addmlDefinition, Archive archive)
 {
     _hardcodedProcesses = new List <IAddmlHardcodedProcess> {
         new ControlExtraOrMissingFiles(addmlDefinition, archive)
     };
 }
Пример #17
0
 public ProcessManager(AddmlDefinition addmlDefinition)
 {
     _addmlDefinition = addmlDefinition;
     _processesByName = InstantiateProcesses();
 }
Пример #18
0
 private List <string> GetAllFilesInAddmlDefinition(AddmlDefinition addmlDefinition)
 {
     return(addmlDefinition.AddmlFlatFileDefinitions
            .Select(d => d.FileName)
            .ToList());
 }
Пример #19
0
        public TestSuite RunTestsOnArchive(TestSession testSession)
        {
            AddmlDefinition addmlDefinition = testSession.AddmlDefinition;

            _addmlProcessRunner.Init(addmlDefinition);

            List <FlatFile> flatFiles = addmlDefinition.GetFlatFiles();

            foreach (FlatFile file in flatFiles)
            {
                string testName = string.Format(Messages.RunningAddmlProcessesOnFile, file.GetName());

                var recordIdx = 1;

                _statusEventHandler.RaiseEventFileProcessingStarted(
                    new FileProcessingStatusEventArgs(testName, file.GetName())
                    );

                _addmlProcessRunner.RunProcesses(file);

                IRecordEnumerator recordEnumerator =
                    _flatFileReaderFactory.GetRecordEnumerator(testSession.Archive, file);

                int numberOfRecordsWithFieldDelimiterError = 0;

                while (recordEnumerator != null && recordEnumerator.MoveNext())
                {
                    try
                    {
                        _statusEventHandler.RaiseEventRecordProcessingStart();
                        Record record = recordEnumerator.Current;
                        _addmlProcessRunner.RunProcesses(file, record);

                        foreach (Field field in record.Fields)
                        {
                            _addmlProcessRunner.RunProcesses(file, field);
                        }
                    }
                    catch (ArkadeAddmlDelimiterException exception)
                    {
                        numberOfRecordsWithFieldDelimiterError++;

                        if (numberOfRecordsWithFieldDelimiterError <= MaxNumberOfSingleReportedFieldDelimiterErrors)
                        {
                            _testResultsFailedRecordsList.Add(new TestResult(ResultType.Error,
                                                                             new AddmlLocation(file.GetName(), exception.RecordName, ""),
                                                                             exception.Message + " Felttekst: " + exception.RecordData)
                                                              );

                            _statusEventHandler.RaiseEventOperationMessage(
                                $"{AddmlMessages.RecordLengthErrorTestName} i fil {file.GetName()}, post nummer {recordIdx}, feil nummer {numberOfRecordsWithFieldDelimiterError}",
                                exception.Message + " Felttekst: " + exception.RecordData, OperationMessageStatus.Error
                                );
                        }
                        else
                        {
                            _statusEventHandler.RaiseEventOperationMessage(
                                $"ADDML-poster med feil antall felt i filen {file.GetName()}",
                                $"Totalt antall: {numberOfRecordsWithFieldDelimiterError}",
                                OperationMessageStatus.Error
                                );
                        }
                    }
                    finally
                    {
                        _statusEventHandler.RaiseEventRecordProcessingStopped();
                    }

                    recordIdx++;
                }

                if (numberOfRecordsWithFieldDelimiterError > 0)
                {
                    _testResultsFailedRecordsList.Add(new TestResult(ResultType.ErrorGroup, new Location(file.GetName()),
                                                                     $"Filens totale antall poster med feil antall felt: {numberOfRecordsWithFieldDelimiterError}",
                                                                     numberOfRecordsWithFieldDelimiterError)
                                                      );
                }

                _addmlProcessRunner.EndOfFile(file);

                _statusEventHandler.RaiseEventFileProcessingFinished(
                    new FileProcessingStatusEventArgs(testName, file.GetName(), true)
                    );
            }

            TestSuite testSuite = _addmlProcessRunner.GetTestSuite();

            testSuite.AddTestRun(new AH_02_ControlExtraOrMissingFiles(addmlDefinition, testSession.Archive).GetTestRun());
            testSuite.AddTestRun(new AH_03_ControlRecordAndFieldDelimiters(_testResultsFailedRecordsList).GetTestRun());

            return(testSuite);
        }