Net-Server
view release on metacpan or search on metacpan
t/Options.t view on Meta::CPAN
my $server = eval { FooServer->run };
ok($server, "Got a server ($@)");
my $prop = eval { $server->{'server'} } || {};
is($prop->{'log_level'}, 2, "Correct default log_level");
is($prop->{'log_file'}, "", "Correct default log_file");
ok(! $prop->{'user'}, "Correct default user");
my $configured_ports = scalar(@{ $prop->{'_bind'} });
ok($configured_ports == 1 || $configured_ports == 2, "Had correct configured ports ($configured_ports)");
my @socks = @{ $prop->{'sock'} };
is(scalar(@socks), scalar(@{ $prop->{'_bind'} }), "Sockets matched ports");
my $sock = $socks[0];
is(eval { $sock->NS_host }, (eval{$sock->NS_ipv}eq 4?'0.0.0.0':'::'), "Right host".eval { ": ".$sock->NS_host()."/IPv".$sock->NS_ipv });
is(eval { $sock->NS_port }, 20203, "Right port");
is(eval { $sock->NS_proto }, 'TCP', "Right proto");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(port => 2201)->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 1, "Had 1 configured ports");
is($prop->{'port'}->[0], 2201, "Right port");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(port => [2201, 2202])->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 2, "Had 1 configured ports");
is($prop->{'port'}->[0], 2201, "Right port");
is($prop->{'port'}->[1], 2202, "Right port");
###----------------------------------------------------------------###
$prop = eval { FooServer->run({port => 2201})->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 1, "Had 1 configured ports");
is($prop->{'port'}->[0], 2201, "Right port");
###----------------------------------------------------------------###
$prop = eval { FooServer->new(port => 2201)->run->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 1, "Had 1 configured ports");
is($prop->{'port'}->[0], 2201, "Right port");
###----------------------------------------------------------------###
$prop = eval { FooServer->new({port => 2201})->run->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 1, "Had 1 configured ports");
is($prop->{'port'}->[0], 2201, "Right port");
###----------------------------------------------------------------###
$prop = eval { local @ARGV = ('--port', '2201'); FooServer->run->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 1, "Had 1 configured ports");
is($prop->{'port'}->[0], 2201, "Right port");
###----------------------------------------------------------------###
$prop = eval { local @ARGV = ('--port', '2201', '--port=2202'); FooServer->run->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 2, "Had 1 configured ports");
is($prop->{'port'}->[0], 2201, "Right port");
is($prop->{'port'}->[1], 2202, "Right port");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(conf_file => __FILE__.'.conf')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'port'} }), 3, "Had 1 configured ports");
is($prop->{'port'}->[0], 5401, "Right port");
is($prop->{'port'}->[1], 5402, "Right port");
is($prop->{'port'}->[2], 5403, "Right port");
is($prop->{'user'}, 'foo', "Right user");
###----------------------------------------------------------------###
$prop = eval { local @ARGV = ('--user=cmdline'); FooServer->run(conf_file => __FILE__.'.conf', user => 'runargs')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'user'}, 'cmdline', "Right user \"$prop->{'user'}\"");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(conf_file => __FILE__.'.conf', user => 'runargs')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'user'}, 'runargs', "Right user \"$prop->{'user'}\"");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(my_option => 'wow')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'my_option'}, 'wow', 'Could use custom options');
###----------------------------------------------------------------###
$prop = eval { FooServer->run(an_arrayref_item => 'wow')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is(scalar(@{ $prop->{'an_arrayref_item'} }), 1, "Had 1 configured custom array option");
is($prop->{'an_arrayref_item'}->[0], 'wow', "Right value");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(conf_file => __FILE__.'.conf', user => 'runargs')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'my_option'}, 'bar', "Right my_option \"$prop->{'my_option'}\"");
is(scalar(@{ $prop->{'an_arrayref_item'} }), 3, "Had 3 configured custom array option");
is($prop->{'an_arrayref_item'}->[0], 'one', "Right value");
is($prop->{'an_arrayref_item'}->[1], 'three', "Right value");
is($prop->{'an_arrayref_item'}->[2], 'two', "Right value");
###----------------------------------------------------------------###
$prop = eval { local @ARGV = ('--group=cmdline'); FooServer->run(conf_file => __FILE__.'.conf', group => 'runargs')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'group'}, 'cmdline', "Right group \"$prop->{'group'}\"");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(conf_file => __FILE__.'.conf', group => 'runargs')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'group'}, 'runargs', "Right group \"$prop->{'group'}\"");
###----------------------------------------------------------------###
$prop = eval { FooServer->run(conf_file => __FILE__.'.conf')->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'group'}, 'confgroup', "Right group \"$prop->{'group'}\"");
###----------------------------------------------------------------###
$prop = eval { FooServer->run->{'server'} };
ok($prop, "Loaded server");
$prop ||= {};
is($prop->{'group'}, 'defaultgroup', "Right group \"$prop->{'group'}\"");
is(scalar(@{ $prop->{'allow'} }), 2, "Defaults for allow are set also");
###----------------------------------------------------------------###
{
package BarServer;
@BarServer::ISA = qw(FooServer);
sub default_values {
return {
conf_file => __FILE__.'.conf'
};
}
}
$prop = eval { BarServer->run->{'server'} };
$prop ||= {};
is($prop->{'group'}, 'confgroup', "Right group \"$prop->{'group'}\"");
###----------------------------------------------------------------###
$prop = eval { FooServer->new({
conf_file => __FILE__.'.conf', # arguments passed to new win
})->run({
conf_file => 'somefile_that_doesnot_exist',
})->{'server'} };
$prop ||= {};
is($prop->{'group'}, 'confgroup', "Right group \"$prop->{'group'}\"");
###----------------------------------------------------------------###
if (!$ENV{'TEST_LOG4PERL'}) {
SKIP: { skip("TEST_LOG4PERL not set - skipping Log::Log4perl tests", 7) };
} elsif (!eval { require Log::Log4perl; require File::Temp }) {
SKIP: { skip("Log::Log4perl not installed: $@", 7) };
( run in 2.610 seconds using v1.01-cache-2.11-cpan-98e64b0badf )