EVOLUTION-MANAGER
Edit File: callback.t
use strict; use warnings; use Scalar::Util 'blessed'; use Test::More tests => 2; BEGIN { use_ok('Geo::GDAL') }; { package Output; use strict; use warnings; our @output; sub new { return bless {}, 'Output'; } sub write { my $line = shift; push @output, $line; } sub close { push @output, "end"; } } { # create a small layer and copy it to vsistdout with redirection my $l = Geo::OGR::Driver('Memory')->Create()->CreateLayer(GeometryType => 'None'); $l->CreateField(Name => 'value', Type => 'Integer'); $l->CreateField(Name => 'geom', GeometryType => 'Point'); $l->InsertFeature([12,{wkt=>'POINT(1 1)'}]); my $output = Output->new; my $l2 = Geo::OGR::Driver('GeoJSON')->Create($output)->CopyLayer($l, ''); $output = join '', @Output::output; $output =~ s/\n//g; ok($output eq '{"type": "FeatureCollection",'. '"features": '. '[{ "type": "Feature", "id": 0, "properties": '. '{ "value": 12 }, "geometry": { "type": "Point", '. '"coordinates": [ 1.0, 1.0 ] } }]}end', "Redirect stdout to write/close methods."); }