public void Format_ShouldReturnOptionSetup()
        {
            var commandParser = A.Fake <CommandParser <DataTypesCommandOptions> >();

            var targetProperty = typeof(DataTypesCommandOptions).GetProperty("Guid");
            var optionParser   = A.Fake <GuidOptionParser>(ob => ob.WithArgumentsForConstructor(() => new GuidOptionParser(targetProperty, "guid")));

            var setup = new GuidOptionSetup <DataTypesCommandOptions>(commandParser, optionParser);

            setup.Format("X").Should().Be(setup);
        }
        public void DefaultValue_ShouldReturnOptionSetup()
        {
            var commandParser = A.Fake <CommandParser <DataTypesCommandOptions> >();

            var targetProperty = typeof(DataTypesCommandOptions).GetProperty("Guid");
            var optionParser   = A.Fake <GuidOptionParser>(ob => ob.WithArgumentsForConstructor(() => new GuidOptionParser(targetProperty, "guid")));

            var setup = new GuidOptionSetup <DataTypesCommandOptions>(commandParser, optionParser);

            setup.DefaultValue(new Guid("1d2730fa-bc48-4664-92b6-7f4ca891a9f1")).Should().Be(setup);
        }
        public void Help_ShouldAssignHelpToOptionParser()
        {
            var commandParser = A.Fake <CommandParser <DataTypesCommandOptions> >();

            var targetProperty = typeof(DataTypesCommandOptions).GetProperty("Guid");
            var optionParser   = A.Fake <GuidOptionParser>(ob => ob.WithArgumentsForConstructor(() => new GuidOptionParser(targetProperty, "guid")));

            var setup = new GuidOptionSetup <DataTypesCommandOptions>(commandParser, optionParser);

            setup.Help("newHelpText");

            A.CallToSet(() => optionParser.OptionHelp).To("newHelpText").MustHaveHappened();
        }
        public void Name_ShouldReturnOptionSetup()
        {
            var commandParser = A.Fake <CommandParser <DataTypesCommandOptions> >();

            var targetProperty = typeof(DataTypesCommandOptions).GetProperty("Guid");
            var optionParser   = A.Fake <GuidOptionParser>(ob => ob.WithArgumentsForConstructor(() => new GuidOptionParser(targetProperty, "guid")));

            var setup = new GuidOptionSetup <DataTypesCommandOptions>(commandParser, optionParser);

            A.CallTo(() => commandParser.CanOptionParserUseOptionName(optionParser, "newName")).Returns(true);

            setup.Name("newName").Should().Be(setup);
        }
        public void IsRequired_ShouldSetIsRequiredFlagOnOptionParser()
        {
            var commandParser = A.Fake <CommandParser <DataTypesCommandOptions> >();

            var targetProperty = typeof(DataTypesCommandOptions).GetProperty("Guid");
            var optionParser   = A.Fake <GuidOptionParser>(ob => ob.WithArgumentsForConstructor(() => new GuidOptionParser(targetProperty, "guid")));

            var setup = new GuidOptionSetup <DataTypesCommandOptions>(commandParser, optionParser);

            setup.IsRequired();

            A.CallToSet(() => optionParser.IsOptionRequired).To(true).MustHaveHappened();
        }
        public void DefaultValue_ShouldAssignDefaultValueToOptionParser()
        {
            var commandParser = A.Fake <CommandParser <DataTypesCommandOptions> >();

            var targetProperty = typeof(DataTypesCommandOptions).GetProperty("Guid");
            var optionParser   = A.Fake <GuidOptionParser>(ob => ob.WithArgumentsForConstructor(() => new GuidOptionParser(targetProperty, "guid")));

            var setup = new GuidOptionSetup <DataTypesCommandOptions>(commandParser, optionParser);

            var defaultValue = new Guid("1d2730fa-bc48-4664-92b6-7f4ca891a9f1");

            setup.DefaultValue(defaultValue);

            A.CallToSet(() => optionParser.OptionDefaultValue).To(defaultValue).MustHaveHappened();
        }
        public void Name_DuplicateName_ShouldThrowException()
        {
            var commandParser = A.Fake <CommandParser <DataTypesCommandOptions> >();

            var targetProperty = typeof(DataTypesCommandOptions).GetProperty("Guid");
            var optionParser   = A.Fake <GuidOptionParser>(ob => ob.WithArgumentsForConstructor(() => new GuidOptionParser(targetProperty, "guid")));

            var setup = new GuidOptionSetup <DataTypesCommandOptions>(commandParser, optionParser);

            A.CallTo(() => commandParser.CanOptionParserUseOptionName(optionParser, "newName")).Returns(false);

            setup.Invoking(a => a.Name("newName"))
            .Should()
            .Throw <ArgumentException>();
        }