App-Puppet-Environment-Updater
view release on metacpan or search on metacpan
t/lib/App/Puppet/Environment/UpdaterTest.pm view on Meta::CPAN
$self->{env_git}->init();
}
$self->{env_git}->config('user.email' => 'test@example.com');
$self->{env_git}->config('user.name' => 'test@example.com');
$self->{tmp}->create_tree({
'repos/environment/site.pp' => "node example.com {}",
});
$self->{env_git}->add('.');
$self->{env_git}->commit('-m', 'first commit');
$self->{env_git}->branch('foo');
$self->{workdir} = $self->{tmp}->mkdir('work');
$self->{work_git} = Git::Wrapper->new($self->{workdir});
$self->{work_git}->clone($env, $self->{workdir});
$self->{work_git}->config('user.email' => 'test@example.com');
$self->{work_git}->config('user.name' => 'test@example.com');
}
sub teardown : Test(teardown) {
my ($self) = @_;
undef $self->{tmp};
}
sub test_new : Test(1) {
my ($self) = @_;
new_ok('App::Puppet::Environment::Updater' => [
environment => 'testing',
from => 'development',
], 'instance created');
}
sub remote_branch_for_test : Test(2) {
my ($self) = @_;
my $branch = $self->create_updater()->remote_branch_for('bar');
is($branch, 'origin/bar', 'remote branch name constructed');
$branch = $self->create_updater(
remote => 'github',
)->remote_branch_for('bar');
is($branch, 'github/bar', 'remote can be set in constructor');
}
sub create_and_switch_to_branch_test : Test(1) {
my ($self) = @_;
my $app = $self->create_updater();
$app->create_and_switch_to_branch('foo');
is_deeply(
[ '* foo', ' master' ],
[ $self->{work_git}->branch() ],
'branch created'
);
}
sub update_branch_test : Test(3) {
my ($self) = @_;
my $app = $self->create_updater();
$app->update_branch('master');
is(
($self->{work_git}->show())[0],
($self->{env_git}->show())[0],
'up to date before commit on upstream master'
);
$self->{tmp}->create_tree({
'repos/environment/site.pp' => "node 'example.com' {}",
});
$self->{env_git}->commit('-a', '-m', 'Add single quotes');
isnt(
($self->{env_git}->show())[0],
($self->{work_git}->show())[0],
'not up to date after commit on upstream'
);
$app->get_git()->fetch('origin');
$app->update_branch('master');
is(
($self->{env_git}->show())[0],
($self->{work_git}->show())[0],
'up to date after update'
);
}
sub merge_test : Test(1) {
my ($self) = @_;
$self->{tmp}->create_tree({
'repos/environment/site.pp' => "node 'example.com' {}",
});
$self->{env_git}->commit('-a', '-m', 'Add single quotes');
my $app = $self->create_updater();
$app->create_and_switch_to_branch('foo');
$app->get_git()->fetch('origin');
$app->update_branch('master');
$app->merge('master', 'foo');
like(
($self->{work_git}->log('foo'))[0]->{message},
qr{master.*foo},
'branch merged, merge commit created'
);
}
sub run_test : Test(1) {
my ($self) = @_;
$self->{env_git}->branch('testing');
$self->{tmp}->create_tree({
'repos/environment/site.pp' => "node 'example.com' {}",
});
$self->{env_git}->commit('-a', '-m', 'Add single quotes');
( run in 0.518 second using v1.01-cache-2.11-cpan-39bf76dae61 )