Overhaul the argument parsing API
This commit is contained in:
parent
62d26082c9
commit
82f5c18129
9 changed files with 207 additions and 153 deletions
|
@ -1,6 +1,7 @@
|
|||
import 'package:libac_dart/argparse/Args.dart';
|
||||
import 'package:libac_dart/argparse/Builder.dart';
|
||||
import 'package:libac_dart/argparse/CLIHelper.dart';
|
||||
import 'package:libac_dart/argparse/Parser.dart';
|
||||
import 'package:libac_dart/argparse/types/Bool.dart';
|
||||
import 'package:libac_dart/argparse/types/String.dart';
|
||||
import 'package:test/expect.dart';
|
||||
|
@ -8,33 +9,34 @@ import 'package:test/scaffolding.dart';
|
|||
|
||||
void main() {
|
||||
test("Test parsing a argument", () async {
|
||||
List<String> testArgs = ["--test=12", "--enable", "--put=Here"];
|
||||
List<String> testArgs = ["--test", "12", "--enable", "--put=Here"];
|
||||
|
||||
Arguments defaults = Arguments();
|
||||
Arguments parsed = ArgumentParser.parse(testArgs);
|
||||
|
||||
Arguments parsed = await CLIHelper.parseArgs(testArgs, defaults);
|
||||
expect(parsed.hasArg("test"), true);
|
||||
expect(parsed.getArg("test")!.getValue() as int, 12);
|
||||
expect(
|
||||
parsed.getArg("test")!.getType(),
|
||||
ArgumentType.INTEGER,
|
||||
);
|
||||
|
||||
expect(true, parsed.hasArg("test"));
|
||||
expect(12, parsed.getArg("test")!.getValue() as int);
|
||||
expect(ArgumentType.INTEGER, parsed.getArg("test")!.getType());
|
||||
expect(parsed.hasArg("enable"), true);
|
||||
expect(
|
||||
parsed.getArg("enable")!.getType(),
|
||||
ArgumentType.BOOL,
|
||||
);
|
||||
|
||||
expect(true, parsed.hasArg("enable"));
|
||||
expect(ArgumentType.BOOL, parsed.getArg("enable")!.getType());
|
||||
|
||||
expect("Here", parsed.getArg("put")!.getValue() as String);
|
||||
expect(parsed.getArg("put")!.getValue() as String, "Here");
|
||||
});
|
||||
|
||||
test("Test printing Usage", () async {
|
||||
Arguments testArgs = ArgumentsBuilder.builder()
|
||||
.withArgument(BoolArgument(
|
||||
name: "use_legacy", description: "Uses legacy settings"))
|
||||
.withArgument(StringArgument(
|
||||
name: "output",
|
||||
value: "./out",
|
||||
description: "Where to put the output files"))
|
||||
.withArgument(BoolArgument(name: "use_legacy"))
|
||||
.withArgument(StringArgument(name: "output", value: "./out"))
|
||||
.build();
|
||||
|
||||
String usage = CLIHelper.makeArgCLIHelp(testArgs);
|
||||
String usage = ArgumentHelpers.generateHelpMessage(
|
||||
testArgs.getArgumentsList(), "Testsuite");
|
||||
print("LibAC_Dart\nTestsuite - 1.0\n\n${usage}");
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue