File: 02_stop_event.t

package info (click to toggle)
libobject-event-perl 1.230-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, forky, sid, trixie
  • size: 240 kB
  • sloc: perl: 1,099; makefile: 8
file content (72 lines) | stat: -rw-r--r-- 2,338 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!perl

use Test::More tests => 25;

package foo;
use common::sense;

use Object::Event;
$Object::Event::ENABLE_METHODS_DEFAULT = $ENV{OE_METHODS_ENABLE};

our @ISA = qw/Object::Event/;

package main;
use common::sense;

my $f = foo->new;

my ($before, $event, $after, $ext_before, $ext_after);
sub clear { $before = $event = $after = $ext_before = $ext_after = 0 }

$f->reg_cb (
   before_test     => sub { $before     = 1; $_[0]->stop_event if $_[1] eq 'before'     },
   ext_before_test => sub { $ext_before = 1; $_[0]->stop_event if $_[1] eq 'ext_before' },
   test            => sub { $event      = 1; $_[0]->stop_event if $_[1] eq 'event'      },
   ext_after_test  => sub { $ext_after  = 1; $_[0]->stop_event if $_[1] eq 'ext_after'  },
   after_test      => sub { $after      = 1; $_[0]->stop_event if $_[1] eq 'after'      },
);

clear();
$f->event ('test', 'event');

is ($before,     1, 'before has been executed');
is ($ext_before, 1, 'ext_before has been executed');
is ($event,      1, 'event has been executed');
is ($ext_after,  0, 'ext_after has not been executed');
is ($after,      0, 'after has not been executed');

clear();
$f->event ('test', 'before');

is ($before,     1, 'before has been executed');
is ($ext_before, 0, 'ext_before has been executed');
is ($event,      0, 'event has been executed');
is ($ext_after,  0, 'ext_after has not been executed');
is ($after,      0, 'after has not been executed');

clear();
$f->event ('test', 'after');

is ($before,     1, 'before has been executed');
is ($ext_before, 1, 'ext_before has been executed');
is ($event,      1, 'event has been executed');
is ($ext_after,  1, 'ext_after has not been executed');
is ($after,      1, 'after has not been executed');

clear();
$f->event ('test', 'ext_before');

is ($before,     1, 'before has been executed');
is ($ext_before, 1, 'ext_before has been executed');
is ($event,      0, 'event has been executed');
is ($ext_after,  0, 'ext_after has not been executed');
is ($after,      0, 'after has not been executed');

clear();
$f->event ('test', 'ext_after');

is ($before,     1, 'before has been executed');
is ($ext_before, 1, 'ext_before has been executed');
is ($event,      1, 'event has been executed');
is ($ext_after,  1, 'ext_after has not been executed');
is ($after,      0, 'after has not been executed');