#!/usr/bin/env perl
# Copyright (c) 2008-2009 George Nistorica
# All rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself. See the LICENSE
# file that comes with this distribution for more details.
# ($rcs) = (' $Id: 020-filter_line_compat.t,v 1.6 2009/01/28 12:38:29 george Exp $ ' =~ /(\d+(\.\d+)+)/);
use strict;
use warnings;
# Check that the module is acting as POE::Filter::Line does
# (basic check)
use Test::More;
use POE::Filter::Line;
use lib q{lib/};
use POE::Filter::Transparent::SMTP;
my (
$multiple_lines_string, $from_transparent_filter,
$from_line_filter, @raw_data_to_filter
);
my ( $transparent_filter, $line_filter );
# use several line terminators
my @literals = ( qq{\015\012}, qq{\015}, qq{\012}, );
# for each literal there are 4 tests
plan tests => 4 * scalar @literals;
foreach my $literal (@literals) {
$multiple_lines_string =
q{line one} . qq{\n}
. q{line two} . qq{\n}
. q{line tree} . qq{\n}
. q{line four} . qq{\n};
$transparent_filter = POE::Filter::Transparent::SMTP->new(
q{InputLiteral} => $literal,
q{OutputLiteral} => $literal,
);
$line_filter = POE::Filter::Line->new( q{Literal} => $literal, );
$transparent_filter->get_one_start( [$multiple_lines_string] );
$line_filter->get_one_start( [$multiple_lines_string] );
$from_transparent_filter = $transparent_filter->get_one();
$from_line_filter = $line_filter->get_one();
is_deeply( $from_transparent_filter, $from_line_filter, q{->get_one()} );
$from_transparent_filter =
$transparent_filter->get( [$multiple_lines_string] );
$from_line_filter = $line_filter->get( [$multiple_lines_string] );
is_deeply( $from_transparent_filter, $from_line_filter, q{->get()} );
@raw_data_to_filter = (
q{first thing(no new line)},
qq{second thing (with new line)\n},
q{third thing (no new line},
);
$from_transparent_filter = $transparent_filter->put( \@raw_data_to_filter );
$from_line_filter = $line_filter->put( \@raw_data_to_filter );
is_deeply( $from_transparent_filter, $from_line_filter, q{->put()} );
$from_transparent_filter = $transparent_filter->get_pending();
$from_line_filter = $line_filter->get_pending();
is_deeply( $from_transparent_filter, $from_line_filter,
q{->get_pending()} );
}