Skip to content
Snippets Groups Projects
Commit 8ce2f8f2 authored by Anton Soldatov's avatar Anton Soldatov
Browse files

* Redminer::API: PUT and DELETE requests return empty hash refs on success

* t/RedMiner-API.t renamed to t/02-realworld.t
* Tests updated
parent ce85368b
No related branches found
No related tags found
No related merge requests found
...@@ -144,6 +144,10 @@ sub _response ...@@ -144,6 +144,10 @@ sub _response
return $self->_set_error($response->status_line); return $self->_set_error($response->status_line);
} }
if ($request->method eq 'PUT' || $request->method eq 'DELETE') {
return {};
}
return eval { return eval {
JSON::XS::decode_json($response->decoded_content) JSON::XS::decode_json($response->decoded_content)
} // $self->_set_error($@); } // $self->_set_error($@);
......
use strict; use strict;
use warnings; use warnings;
use Test::More tests => 30; use Test::More tests => 29;
BEGIN { use_ok('RedMiner::API') }; eval 'use RedMiner::API';
# #
# Tests for internal name dispatching # Testing internal name dispatching with a dummy object
# #
my $redminer = RedMiner::API->new( my $redminer = RedMiner::API->new(
host => '', host => '',
key => '' key => '',
); );
my $r; my $r;
......
use strict;
use warnings;
use Test::More;
use JSON::XS qw/encode_json/;
if ($ENV{REDMINER_API_DEVEL}) {
plan tests => 5;
} else{
plan skip_all => 'Tests require RedMine installation';
}
eval 'use RedMiner::API';
#
# Read API key from a simple config file in the format 'host;key'
#
my $host = '';
my $key = '';
my $key_fname = $ENV{HOME} . '/.redminer/key';
if (!-e $key_fname) {
BAIL_OUT('REDMINER_API_DEVEL set, but key file is not accessible');
}
open my $FH_key, '<', $key_fname;
my $key_data = <$FH_key>;
($host, $key) = split /\s*;\s*/, $key_data;
chomp $key_data;
close $FH_key;
my $redminer = RedMiner::API->new(
host => $host,
key => $key,
);
my $project = $redminer->createProject({
identifier => 'redminer-api-test',
name => 'RedMiner API test',
});
my $project_id = $project->{project}{id};
ok(defined $project_id, 'New project created with internal ID ' . $project_id);
ok(!defined $redminer->createProject({
identifier => 'redminer-api-test',
name => 'RedMiner API test',
}), 'Project already exists, error object is ' . JSON::XS::encode_json($redminer->errorDetails));
ok($redminer->updateProject($project_id, { inherit_members => 1 }), 'Project updated');
my $issue = $redminer->createIssue({
project_id => $project_id,
subject => 'Test issue for RedMiner::API',
description => 'Test description',
});
ok(defined $issue->{issue}{id}, 'Issue created with ID #' . $issue->{issue}{id});
ok($redminer->deleteProject($project_id), 'Project deleted');
exit;
use strict;
use warnings;
use Test::More tests => 1;
BEGIN { use_ok('RedMiner::API') };
my $host = '';
my $key = '';
my $key_fname = $ENV{HOME} . '/.redminer/key';
if (-e $key_fname) {
open my $FH_key, '<', $key_fname;
my $key_data = <$FH_key>;
($host, $key) = split /\s*;\s*/, $key_data;
chomp $key_data;
close $FH_key;
}
my $redminer = RedMiner::API->new(
host => $host,
key => $key,
);
my $response = $redminer->createProject({
identifier => 'test-ru',
name => 'test.ru',
});
use JSON::XS qw/encode_json/;
if ($response) {
say STDERR JSON::XS::encode_json($response);
} else {
say STDERR JSON::XS::encode_json($redminer->errorDetails);
}
#SKIP: {
# skip 'Development tests skipped', 2 if !$ENV{REDMINER_API_DEVEL};
#}
exit;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment