1# -*- perl -*-
2#
3
4require 5.004;
5use strict;
6
7require "t/lib.pl";
8
9
10my $numTests = 11;
11my $numTest = 0;
12
13
14my $cfg = <<"EOF";
15
16{
17    clients => [ {
18	'mask'   => '^127\.0\.0\.1\$',
19	'accept' => 1,
20	'methods' => {
21	    'CalcServer' => {
22		'NewHandle' => 1,
23		'CallMethod' => 1
24	    },
25	    'Calculator' => {
26		'new' => 1,
27		'add' => 1,
28		'multiply' => 1,
29		'divide' => 1,
30		'subtract' => 1
31	    }
32	} }
33    ]
34}
35EOF
36if (!open(FILE, ">t/methods.cfg")  ||  !(print FILE ($cfg))  || !close(FILE)) {
37    die "Error while creating config file t/methods.cfg: $!";
38}
39
40
41my($handle, $port);
42($handle, $port) = Net::Daemon::Test->Child($numTests,
43					    $^X, '-Iblib/lib',
44					    '-Iblib/arch',
45					    't/server', '--mode=single',
46					    '--debug', '--timeout', 60,
47					    '--configfile', 't/methods.cfg');
48
49
50my @opts = ('peeraddr' => '127.0.0.1', 'peerport' => $port, 'debug' => 1,
51	    'application' => 'CalcServer', 'version' => 0.01,
52	    'timeout' => 20);
53
54
55my($client, $calculator) = RunTests(@opts);
56Test(!eval { $calculator->not_permitted() });
57Test($@ =~ /permitted/);
58
59END { $handle->Terminate() if $handle };
60