App-Git-Workflow

 view release on metacpan or  search on metacpan

t/workflow.t  view on Meta::CPAN

        [
            'git-tag',
            [qw'sha 55d0295a1227f591afc683dd12e43823cd2e404d'],
        ],
        [
            'git-branch',
            [qw'branch origin/master'],
        ],
    );

    for my $data (@data) {
        $git->mock_reset();
        $git->mock_add({ 'rev-parse' => 't/data' });
        $pom->{branches} = {};
        $pom->{tags}     = [];
        $pom->{GIT_DIR}  = $data->[0];
        my $ans = [$pom->current()];
        is_deeply $ans, $data->[1], "Get the current $data->[0]"
            or diag Dumper $ans, $data->[1];
    }
}

sub test_match_commits {
    return;
    my @data = (
        [
            [
                [qw{1.0 2.0 3.0}],
                [qw{master origin/master}],
            ],
            [qw/tag ./],
            [{
                branches => {},
                sha      => undef,
                user     => 'test user',
                email    => 'test@example.com',
                files    => {},
                name     => '3.0',
                time     => time,
            }],
        ],
        [
            [
                [qw{master origin/master}],
            ],
            [qw/branch ./],
            [{
                branches => {},
                sha      => undef,
                user     => 'test user',
                email    => 'test@example.com',
                files    => {},
                name     => '3.0',
                time     => time,
            }],
        ],
    );

    TODO:
    for my $data (@data) {
        local $TODO = 'Need to decide if this even needs to exits';
        $git->mock_reset();
        $git->mock_add(@{ $data->[0] });
        $pom->{branches} = {};
        $pom->{tags}     = [];
        my $ans = [$pom->match_commits(@{$data->[1]})];
        is_deeply $ans, $data->[2], "Get the commits for $data->[1][0]"
            or diag Dumper $ans, $data->[2];
    }
}

sub test_release {
    my @data = (
        [
            [
                { tag => [qw{1.0 10.0 2.0 3.0 ZZZ}] },
            ],
            [qw/tag local/, qr/^\d+/],
            '10.0',
        ],
        [
            [
                { branch => [map {"  $_"} qw{origin/other origin/master}] },
            ],
            [qw/branch remote/, qr/master/],
            'origin/master',
        ],
    );

    for my $data (@data) {
        $git->mock_reset();
        $git->mock_add(@{ $data->[0] });
        $pom->{branches} = {};
        $pom->{tags}     = [];
        my $ans = $pom->release(@{$data->[1]});
        is_deeply $ans, $data->[2], "Get the commits for $data->[1][0]"
            or diag Dumper $ans, $data->[2];
    }
}

sub test_releases {
    my @data = (
        [
            [
                { tag    => [qw/not-release v3.0 v1.0 v1.1 v2.0/] },
                { log    => "1405968782\x{1}55d0295a1227f591afc683dd12e43823cd2e404d" },
                { branch => [map {"  $_"} qw{master origin/master}] },
            ],
            { tag => '^v\d+(?:[.]\d+)*$' },
            [
                {
                    branches => {
                        master          => 1,
                        'origin/master' => 1
                    },
                    files => {},
                    user  => undef,
                    time  => '1405968782',
                    name  => 'v3.0',
                    email => undef,
                    sha   => '55d0295a1227f591afc683dd12e43823cd2e404d'



( run in 0.824 second using v1.01-cache-2.11-cpan-39bf76dae61 )