The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More tests => 4;
use_ok('POE::Filter::Finger');
use Test::Deep;

my $filter = POE::Filter::Finger->new();
isa_ok( $filter, 'POE::Filter::Finger' );
isa_ok( $filter, 'POE::Filter' );

my @tests = ( '', 'bingos', 'bingos@example.org@example.com', 'this is garbage' );

my $expected = [
          {
            'listing' => {
                           'verbose' => ''
                         }
          },
          {
            'user' => {
                        'verbose' => '',
                        'username' => 'bingos'
                      }
          },
          {
            'forward' => {
                           'verbose' => '',
                           'hosts' => [
                                        'example.org',
                                        'example.com'
                                      ],
                           'username' => 'bingos'
                         }
          },
          {
            'unknown' => 'this is garbage'
          }
        ];

my $output = $filter->get( \@tests );

cmp_deeply(
  $output,
  $expected,
  'Did we get what we expected',
);