# -*- perl -*- use Test::More tests => 5; 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}; }