Moo-Google
view release on metacpan or search on metacpan
xt/calendar/calendarList.t view on Meta::CPAN
use Data::Dumper;
use Data::Printer;
$Data::Dumper::Maxdepth = 2;
use Moo::Google;
use Test::More;
my $default_file = $ENV{'GOOGLE_TOKENSFILE'} || 'gapi.conf';
my $user = $ENV{'GMAIL_FOR_TESTING'} || 'pavel.p.serikov@gmail.com';
my $gapi = Moo::Google->new( debug => 0 );
if ( $gapi->auth_storage->file_exists($default_file) ) {
$gapi->auth_storage->setup( { type => 'jsonfile', path => $default_file } );
$gapi->user($user);
my $id; # will be id of primary calendar
my $demo_calendar_id =
'russ_11874_%46%43+%52ostov#sports@group.v.calendar.google.com';
# DELETE https://www.googleapis.com/calendar/v3/users/me/calendarList/calendarId
subtest 'CalendarList->list' => sub {
my $t = $gapi->Calendar->CalendarList->list->json;
warn "List: " . Dumper $t;
ok( ref( $t->{items} ) eq 'ARRAY', "returned an ARRAY" );
ok(
scalar @{ $t->{items} } > 0,
"ARRAY isn't empty (user must have at least one primary calendar)"
);
ok(
$t->{items}[0]{kind} eq 'calendar#calendarListEntry',
"kind seems like OK - calendar#calendarListEntry"
);
$id = $t->{items}[0]{id};
};
subtest 'CalendarList->get' => sub {
my $t =
$gapi->Calendar->CalendarList->get( { calendarId => $id } )->json;
# warn "List: ".Dumper $t;
ok( ref($t) eq 'HASH', "returned single item" );
ok(
$t->{kind} eq 'calendar#calendarListEntry',
"kind seems like OK - calendar#calendarListEntry"
);
ok( $t->{id} eq $id,
"got calendar with right id (previously listed first)" );
};
subtest 'CalendarList->insert' => sub {
# add FC Rostov calendar to your Google Calendar
my $t = $gapi->Calendar->CalendarList->insert(
{
options => { # CalendarList resource
id => $demo_calendar_id,
defaultReminders => [
{
method => 'popup',
minutes => 15
}
],
notificationSettings => {
notifications => [
{
type => 'agenda',
method => 'email'
}
]
}
}
}
)->json;
warn Dumper $t;
ok( $t->{summary} eq 'FC Rostov',
"FC Rostov calendar was inserted in your GCal" );
};
# return 404 instead of 204
# subtest 'CalendarList->delete' => sub {
# my $r = $gapi->Calendar->CalendarList->delete({ calendarId => $demo_calendar_id });
# warn $r->code;
# ok($r->is_empty, 'FC Rostov calendar was deleted');
# };
}
else {
say 'Cant run test cause json file with tokens not exists!';
}
done_testing();
( run in 2.091 seconds using v1.01-cache-2.11-cpan-364913b4093 )