Lucene.Net.Index.TestBackwardsCompatibility.TestCommandLineArgs C# (CSharp) Method

TestCommandLineArgs() private method

private TestCommandLineArgs ( ) : void
return void
        public virtual void TestCommandLineArgs()
        {

            foreach (string name in OldIndexDirs.Keys)
            {
                DirectoryInfo dir = CreateTempDir(name);
                using (Stream dataFile = this.GetType().Assembly.GetManifestResourceStream(CURRENT_RESOURCE_DIRECTORY + "index." + name + ".zip"))
                {
                    TestUtil.Unzip(dataFile, dir);
                }

                string path = dir.FullName;

                IList<string> args = new List<string>();
                if (Random().NextBoolean())
                {
                    args.Add("-verbose");
                }
                if (Random().NextBoolean())
                {
                    args.Add("-delete-prior-commits");
                }
                if (Random().NextBoolean())
                {
                    // TODO: need to better randomize this, but ...
                    //  - LuceneTestCase.FS_DIRECTORIES is private
                    //  - newFSDirectory returns BaseDirectoryWrapper
                    //  - BaseDirectoryWrapper doesn't expose delegate
                    Type dirImpl = Random().NextBoolean() ? typeof(SimpleFSDirectory) : typeof(NIOFSDirectory);

                    args.Add("-dir-impl");
                    args.Add(dirImpl.Name);
                }
                args.Add(path);

                IndexUpgrader upgrader = null;
                try
                {
                    upgrader = IndexUpgrader.ParseArgs(args.ToArray());
                }
                catch (Exception e)
                {
                    throw new Exception("unable to parse args: " + args, e);
                }
                upgrader.Upgrade();

                Directory upgradedDir = NewFSDirectory(dir);
                try
                {
                    CheckAllSegmentsUpgraded(upgradedDir);
                }
                finally
                {
                    upgradedDir.Dispose();
                }
            }
        }