コード例 #1
0
ファイル: CompletionTests.cs プロジェクト: reubeno/NClap
        public void CompleteAnswerFilePathButNoPrefixAvailable()
        {
            var reader = Substitute.For<IFileSystemReader>();
            reader.EnumerateFileSystemEntries(Arg.Any<string>(), Arg.Any<string>()).Returns(new[] { ".\\FooBar", ".\\Foo.txt" });

            var options = new CommandLineParserOptions { FileSystemReader = reader };
            var completions = CommandLineParser.GetCompletions(typeof(ArgsWithNoAnswerFile), new[] { "@.\\Foo" }, 0, options).ToList();
            completions.Should().BeEmpty();
        }
コード例 #2
0
ファイル: CompletionTests.cs プロジェクト: reubeno/NClap
        public void CompleteAnswerFilePath()
        {
            var reader = Substitute.For<IFileSystemReader>();
            reader.EnumerateFileSystemEntries(Arg.Any<string>(), Arg.Any<string>()).Returns(new[] { ".\\FooBar", ".\\Foo.txt" });

            var options = new CommandLineParserOptions { FileSystemReader = reader };
            var completions = CommandLineParser.GetCompletions(typeof(SimpleArgs), new[] { "@.\\Foo" }, 0, options).ToList();

            completions.Should().ContainInOrder("@.\\FooBar", "@.\\Foo.txt");
            reader.Received().EnumerateFileSystemEntries(".", "Foo*");
        }
コード例 #3
0
        public void FileDoesNotExist()
        {
            var reader = CreateReaderThatThrows(new FileNotFoundException());
            var options = new CommandLineParserOptions { FileSystemReader = reader };

            CommandLineParser.Parse(
                new[] { "@foo" },
                new Arguments(),
                options).Should().BeFalse();

            reader.Received().GetLines("foo");
        }
コード例 #4
0
        public void FileWithValidArgs()
        {
            var args = new Arguments();
            var reader = CreateReaderThatReturns(new[] { "/intvalue:17", "/stringvalue:a b" });
            var options = new CommandLineParserOptions { FileSystemReader = reader };

            CommandLineParser.Parse(
                new[] { "@foo" },
                args,
                options).Should().BeTrue();

            reader.Received().GetLines("foo");
            args.IntValue.Should().Be(17);
            args.StringValue.Should().Be("a b");
        }
コード例 #5
0
        public void FileIsEmpty()
        {
            var args = new Arguments();
            var reader = CreateReaderThatReturns(Enumerable.Empty<string>());
            var options = new CommandLineParserOptions { FileSystemReader = reader };

            CommandLineParser.Parse(
                new[] { "@foo" },
                args,
                options).Should().BeTrue();

            reader.Received().GetLines("foo");
            args.IntValue.Should().Be(0);
            args.StringValue.Should().BeNull();
        }
コード例 #6
0
ファイル: ArgumentTests.cs プロジェクト: reubeno/NClap
        internal static Argument GetArgument(Type type, string fieldName = "Value")
        {
            var argField = type.GetField(fieldName);
            var attrib = argField.GetSingleAttribute<ArgumentBaseAttribute>();
            attrib.Should().NotBeNull();

            var options = new CommandLineParserOptions
            {
                FileSystemReader = FileSystemReader.Create(),
                Reporter = err => { }
            };

            return new Argument(new MutableFieldInfo(argField), attrib, options);
        }
コード例 #7
0
        public void AlternateSyntax()
        {
            var args = new AlternateSyntaxArguments();
            var reader = CreateReaderThatReturns(new[] { "/value:abc" });
            var options = new CommandLineParserOptions { FileSystemReader = reader };

            CommandLineParser.Parse(new[] { "@foo" }, args, options).Should().BeFalse();
            reader.DidNotReceive().GetLines("foo");

            CommandLineParser.Parse(new[] { "#!foo" }, args, options).Should().BeTrue();
            reader.Received().GetLines("foo");
            args.Value.Should().Be("abc");
        }
コード例 #8
0
ファイル: ValidationTests.cs プロジェクト: reubeno/NClap
        public void MustNotExist()
        {
            var args = new NotExistsArguments();
            CommandLineParser.Parse(new string[] { }, args).Should().BeTrue();

            var reader = Substitute.For<IFileSystemReader>();
            var options = new CommandLineParserOptions { FileSystemReader = reader };

            reader.FileExists(@"h:\temp").Returns(false);
            reader.DirectoryExists(@"h:\temp").Returns(false);
            CommandLineParser.Parse(new[] { @"/value=h:\temp" }, args, options).Should().BeTrue();

            reader.FileExists(@"h:\temp").Returns(true);
            reader.DirectoryExists(@"h:\temp").Returns(false);
            CommandLineParser.Parse(new[] { @"/value=h:\temp" }, args, options).Should().BeFalse();

            reader.FileExists(@"h:\temp").Returns(false);
            reader.DirectoryExists(@"h:\temp").Returns(true);
            CommandLineParser.Parse(new[] { @"/value=h:\temp" }, args, options).Should().BeFalse();
        }