The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Module::Setup::Test::Utils;
use Test::More tests => 9;

use Module::Setup::Flavor::Default;

do {
    my $config = +{
        plugins => [],
    };
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [];
};

do {
    my $config = +{
        plugins => ['VC::SVN'],
    };
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, ['VC::SVN'];
};

do {
    my $config = +{
        plugins => [],
    };
    dialog {'y'};
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [qw/ VC::SVK VC::Git /];
};

do {
    my $config = +{
        plugins => [qw/ VC::SVN VC::SVK VC::Git /],
    };
    dialog {'y'};
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [qw/ VC::SVK VC::Git /];
};

do {
    my $config = +{
        plugins => [],
    };
    my @ans = qw( n y n );
    dialog { shift @ans };
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [qw/ VC::SVK /];
};

do {
    my $config = +{
        plugins => [qw/ VC::SVN /],
    };
    my @ans = qw( n n y );
    dialog { shift @ans };
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [qw/ VC::SVN VC::Git /];
};

do {
    my $config = +{
        plugins => [qw/ VC::SVN /, +{ module => 'VC::Git', config => +{ foo => 1 } }],
    };
    my @ans = qw( n n y );
    dialog { shift @ans };
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [qw/ VC::SVN /, +{ module => 'VC::Git', config => +{ foo => 1 } }];
};

do {
    my $config = +{
        plugins => [qw/ VC::SVN /, +{ module => 'VC::SVK', config => +{ foo => 1 } }],
    };
    my @ans = qw( n n y );
    dialog { shift @ans };
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [+{ module => 'VC::SVK', config => +{ foo => 1 } }, 'VC::Git'];
};

do {
    my $config = +{
        plugins => [+{ module => 'VC::SVN', config => +{ foo => 1 } }],
    };
    my @ans = qw( n y n );
    dialog { shift @ans };
    Module::Setup::Flavor::Default->setup_config('Module::Setup', $config);
    is_deeply $config->{plugins}, [qw/ VC::SVK /];
};