The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 7;
use Shipwright::Test;
use Shipwright::Backend;

Shipwright::Test->init;

my %backend = (
    'svk:/test/foo'              => 'SVK',
    '//test/foo'                 => 'SVK',
    'svn:file:///test/foo'       => 'SVN',
    'svn://example.com/test/foo' => 'SVN',
);

for ( sort keys %backend ) {
    my $backend = Shipwright::Backend->new( repository => $_ );
    isa_ok( $backend, 'Shipwright::Backend::' . $backend{$_}, $_ );
}

my %invalid_backend = (
    'foo' => 'invalid repository',
    ''    => 'invalid repository',
);

for ( keys %invalid_backend ) {
    eval { my $backend = Shipwright::Backend->new( repository => $_ ) };
    like( $@, qr/$invalid_backend{$_}/, $invalid_backend{$_} );
}

eval { my $backend = Shipwright::Backend->new };
like( $@, qr/need repository arg/, 'new need repository arg' );