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
|
# -*- perl -*-
use Test::More tests => 5;
use strict;
use warnings;
BEGIN {
use_ok('Net::DBus::Callback');
};
my $doneit = 0;
my $doer = Doer->new;
my $callback = Net::DBus::Callback->new(
object => $doer,
method => "doit",
args => [4, 3, 5]
);
$callback->invoke();
ok($doer->doneit == 12, "object callback");
$callback->invoke();
ok($doer->doneit == 24, "object callback");
$callback = Net::DBus::Callback->new(
method => \&doit,
args => [5,1,2]
);
$callback->invoke();
ok($doneit == 8, "subroutine callback");
$callback->invoke();
ok($doneit == 16, "subroutine callback");
sub doit {
foreach (@_) {
$doneit += $_;
}
}
package Doer;
sub new {
my $class = shift;
my $self = {};
$self->{doneit} = 0;
bless $self, $class;
return $self;
}
sub doit {
my $self = shift;
foreach (@_) {
$self->{doneit} += $_;
}
}
sub doneit {
my $self = shift;
return $self->{doneit};
}
|