use strict;
use warnings;
use Test::More tests => 10;
use Net::Proxy::Connector;
use Net::Proxy::Connector::dual;
my $c;
my $args = {};
eval { $c = Net::Proxy::Connector::dual->new($args); };
like( $@, qr/^'client_first' connector required /, 'No client_first' );
$args->{client_first} = 1;
eval { $c = Net::Proxy::Connector::dual->new($args); };
like(
$@,
qr/^'client_first' connector must be a HASHREF /,
'client_first not HASHREF'
);
$args->{client_first} = {};
eval { $c = Net::Proxy::Connector::dual->new($args); };
like(
$@,
qr/^'type' key required for 'client_first' connector /,
'No type for client_first'
);
$args->{client_first} = { type => 'zlonk' };
eval { $c = Net::Proxy::Connector::dual->new($args); };
like(
$@,
qr/^Couldn't load Net::Proxy::Connector::zlonk for 'client_first' connector: /,
'Bad connector type for client_first'
);
$args->{client_first} = { type => 'tcp' };
$args->{_proxy_} = bless {}, 'Net::Proxy';
eval { $c = Net::Proxy::Connector::dual->new( $args ); };
like( $@, qr/^'server_first' connector required /, 'No server_first' );
$args->{server_first} = 1;
eval { $c = Net::Proxy::Connector::dual->new($args); };
like(
$@,
qr/^'server_first' connector must be a HASHREF /,
'server_first not HASHREF'
);
$args->{server_first} = { type => 'zowie' };
eval { $c = Net::Proxy::Connector::dual->new($args); };
like(
$@,
qr/^Couldn't load Net::Proxy::Connector::zowie for 'server_first' connector: /,
'Bad connector type for server_first'
);
$args->{server_first} = { type => 'tcp' };
eval { $c = Net::Proxy::Connector::dual->new( $args ); };
like( $@, qr/^Parameter 'port' is required /, 'No port' );
$args->{port} = 444;
eval { $c = Net::Proxy::Connector::dual->new( $args ); };
is( $@, '', 'dual object created');
isa_ok( $c, 'Net::Proxy::Connector::dual' );