Artifactory-Client

 view release on metacpan or  search on metacpan

lib/Artifactory/Client.pm  view on Meta::CPAN

    # need to handle matrix vs non-matrix situations.
    if ($matrix) {
        return $self->_handle_matrix_props( $key, $values );
    }
    return $self->_handle_non_matrix_props( $key, $values );
}

sub _handle_matrix_props {
    my ( $self, $key, $values ) = @_;

    # string looks like key=val;key=val2;key=val3;
    my @strings;
    for my $value ( @{$values} ) {
        $value = '' if ( !defined $value );

        #$value = uri_escape( $value );
        push @strings, "$key=$value";
    }
    return join( ";", @strings );
}

sub _handle_non_matrix_props {
    my ( $self, $key, $values ) = @_;

    # string looks like key=val1,val2,val3|
    my $str = "$key=";
    my @value_holder;
    for my $value ( @{$values} ) {
        $value = '' if ( !defined $value );
        $value = uri_escape($value);
        push @value_holder, $value;
    }
    $str .= join( ",", @value_holder );
    return $str;
}

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->retrieve_latest_artifact( path => $path, version => '0.9.9', flag => 'snapshot' );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr/\Qunique_path-0.9.9-SNAPSHOT.jar\E/, 'snapshot URL looks sane' );

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {
                        '_uri' => bless(
                            do {
                                \( my $o =
'http://example.com:7777/artifactory/repository/unique_path/release/unique_path-release.jar'

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    $resp = $client->retrieve_latest_artifact( path => $path, release => 'release', flag => 'release' );
    my $url_in_response2 = $resp->request->uri;
    like( $url_in_response2, qr/\Qunique_path-release.jar\E/, 'release URL looks sane' );

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {
                        '_uri' => bless(
                            do {
                                \( my $o =
'http://example.com:7777/artifactory/repository/unique_path/1.0-integration/unique_path-1.0-integration.jar'

t/01_unit.t  view on Meta::CPAN

            'HTTP::Response'
        );
    };
    $resp = $client->retrieve_latest_artifact(
        path        => $path,
        version     => '1.0',
        integration => 'integration',
        flag        => 'integration'
    );
    my $url_in_response3 = $resp->request->uri;
    like( $url_in_response3, qr/\Qunique_path-1.0-integration.jar\E/, 'integration URL looks sane' );
};

subtest 'retrieve_build_artifacts_archive', sub {
    my $client  = setup();
    my $payload = {
        buildName   => 'api-test',
        buildNumber => 10,
        archiveType => 'zip',
    };

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->file_compliance_info('/some_path');
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/compliance|, 'requsted URL looks sane' );
};

subtest 'copy_item', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->copy_item( from => "/repo/some_path", to => "/repo2/some_path2" );
    is( $resp->code, 200, 'copy_item worked' );

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_repository_replication_configuration();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/replications|, 'requsted URL looks sane' );
};

subtest 'set_repository_replication_configuration', sub {
    my $client = setup();
    my $payload = { username => "admin", };

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->set_repository_replication_configuration($payload);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/replications|, 'requsted URL looks sane' );
};

subtest 'update_repository_replication_configuration', sub {
    my $client = setup();
    my $payload = { username => "admin", };

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->update_repository_replication_configuration($payload);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/replications|, 'requsted URL looks sane' );
};

subtest 'pull_push_replication', sub {
    my $client  = setup();
    my $payload = { username => 'replicator', };
    my $path    = '/foo/bar';

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->pull_push_replication( payload => $payload, path => $path );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/replication/execute/foobar|, 'requsted URL looks sane' );
};

subtest 'create_or_replace_local_multi_push_replication', sub {
    my $client  = setup();
    my $payload = {
        cronExp                => "0 0/9 14 * * ?",
        enableEventReplication => 'true'
    };

    local *{'LWP::UserAgent::put'} = sub {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->create_or_replace_local_multi_push_replication($payload);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/replications/multiple|, 'requsted URL looks sane' );
};

subtest 'update_local_multi_push_replication', sub {
    my $client  = setup();
    my $payload = {
        cronExp                => "0 0/9 14 * * ?",
        enableEventReplication => 'true'
    };

    local *{'LWP::UserAgent::post'} = sub {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->update_local_multi_push_replication($payload);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/replications/multiple|, 'requsted URL looks sane' );
};

subtest 'delete_local_multi_push_replication', sub {
    my $client = setup();
    my $url    = 'http://10.0.0.1/artifactory/libs-release-local';

    local *{'LWP::UserAgent::delete'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->delete_local_multi_push_replication($url);
    my $url_in_response = $resp->request->uri;
    like(
        $url_in_response,
        qr|/api/replications/repository\?url=http://10.0.0.1/artifactory/libs-release-local|,
        'requsted URL looks sane'
    );
};

subtest 'enable_or_disable_multiple_replications', sub {
    my $client = setup();
    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my %info = (
        include => ["**"],

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->archive_entry_search( name => 'archive', repos => ['repo'] );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/archive|, 'requsted URL looks sane' );
};

subtest 'gavc_search', sub {
    my $client = setup();
    my %args   = (
        g     => 'foo',
        a     => 'bar',
        v     => '1.0',
        c     => 'abc',
        repos => [ 'repo', 'abc' ],

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->checksum_search(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/checksum|, 'requsted URL looks sane' );
};

subtest 'bad_checksum_search', sub {
    my $client = setup();
    my %args   = (
        type  => 'md5',
        repos => [ 'repo', 'abc' ],
    );

    local *{'LWP::UserAgent::get'} = sub {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->bad_checksum_search(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/badChecksum|, 'requsted URL looks sane' );
};

subtest 'artifacts_not_downloaded_since', sub {
    my $client = setup();
    my %args   = (
        notUsedSince  => 12345,
        createdBefore => 12345,
        repos         => [ 'repo', 'abc' ],
    );

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->artifacts_not_downloaded_since(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/usage|, 'requsted URL looks sane' );
};

subtest 'artifacts_with_date_in_date_range', sub {
    my $client = setup();
    my %args   = (
        from       => 12345,
        repos      => [ 'repo1', 'repo2' ],
        dateFields => [ 'created', 'lastModified', 'lastDownloaded' ],
    );

t/01_unit.t  view on Meta::CPAN

                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };

    my $resp            = $client->artifacts_with_date_in_date_range(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/dates|, 'requested URL looks sane' );
};

subtest 'artifacts_created_in_date_range', sub {
    my $client = setup();
    my %args   = (
        from  => 12345,
        repos => [ 'repo', 'abc' ],
    );

    local *{'LWP::UserAgent::get'} = sub {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->artifacts_created_in_date_range(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/creation|, 'requsted URL looks sane' );
};

subtest 'pattern_search', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->pattern_search('killer/*/ninja/*/*.jar');
    is( $resp->code, 200, 'request succeeded' );

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->builds_for_dependency(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/dependency|, 'requsted URL looks sane' );
};

subtest 'license_search', sub {
    my $client = setup();
    my %args   = (
        unapproved => 1,
        unknown    => 1,
        notfound   => 0,
        neutral    => 0,
        approved   => 0,

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->license_search(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/license|, 'requsted URL looks sane' );
};

subtest 'artifact_version_search', sub {
    my $client = setup();
    my %args   = (
        g      => 'foo',
        a      => 'bar',
        v      => '1.0',
        remote => 1,
        repos  => ['dist-packages'],

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->artifact_version_search(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/versions|, 'requsted URL looks sane' );
};

subtest 'artifact_latest_version_search_based_on_layout', sub {
    my $client = setup();
    my %args   = (
        g      => 'foo',
        a      => 'bar',
        v      => '1.0',
        remote => 1,
        repos  => ['foo'],

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->artifact_latest_version_search_based_on_layout(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/search/latestVersion|, 'requsted URL looks sane' );
};

subtest 'artifact_latest_version_search_based_on_properties', sub {
    my $client = setup();
    my %args   = (
        repo      => '_any',
        path      => '/a/b',
        listFiles => 1,
    );

t/01_unit.t  view on Meta::CPAN

                          bless( do { \( my $o = "http://example.com:7777/artifactory/api/versions" ) }, 'URI::http' ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->artifact_latest_version_search_based_on_properties(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/versions|, 'requsted URL looks sane' );
};

subtest 'build_artifacts_search', sub {
    my $client = setup();
    my %args   = (
        buildName   => 'api-test',
        buildNumber => 14,
    );

    local *{'LWP::UserAgent::post'} = sub {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_users();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/users|, 'requsted URL looks sane' );
};

subtest 'get_user_details', sub {
    my $client = setup();
    my $user   = 'foo';

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_user_details($user);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/users/$user|, 'requsted URL looks sane' );
};

subtest 'get_user_encrypted_password', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_user_encrypted_password();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/encryptedPassword|, 'requsted URL looks sane' );
};

subtest 'create_or_replace_user', sub {
    my $client = setup();
    my $user   = 'foo';
    my %args   = ( name => 'foo', );

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->create_or_replace_user( $user, %args );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/users/$user|, 'requsted URL looks sane' );
};

subtest 'update_user', sub {
    my $client = setup();
    my $user   = 'foo';
    my %args   = ( name => 'foo', );

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->update_user( $user, %args );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/users/$user|, 'requsted URL looks sane' );
};

subtest 'delete_user', sub {
    my $client = setup();
    my $user   = 'foo';

    local *{'LWP::UserAgent::delete'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->delete_user($user);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/users/$user|, 'requsted URL looks sane' );
};

subtest 'expire_password_for_a_single_user', sub {
    my $client = setup();
    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->expire_password_for_a_single_user('david');
    is( $resp->code, 200, 'request succeeded' );
};

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_groups();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/groups|, 'requsted URL looks sane' );
};

subtest 'get_group_details', sub {
    my $client = setup();
    my $group  = 'dev-leads';

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_group_details($group);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/groups/$group|, 'requsted URL looks sane' );
};

subtest 'create_or_replace_group', sub {
    my $client = setup();
    my $group  = 'dev-leads';
    my %args   = ( name => 'dev-leads', );

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->create_or_replace_group( $group, %args );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/groups/$group|, 'requsted URL looks sane' );
};

subtest 'update_group', sub {
    my $client = setup();
    my $group  = 'dev-leads';
    my %args   = ( name => 'dev-leads', );

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->update_group( $group, %args );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/groups/$group|, 'requsted URL looks sane' );
};

subtest 'delete_group', sub {
    my $client = setup();
    my $group  = 'dev-leads';

    local *{'LWP::UserAgent::delete'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->delete_group($group);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/groups/$group|, 'requsted URL looks sane' );
};

subtest 'get_permission_targets', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_permission_targets();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/permissions|, 'requsted URL looks sane' );
};

subtest 'get_permission_target_details', sub {
    my $client = setup();
    my $name   = 'populateCaches';

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_permission_target_details($name);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/permissions/$name|, 'requsted URL looks sane' );
};

subtest 'create_or_replace_permission_target', sub {
    my $client = setup();
    my $name   = 'populateCaches';
    my %args   = ( name => 'populateCaches', );

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->create_or_replace_permission_target( $name, %args );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/permissions/$name|, 'requsted URL looks sane' );
};

subtest 'delete_permission_target', sub {
    my $client     = setup();
    my $permission = 'populateCaches';

    local *{'LWP::UserAgent::delete'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->delete_permission_target($permission);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/security/permissions/$permission|, 'requsted URL looks sane' );
};

subtest 'effective_item_permissions', sub {
    my $client = setup();
    my $path   = '/foobar';

    local *{'LWP::UserAgent::get'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->effective_item_permissions($path);

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->security_configuration();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/security|, 'requsted URL looks sane' );
};

subtest 'activate_master_key_encryption', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->activate_master_key_encryption();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/encrypt|, 'requsted URL looks sane' );
};

subtest 'deactivate_master_key_encryption', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->deactivate_master_key_encryption();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/decrypt|, 'requsted URL looks sane' );
};

subtest 'set_gpg_public_key', sub {
    my $client = setup();

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->set_gpg_public_key();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/gpg/key/public|, 'requsted URL looks sane' );
};

subtest 'get_gpg_public_key', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->get_gpg_public_key();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/gpg/key/public|, 'requsted URL looks sane' );
};

subtest 'set_gpg_private_key', sub {
    my $client = setup();

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->set_gpg_private_key();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/gpg/key/private|, 'requsted URL looks sane' );
};

subtest 'set_gpg_pass_phrase', sub {
    my $client = setup();

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->set_gpg_pass_phrase('foobar');
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/gpg/key/passphrase|, 'requsted URL looks sane' );
};

subtest 'create_token', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->create_token( username => 'johnq', scope => 'member-of-groups:readers' );
    is( $resp->code, 200, 'create_token' );

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->repository_configuration( $repo, %args );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/repositories/$repo|, 'requsted URL looks sane' );
};

subtest 'create_or_replace_repository_configuration', sub {
    my $client  = setup();
    my $repo    = 'foo';
    my $payload = { key => "local-repo1", };
    my %args    = ( pos => 2, );

    local *{'LWP::UserAgent::put'} = sub {
        return bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->create_or_replace_repository_configuration( $repo, $payload, %args );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/repositories/$repo|, 'requsted URL looks sane' );
};

subtest 'update_repository_configuration', sub {
    my $client  = setup();
    my $repo    = 'foo';
    my $payload = { key => "local-repo1", };

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->update_repository_configuration( $repo, $payload );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/repositories/$repo|, 'requsted URL looks sane' );
};

subtest 'delete_repository', sub {
    my $client = setup();
    my $repo   = 'dist-packages';

    local *{'LWP::UserAgent::delete'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->delete_repository($repo);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/repositories/$repo|, 'requsted URL looks sane' );
};

subtest 'calculate_yum_repository_metadata', sub {
    my $client = setup();
    my %args = ( async => 1, );

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->calculate_yum_repository_metadata(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/yum/$repository\?async=1|, 'requsted URL looks sane' );
};

subtest 'calculate_nuget_repository_metadata', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->calculate_nuget_repository_metadata();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/nuget/$repository/reindex|, 'requsted URL looks sane' );
};

subtest 'calculate_npm_repository_metadata', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->calculate_npm_repository_metadata();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/npm/$repository/reindex|, 'requsted URL looks sane' );
};

subtest 'calculate_maven_index', sub {
    my $client = setup();
    my %args   = (
        repos => [ 'dist-packages', 'foo' ],
        force => 1,
    );

    local *{'LWP::UserAgent::post'} = sub {

t/01_unit.t  view on Meta::CPAN

                          bless( do { \( my $o = "http://example.com:7777/artifactory/api/maven?" ) }, 'URI::http' ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->calculate_maven_index(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/maven?|, 'requsted URL looks sane' );
};

subtest 'calculate_maven_metadata', sub {
    my $client = setup();
    my $path   = '/foo/bar';

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->calculate_maven_metadata($path);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/maven/calculateMetadata|, 'requsted URL looks sane' );
};

subtest 'calculate_debian_repository_metadata', sub {
    my $client = setup();
    my %args = ( async => 1, );

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->calculate_debian_repository_metadata(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/deb/reindex/$repository\?async=1|, 'requsted URL looks sane' );
};

subtest 'calculate_cached_remote_debian_repository_coordinates', sub {
    my $client = setup();
    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->calculate_cached_remote_debian_repository_coordinates('foo');
    is( $resp->code, 200, 'request succeeded' );
};

t/01_unit.t  view on Meta::CPAN

                          bless( do { \( my $o = "http://example.com:7777/artifactory/api/system" ) }, 'URI::http' ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->system_info();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system|, 'requsted URL looks sane' );
};

subtest 'verify_connection', sub {
    my $client = setup();
    my %args   = (
        endpoint => 'http://localhost/foobar',
        username => 'admin',
        password => 'password'
    );
    local *{'LWP::UserAgent::post'} = sub {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->general_configuration();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/configuration|, 'requsted URL looks sane' );
};

subtest 'save_general_configuration', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

            'HTTP::Response'
        );
    };

    local *{'Path::Tiny::slurp'} = sub {

        # no-op, unit test reads no file
    };
    my $resp            = $client->save_general_configuration('test.xml');
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/configuration|, 'requsted URL looks sane' );
};

subtest 'update_custom_url_base', sub {
    my $client = setup();

    local *{'LWP::UserAgent::put'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };

    my $resp            = $client->update_custom_url_base('https://mycompany.com:444/artifactory');
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/configuration/baseUrl|, 'requested URL looks sane' );
};

subtest 'license_information', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->license_information();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/license|, 'requsted URL looks sane' );
};

subtest 'install_license', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->install_license('your_license_key');
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/license|, 'requsted URL looks sane' );
};

subtest 'ha_license_information', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->ha_license_information();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/licenses|, 'requsted URL looks sane' );
};

subtest 'install_ha_cluster_licenses', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp =
      $client->install_ha_cluster_licenses( [ { licenseKey => "foobar" }, { licenseKey => "barbaz" } ] );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/licenses|, 'requsted URL looks sane' );
};

subtest 'delete_ha_cluster_license', sub {
    my $client = setup();

    local *{'LWP::UserAgent::delete'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->delete_ha_cluster_license( 'hash1', 'hash2' );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/system/licenses|, 'requsted URL looks sane' );
};

subtest 'version_and_addons_information', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->version_and_addons_information();
    is( $resp->code, 200, 'request succeeded' );

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->execute_build_promotion(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/plugins/build/promote/promotion1/build1/3|, 'requsted URL looks sane' );
};

subtest 'reload_plugins', sub {
    my $client = setup();

    local *{'LWP::UserAgent::post'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->reload_plugins();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/plugins/reload|, 'requested URL looks sane' );
};

subtest 'import_repository_content', sub {
    my $client = setup();
    my %args   = (
        path     => 'foobar',
        repo     => 'repo',
        metadata => 1,
        verbose  => 0
    );

t/01_unit.t  view on Meta::CPAN

                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };

    my $resp            = $client->import_repository_content(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/import/repositories?|, 'requsted URL looks sane' );
};

subtest 'import_system_settings_example', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->import_system_settings_example();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/import/system|, 'requsted URL looks sane' );
};

subtest 'full_system_import', sub {
    my $client = setup();
    my %args   = (
        importPath      => '/import/path',
        includeMetadata => 'false',
        verbose         => 'false',
        failOnError     => 'true',
        failIfEmpty     => 'true',

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->full_system_import(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/import/system|, 'requsted URL looks sane' );
};

subtest 'export_system_settings_example', sub {
    my $client = setup();

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->export_system_settings_example();
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/export/system|, 'requsted URL looks sane' );
};

subtest 'export_system', sub {
    my $client = setup();
    my %args   = (
        exportPath      => '/export/path',
        includeMetadata => 'true',
        createArchive   => 'false',
        bypassFiltering => 'false',
        verbose         => 'false',

t/01_unit.t  view on Meta::CPAN

                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp            = $client->export_system(%args);
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr|/api/export/system|, 'requsted URL looks sane' );
};

subtest 'ignore_xray_alert', sub {
    my $client = setup();
    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->ignore_xray_alert('/foo');
    is( $resp->code, 200, 'request succeeded' );
};



( run in 0.352 second using v1.01-cache-2.11-cpan-607d282f910 )