use strictures 1; use Test::More; use Test::Fatal; use FindBin; $ENV{OBJECT_REMOTE_TEST_LOGGER} = 1; $ENV{PERL5LIB} = join( ':', ($ENV{PERL5LIB} ? $ENV{PERL5LIB} : ()), qw(lib t/lib) ); use Object::Remote; my $strA = 'foo'; my $strB = 'bar'; is exception { my $proxy = ORTestTransfer->new::on('-', value => \$strA); is_deeply $proxy->value, \$strA, 'correct value after construction'; }, undef, 'scalar refs - no errors during construction'; is exception { my $proxy = ORTestTransfer->new::on('-'); $proxy->value(\$strB); is_deeply $proxy->value, \$strB, 'correct value after construction'; }, undef, 'scalar refs - no errors during attribute set'; my $data_file = "$FindBin::Bin/data/numbers.txt"; is exception { my $out = ''; open my $fh, '>', \$out or die "Unable to open in-memory file: $!\n"; my $proxy = ORTestGlobs->new::on('-', handle => $fh); ok $proxy->handle, 'filehandle was set'; ok $proxy->write('foo'), 'write was successful'; is $out, 'foo', 'write reached target'; }, undef, 'filehandles - no error during construction'; is exception { my $proxy = ORTestGlobs->new::on('-'); my $handle = $proxy->gethandle; print $handle 'foo'; is $proxy->getvalue, 'foo', 'correct value written'; $handle->autoflush(1); }, undef, 'filehandles - no error during remote handle'; is exception { my $proxy = ORTestGlobs->new::on('-'); my $rhandle = $proxy->getreadhandle($data_file); my @lines = <$rhandle>; chomp @lines; is_deeply \@lines, [1 .. 5], 'reading back out of the handle'; }, undef, 'filehandles - no error during remote read'; is exception { my $proxy = ORTestGlobs->new::on('-'); my $rhandle = $proxy->getreadhandle($data_file); binmode $rhandle; }, undef, 'filehandles - no errors during binmode'; done_testing;