9 use Module::Load::Conditional qw( can_load check_install );
12 if ( check_install( module => 'Test::DBIx::Class' ) ) {
15 plan skip_all => "Need Test::DBIx::Class"
19 use Test::DBIx::Class;
21 my $db = Test::MockModule->new('Koha::Database');
22 $db->mock( _new_schema => sub { return Schema(); } );
25 skip "cannot find WebService::ILS::OverDrive::Patron", 5
26 unless can_load( modules => { 'WebService::ILS::OverDrive::Patron' => undef } );
28 use_ok('Koha::ExternalContent::OverDrive');
30 t::lib::Mocks::mock_preference('SessionStorage','tmp');
32 t::lib::Mocks::mock_preference('OverDriveClientKey', 'DUMMY');
33 t::lib::Mocks::mock_preference('OverDriveClientSecret', 'DUMMY');
34 t::lib::Mocks::mock_preference('OverDriveLibraryID', 'DUMMY');
36 my $client = Koha::ExternalContent::OverDrive->new({koha_session_id => 'DUMMY'});
38 my $user_agent_string = $client->user_agent->agent();
39 ok ($user_agent_string =~ m/^Koha/, 'User Agent string is set')
40 or diag("User Agent string: $user_agent_string");
42 my $base_url = "http://mykoha.org";
43 ok ($client->auth_url($base_url), 'auth_url()');
45 eval { $client->auth_by_code("blah", $base_url) };
46 ok($@, "auth_by_code() dies with bogus credentials");
48 skip "No exception", 1 unless $@;
49 my $error_message = $client->error_message($@);
50 ok($error_message =~ m/Authorization Failed/i, "error_message()")
51 or diag("Original:\n$@\nTurned into:\n$error_message");