예제 #1
0
        public void GetKeyValues()
        {
            const string command_line = "file1.bin file2.bin -wps \"c:\\Program files 321\\123\" 123 "
                                        + "--in file3.txt file4.txt file5.txt --in file6.txt -o result.bin "
                                        + "-- file7.qwe file8.asd";

            var parser = new CommandLineArgs(command_line.Split(' '));

            Assert.That.Enumerable(parser.GetKeyValues("").Single()).IsEqualTo(new[] { "file1.bin", "file2.bin" });

            Assert.That.Enumerable(parser.GetKeyValues("w").Single()).IsEqualTo(new[] { "c:\\Program files 321\\123", "123" });
            Assert.That.Enumerable(parser.GetKeyValues("p").Single()).IsEqualTo(new[] { "c:\\Program files 321\\123", "123" });
            Assert.That.Enumerable(parser.GetKeyValues("s").Single()).IsEqualTo(new[] { "c:\\Program files 321\\123", "123" });

            Assert.That.Value(parser.GetKeyValues("in").Count()).IsEqual(2);
            Assert.That.Enumerable(parser.GetKeyValues("in").First()).IsEqualTo(new[] { "file3.txt", "file4.txt", "file5.txt" });
            Assert.That.Enumerable(parser.GetKeyValues("in").Last()).IsEqualTo(new[] { "file6.txt" });

            Assert.That.Enumerable(parser.GetKeyValues("o").Single()).IsEqualTo(new[] { "result.bin" });

            Assert.That.Enumerable(parser.GetKeyValues("--").Single()).IsEqualTo(new[] { "file7.qwe", "file8.asd" });
        }