Пример #1
0
        public void TestOptionSetFromString()
        {
            string[] lines = new[]
            {
                "-x",
                "# extract to mp3",
                "--audio-format mp3",
                "",
                "# Use this proxy",
                "--proxy 127.0.0.1:3128",
                "-o ~/Movies/%(title)s.%(ext)s",
                "--ffmpeg-location \"My Programs/ffmpeg.exe\""
            };
            OptionSet opts = OptionSet.FromString(lines);

            Assert.IsTrue(opts.ExtractAudio);
            Assert.AreEqual(AudioConversionFormat.Mp3, opts.AudioFormat);
            Assert.AreEqual("127.0.0.1:3128", opts.Proxy);
            Assert.AreEqual("~/Movies/%(title)s.%(ext)s", opts.Output);
            Assert.AreEqual("My Programs/ffmpeg.exe", opts.FfmpegLocation);
        }
Пример #2
0
        public void TestCustomOptionSetFromString()
        {
            void AssertCustomOption(IOption option)
            {
                Assert.IsTrue(option.OptionStrings.Any());
                Assert.IsTrue(option.IsCustom);
                Assert.IsTrue(option.IsSet);
                Assert.IsNotNull(option.ToString());
            }

            const string firstOption  = "--my-option";
            const string secondOption = "--my-valued-option";

            string[] lines =
            {
                firstOption,
                $"{secondOption} value"
            };

            // Assert custom options parsing from string
            OptionSet opts = OptionSet.FromString(lines);

            AssertCustomOption(opts.CustomOptions.First(s => s.DefaultOptionString == firstOption));
            AssertCustomOption(opts.CustomOptions.First(s => s.DefaultOptionString == secondOption));

            // Assert custom options cloning
            var cloned = opts.OverrideOptions(new OptionSet());

            AssertCustomOption(cloned.CustomOptions.First(s => s.DefaultOptionString == firstOption));
            AssertCustomOption(cloned.CustomOptions.First(s => s.DefaultOptionString == secondOption));

            // Assert custom options override
            var overrideOpts = opts.OverrideOptions(OptionSet.FromString(new[] { firstOption }));

            CollectionAssert.AllItemsAreUnique(overrideOpts.CustomOptions);

            // Assert custom options to string conversion
            Assert.IsFalse(string.IsNullOrWhiteSpace(opts.ToString()));
        }