public void NotPresentDoesNotPerformAction()
        {
            var parameter = new DirectoryConsoleParameter(new[] { "d" }, x => Program.d = x, "");

            bool mapped = parameter.PerformMapping(new LinkedList <string>("".Split(' ')));

            Assert.AreEqual(Program.d, default);
            Assert.IsFalse(mapped);
        }
        public void CanParseLastParameter()
        {
            var parameter = new DirectoryConsoleParameter(new[] { "d" }, x => Program.d = x, "");

            bool mapped = parameter.PerformMapping(new LinkedList <string>($"-aaa asdfsad -b -d {Environment.CurrentDirectory}".Split(' ')));

            Assert.IsNotNull(Program.d);
            Assert.AreEqual(Program.d.FullName, Environment.CurrentDirectory);
            Assert.IsTrue(mapped);
        }
        public void CanParseMultiple()
        {
            HashSet <DirectoryInfo> dirInfos = new HashSet <DirectoryInfo>();

            var parameter = new DirectoryConsoleParameter(new[] { "d" }, x => dirInfos.Add(x), "");

            bool mapped = parameter.PerformMapping(new LinkedList <string>($"-d {Environment.CurrentDirectory} -d {Environment.CurrentDirectory}".Split(' ')));

            Assert.AreEqual(2, dirInfos.Count);
            Assert.AreEqual(dirInfos.First().FullName, Environment.CurrentDirectory);
            Assert.AreEqual(dirInfos.Last().FullName, Environment.CurrentDirectory);
            Assert.IsTrue(mapped);
        }
        public void ArgsRemovedOnSuccess()
        {
            var parameter = new DirectoryConsoleParameter(new[] { "d" }, x => Program.d = x, "");

            var args = new LinkedList <string>($"-q -d {Environment.CurrentDirectory} -g".Split(' '));

            bool mapped = parameter.PerformMapping(args);

            Assert.IsTrue(mapped);
            Assert.AreEqual(2, args.Count);
            Assert.IsFalse(args.Contains("-d"));
            Assert.IsFalse(args.Contains(Environment.CurrentDirectory));
        }
        public void ToStringRequiredText()
        {
            var parameter = new DirectoryConsoleParameter(new[] { "d", "dir" }, x => Program.d = x, "aaaa", true);

            Assert.AreEqual("-d -dir : (Required) aaaa", parameter.ToString());
        }