public void SaveAsXml(IModel model)
        {
            string methodName = new StackTrace().GetFrame(1).GetMethod().Name.Replace("_", "-");
            string typename   = GetType().Name;

            ModelXmlFormatter xmlFormatter = new ModelXmlFormatter(model);
            string            xml          = xmlFormatter.Render();

            string directory = Path.Combine(".", typename);

            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            string fileName = directory + @"\" + methodName + ".xml";

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }

            Assert.That(File.Exists(fileName), Is.False);
            using (StreamWriter writer = new StreamWriter(fileName))
            {
                writer.Write(xml);
            }
        }
        public void HierarchySystemTests()
        {
            IReader reader = new FileReader(@".\Resources\DataDictionary\datadict.rpt");

            IModelParser[] parsers = new IModelParser[] {
                new AccessInformationParser(),
                new DescriptionParser(),
                new DetailsParser(),
                new ModifiedParser(),
                new ModuleParser(),
                new PageHeaderParser(),
                new RecordLengthParser(),
                new RecordParser(),
                new TechnicalInformationParser(),
                CobolParser.CobolHierarchy(),
                new IgnoreParser(),
            };
            IDataParser dataParser = new DataParser(reader, parsers);

            dataParser.Corrections     = corrections;
            dataParser.OnMissingParser = (line) =>
            {
                throw new InvalidOperationException("No Parser for: " + reader);
            };
            dataParser.Parse();

            string typename  = GetType().Name;
            string directory = Path.Combine(".", typename);

            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            foreach (IModel model in dataParser.Results)
            {
                HierarchyModel hiearchyModel = model as HierarchyModel;
                if (hiearchyModel != null)
                {
                    ClassModel classModel = hiearchyModel.Model as ClassModel;
                    if (classModel != null)
                    {
                        ModelXmlFormatter formatter  = new ModelXmlFormatter(model);
                        string            xml        = formatter.Render();
                        string            objectName = classModel.Data;

                        string fileName = directory + @"\" + objectName + ".xml";
                        if (File.Exists(fileName))
                        {
                            File.Delete(fileName);
                        }

                        Assert.That(File.Exists(fileName), Is.False);
                        using (StreamWriter writer = new StreamWriter(fileName))
                        {
                            writer.Write(xml);
                        }
                    }
                }
            }
        }