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::Is qw/extended/;
use Test::More tests => 1;

my $builder = Test::More->builder;
binmode $builder->output,         ':encoding(UTF-8)';
binmode $builder->failure_output, ':encoding(UTF-8)';
binmode $builder->todo_output,    ':encoding(UTF-8)';

use WWW::Pastebin::Sprunge::Create;
use WWW::Pastebin::Sprunge::Retrieve;

my $reader = WWW::Pastebin::Sprunge::Retrieve->new();
my $writer = WWW::Pastebin::Sprunge::Create->new();

SKIP: {
    skip 't/testfile is missing', 1 unless -r 't/testfile';
    my $id = $writer->paste('t/testfile', file => 1) or do {
        diag 'Got an error on ->paste(): ' . $writer->error;
        skip 'Got error', 1;
    };
    note $id;
    my $ret = $reader->retrieve($id) or do {
        diag 'Got an error on ->retrieve(): ' . $reader->error;
        skip 'Got error', 1;
    };
    open my $fh, '<:encoding(UTF-8)', 't/testfile' or die "Can't open for reading: $!";
    my $text = do { local $/; <$fh> };
    is($ret, "$text\n", 'file content pasted ok');
}