public void TestEquals()
        {
            var command = Substitute.For <Command <object> >();

            new EqualsTester()
            .AddEqualityGroup(
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer()).Build(),
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer()).Build()
                )
            .AddEqualityGroup(
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer()).Executes(command).Build(),
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer()).Executes(command).Build()
                )
            .AddEqualityGroup(
                RequiredArgumentBuilder <object, int> .RequiredArgument("bar", Arguments.Integer(-100, 100)).Build(),
                RequiredArgumentBuilder <object, int> .RequiredArgument("bar", Arguments.Integer(-100, 100)).Build()
                )
            .AddEqualityGroup(
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer(-100, 100)).Build(),
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer(-100, 100)).Build()
                )
            .AddEqualityGroup(
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer()).Then(
                    RequiredArgumentBuilder <object, int> .RequiredArgument("bar", Arguments.Integer())
                    ).Build(),
                RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer()).Then(
                    RequiredArgumentBuilder <object, int> .RequiredArgument("bar", Arguments.Integer())
                    ).Build()
                )
            .TestEquals();
        }
        public void TestArguments()
        {
            var argument = RequiredArgumentBuilder <object, int> .RequiredArgument("bar", Arguments.Integer());

            _builder.Then(argument);

            _builder.Arguments.Should().HaveCount(1);
            _builder.Arguments.Should().ContainSingle().Which.Should().Be(argument.Build());
        }
        public ArgumentCommandNodeTest()
        {
            _node = RequiredArgumentBuilder <object, int> .RequiredArgument("foo", Arguments.Integer()).Build();

            _contextBuilder = new CommandContextBuilder <object>(new CommandDispatcher <object>(), new object(), new RootCommandNode <object>(), 0);
        }
 public static RequiredArgumentBuilder <Source, T> RequiresPlayer <T>(
     this RequiredArgumentBuilder <Source, T> builder)
 {
     return(builder.Requires(source => source.Player != null));
 }
 public static RequiredArgumentBuilder <Source, T> Argument <T>(string name, IArgumentType <T> argumentType)
 {
     return(RequiredArgumentBuilder <Source, T> .Argument(name, argumentType));
 }
 public RequiredArgumentBuilderTest()
 {
     _builder = RequiredArgumentBuilder <object, int> .RequiredArgument("foo", _type);
 }