1use strict;
2use warnings;
3use Scalar::Util 'blessed';
4use Test::More qw(no_plan);
5BEGIN { use_ok('Geo::GDAL') };
6
7# Drivers, DriverNames, Driver
8#
9# Geo::GDAL
10# Geo::OGR
11
12for my $method (qw/Drivers DriverNames Driver/) {
13    ok(Geo::GDAL->can($method), "$method exists");
14    ok(Geo::OGR->can($method), "$method exists");
15}
16
17for my $driver (Geo::GDAL::Drivers()) {
18    ok($driver->TestCapability('RASTER'), $driver->Name." is a raster driver");
19}
20
21for my $driver (Geo::OGR::Drivers()) {
22    ok($driver->TestCapability('VECTOR'), $driver->Name." is a vector driver");
23}
24
25# Open, OpenShared, OpenEx
26#
27# Geo::GDAL: Open, OpenShared, OpenEx
28# Geo::OGR: Open, OpenShared
29# Geo::GDAL::Driver: Open
30# Geo::OGR::Driver: Open
31# Geo::GDAL::Dataset: Open, OpenShared
32# Geo::OGR::DataSource: Open, OpenShared
33
34for my $method (qw/Open OpenShared OpenEx/) {
35    ok(Geo::GDAL->can($method), "$method exists");
36 }
37
38for my $method (qw/Open OpenShared/) {
39    ok(Geo::OGR->can($method), "$method exists");
40    ok(Geo::GDAL::Dataset->can($method), "$method exists");
41    ok(Geo::OGR::DataSource->can($method), "$method exists");
42}
43
44for my $method (qw/Open/) {
45    ok(Geo::GDAL::Driver->can($method), "$method exists");
46    ok(Geo::OGR::Driver->can($method), "$method exists");
47}
48
49# Create, Copy
50#
51# Geo::GDAL::Driver
52# Geo::OGR::Driver
53
54for my $method (qw/Create Copy/) {
55    ok(Geo::GDAL::Driver->can($method), "$method exists");
56    ok(Geo::OGR::Driver->can($method), "$method exists");
57}
58
59{
60    my $ds = Geo::GDAL::Driver('MEM')->Create();
61    ok($ds, "MEM Create works.");
62}
63
64{
65    my $ds = Geo::OGR::Driver('Memory')->Create();
66    ok($ds, "Memory Create works.");
67}
68
69{
70    my $ds = Geo::GDAL::Driver('MEM')->Create();
71    my $progress;
72    Geo::GDAL::Driver('MEM')->Copy( Name => '', src => $ds, progress => sub {$progress = "Me progress!";1});
73    ok($progress eq "Me progress!", "MEM Copy works.");
74}
75