The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More 'no_plan';

use ok 'Devel::Events::Filter::Drop';

use Devel::Events::Handler::Callback;

{
	my @events;
	my $f = Devel::Events::Filter::Drop->new(
		match => "foo",
		handler => Devel::Events::Handler::Callback->new(sub { push @events, [@_] }),
	);

	$f->new_event( foo => bar => 42 );
	$f->new_event( bar => gorch => 43 );

	is_deeply( \@events, [ [ bar => gorch => 43 ] ], "filtered" );
}

{
	my @events;
	my $f = Devel::Events::Filter::Drop->new(
		match => "foo",
		non_matching => 1,
		handler => Devel::Events::Handler::Callback->new(sub { push @events, [@_] }),
	);

	$f->new_event( foo => bar => 42 );
	$f->new_event( bar => gorch => 43 );

	is_deeply( \@events, [ [ foo => bar => 42 ] ], "non matching" );
}