Пример #1
0
    /// <summary>
    /// fluent setter for <see cref="ISupportSwitchIncludeFilenames"/>.
    /// </summary>
    /// <typeparam name="T">the builder to support the <see cref="ISupportSwitchIncludeFilenames"/>.</typeparam>
    /// <param name="this">The builder-instance.</param>
    /// <param name="type">The <see cref="RecurseType"/>.</param>
    /// <param name="fileNameWildcard">The filename-wildcard.</param>
    /// <param name="additional">Additional filename-wildcards.</param>
    /// <returns>The builder-instance for fluent re-use.</returns>
    public static T WithIncludeFilenames <T>(this T @this, RecurseType type, string fileNameWildcard, params string[] additional)
        where T : ISupportSwitchBuilder <ISupportSwitchIncludeFilenames>
    {
        var first = new SwitchIncludeFilename(fileNameWildcard, type);
        var rest  = additional.Select(x => new SwitchIncludeFilename(x, type));

        return(@this.WithIncludeFilenames(first, rest));
    }
    public void Include_with_Recurse_Wildcards_outputs_r_zero()
    {
        var          fixture  = new SevenZipSettingsFixture();
        var          sut      = new SwitchIncludeFilename("*.txt", RecurseType.EnableOnlyForWildcardNames);
        const string expected = "-ir0!*.txt";

        var actual = fixture.Parse(b => sut.BuildArguments(ref b));

        actual.ShouldBe(expected);
    }
    public void Include_without_Recurse_outputs_no_recurse()
    {
        var          fixture  = new SevenZipSettingsFixture();
        var          sut      = new SwitchIncludeFilename("*.txt");
        const string expected = "-i!*.txt";

        var actual = fixture.Parse(b => sut.BuildArguments(ref b));

        actual.ShouldBe(expected);
    }
    public void Include_with_Recurse_disabled_outputs_r_minus()
    {
        var          fixture  = new SevenZipSettingsFixture();
        var          sut      = new SwitchIncludeFilename("*.txt", RecurseType.Disable);
        const string expected = "-ir-!*.txt";

        var actual = fixture.Parse(b => sut.BuildArguments(ref b));

        actual.ShouldBe(expected);
    }
Пример #5
0
    private static T WithIncludeFilenames <T>(
        this T @this,
        SwitchIncludeFilename first,
        IEnumerable <SwitchIncludeFilename> rest)
        where T : ISupportSwitchBuilder <ISupportSwitchIncludeFilenames>
    {
        if (@this.Command.IncludeFilenames == null)
        {
            @this.Command.IncludeFilenames = new SwitchIncludeFilenameCollection(first);
        }
        else
        {
            @this.Command.IncludeFilenames.Add(first);
        }

        rest.ToList().ForEach(@this.Command.IncludeFilenames.Add);

        return(@this);
    }