#!/usr/bin/env perl
BEGIN {
plan
skip_all
=>
'Set the AUTHOR_TESTING env var to run this test.'
unless
$ENV
{AUTHOR_TESTING};
}
my
$config
= GitLab::API::v4::Config->new();
my
$api
= GitLab::API::v4->new(
$config
->args() );
subtest
projects
=>
sub
{
my
$stamp
=
time
();
my
$project_name
=
"tester-$stamp"
;
my
$created_project
=
$api
->create_project(
{
name
=>
$project_name
},
);
ok(
$created_project
,
'project created'
);
my
$project_id
=
$created_project
->{id};
my
$found_project
=
$api
->project(
$project_id
);
ok(
$found_project
,
'project found'
);
$api
->delete_project(
$project_id
);
pass
'project deleted'
;
};
subtest
users
=>
sub
{
my
$create_user
=
$api
->create_user({
'username'
=>
'maryp'
,
'email'
=>
'maryp@test.example.com'
,
'password'
=>
'd5fzHF7tfgh'
,
'name'
=>
'Mary Poppins'
});
pass
'user created'
;
my
$found_user
=
$api
->users({
'username'
=>
'maryp'
});
ok(
$found_user
,
'user found'
);
my
$user_id
=
$found_user
->[0]->{
'id'
};
ok(
$api
->block_user(
$user_id
),
'user blocked'
);
ok( (!
$api
->block_user(
$user_id
)),
'user cannot be blocked again'
);
ok(
$api
->unblock_user(
$user_id
),
'user unblocked'
);
ok( (!
$api
->unblock_user(
$user_id
)),
'user cannot be unblocked again'
);
$api
->delete_user(
$user_id
);
pass
'user deleted'
;
};
subtest
failures
=>
sub
{
is(
$api
->user( 12345678 ),
undef
,
'GETing an unknown entity returns undef'
);
my
$err_re
=
qr{^Error PUTing \S+/users/12345678 \(HTTP 404\): Not Found \{"message":"404 User Not Found"\}
};
like( dies{
$api
->edit_user( 12345678, {} ) },
$err_re
,
'POSTing an unknown entity throws a specific exception'
);
};
done_testing;