3 no warnings qw(redefine once);
8 use Test::More tests => 10;
14 require './l7directord';
17 our @_status_up_args = ();
18 our @_status_up_returns = ();
19 our @_status_down_args = ();
20 our @_status_down_returns = ();
21 our @__restore_service_args = ();
22 our @__remove_service_args = ();
24 #...............................................
33 pass 'fallback_on - v is undef';
39 pass 'fallback_off - v is undef';
43 local @_status_up_args = ();
44 local @_status_up_returns = (1);
45 local @__restore_service_args = ();
46 my $v = { fallback => { tcp => 'r' } };
48 is_deeply \@_status_up_args, [[[$v, 'r']], 'fallback'], 'fallback_on - status change to up';
49 is_deeply \@__restore_service_args, [$v, 'r', 'fallback'], 'fallback_on - restore service args';
53 local @_status_down_args = ();
54 local @_status_down_returns = (1);
55 local @__remove_service_args = ();
56 my $v = { fallback => { tcp => 'r' } };
58 is_deeply \@_status_down_args, [[[$v, 'r']], 'fallback'], 'fallback_off - status change to down';
59 is_deeply \@__remove_service_args, [$v, 'r', 'fallback'], 'fallback_off - remove service args';
63 local @_status_up_args = ();
64 local @_status_up_returns = (0);
65 local @__restore_service_args = ();
66 my $v = { fallback => { tcp => 'r' } };
68 is_deeply \@_status_up_args, [[[$v, 'r']], 'fallback'], 'fallback_on - status is not changed';
69 is_deeply \@__restore_service_args, [], 'fallback_on - restore service no args';
73 local @_status_down_args = ();
74 local @_status_down_returns = (0);
75 local @__remove_service_args = ();
76 my $v = { fallback => { tcp => 'r' } };
78 is_deeply \@_status_down_args, [[[$v, 'r']], 'fallback'], 'fallback_off - status is not changed';
79 is_deeply \@__remove_service_args, [], 'fallback_off - remove service no args';
82 #...............................................
90 *_status_up = \&___status_up;
91 *_status_down = \&___status_down;
92 *_restore_service = \&___restore_service;
93 *_remove_service = \&___remove_service;
96 push @_status_up_args, @_;
97 return shift @_status_up_returns;
100 push @_status_down_args, @_;
101 return shift @_status_down_returns;
103 sub ___restore_service {
104 push @__restore_service_args, @_;
106 sub ___remove_service {
107 push @__remove_service_args, @_;