Artifactory-Client

 view release on metacpan or  search on metacpan

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


subtest 'promote_docker_image', sub {
    my $client = setup();
    my %data   = (
        targetRepo       => "target_repo",
        dockerRepository => "dockerRepository",
        tag              => "tag",
        copy             => 'false',
    );
    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->promote_docker_image(%data);
    is( $resp->code, 200, 'promote_docker_image succeeded' );
};

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

    local *{'LWP::UserAgent::delete'} = sub {
        return bless(
            {
                '_request' => bless(
                    {
                        '_uri' => bless(
                            do {
                                \( my $o =
'http://example.com:7777/artifactory/api/build/api-test?buildNumbers=1&artifacts=0&deleteAll=0'
                                );
                            },
                            'URI::http'
                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };

    my $resp = $client->delete_builds( name => 'api-test', buildnumbers => [1], artifacts => 0, deleteall => 0 );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr/buildNumbers=1/, 'buildNumbers showed up' );
    like( $url_in_response, qr/artifacts=0/,    'artifacts showed up' );
    like( $url_in_response, qr/deleteAll=0/,    'deleteAll showed up' );
};

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

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->build_rename( 'api-test', 'something' );
    is( $resp->code, 200, 'build_rename succeeded' );
};

subtest 'distribute_build', sub {
    my $client = setup();
    my %info   = (
        gpgPassphrase => 'foobar',
        'targetRepo'  => 'foobar',
    );

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };

    my $resp = $client->distribute_build( 'build_name', 5, %info );
    is( $resp->code, 200, 'distribute_build succeeded' );
};

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

    my %info = (
        deleteBuildArtifacts         => 'true',
        count                        => 2,
        minimumBuildDate             => 1407345768020,
        buildNumbersNotToBeDiscarded => [8],
    );

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };

    my $resp = $client->control_build_retention( 'build_name', %info );
    is( $resp->code, 200, 'control_build_retention succeeded' );
};

subtest 'push_docker_tag_to_bintray', sub {
    my $client = setup();
    my %info   = (
        dockerImage    => 'jfrog/ubuntu:latest',
        bintraySubject => 'shayy',
        bintrayRepo    => 'containers',
        async          => 'false'
    );

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };

    my $resp = $client->push_docker_tag_to_bintray(%info);
    is( $resp->code, 200, 'push_docker_tag_to_bintray_succeeded' );
};

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

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

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

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

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

    my $resp = $client->trace_artifact_retrieval('/unique_path');
    is( $resp->code, 200, 'trace_artifact_retrieval succeeded' );
};

subtest 'archive_entry_download', sub {
    my $client       = setup();
    my $path         = '/unique_path';
    my $archive_path = '/archive_path';

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/repo$path!$archive_path" ) },
                            'URI::http'
                        ),
                    },
                    'HTTP::Request'
                )
            },
            'HTTP::Response'
        );
    };
    my $resp = $client->archive_entry_download( $path, $archive_path );
    my $url_in_response = $resp->request->uri;
    like( $url_in_response, qr/$path!$archive_path/, 'archive_entry_download succeeded' );
};

subtest 'create_directory', sub {
    my $client = setup();
    my $dir    = '/unique_dir/';

    local *{'LWP::UserAgent::request'} = sub {
        return $mock_responses{http_201};
    };
    my $resp = $client->create_directory( path => $dir );
    is( $resp->code, 201, 'create_directory succeeded' );
};

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

    local *{'LWP::UserAgent::request'} = sub {
        return $mock_responses{http_200};
    };

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

        # no-op, unit test reads no file
    };
    my $resp = $client->deploy_artifacts_from_archive( file => "$Bin/data/test.xml", path => '/some_path/test.zip' );
    is( $resp->code, 200, 'deploy_artifacts_from_archive worked' );
};

subtest 'push_a_set_of_artifacts_to_bintray', sub {
    my $client = setup();
    my %info   = (
        descriptor    => 'some_path',
        gpgPassphrase => 'top_secret',
        gpgSign       => 'true'
    );

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };

    my $resp = $client->push_a_set_of_artifacts_to_bintray(%info);
    is( $resp->code, 200, 'push_a_set_of_artifacts_to_bintray' );
};

subtest 'distribute_artifact', sub {
    my $client = setup();
    my %info   = (
        publish       => 'true',
        gpgPassphrase => 'abc',
    );

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };

    my $resp = $client->distribute_artifact(%info);
    is( $resp->code, 200, 'distribute_artifact' );
};

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

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_request' => bless(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/api/compliance/repo/some_path" ) },
                            'URI::http'
                        ),
                    },
                    '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' );
};

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

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

subtest 'request method call', sub {
    my $client = setup();
    my $req = HTTP::Request->new( GET => 'http://www.example.com/' );

    local *{'LWP::UserAgent::request'} = sub {
        return $mock_responses{http_200};

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

                            do { \( my $o = "http://example.com:7777/artifactory/api/system/security" ) }, 'URI::http'
                        ),
                    },
                    '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(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/api/system/encrypt" ) }, 'URI::http'
                        ),
                    },
                    '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(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/api/system/decrypt" ) }, 'URI::http'
                        ),
                    },
                    '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(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/api/gpg/key/public" ) }, 'URI::http'
                        ),
                    },
                    '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(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/api/gpg/key/public" ) }, 'URI::http'
                        ),
                    },
                    '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(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/api/gpg/key/private" ) }, 'URI::http'
                        ),
                    },
                    '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(
                    {
                        '_uri' => bless(
                            do { \( my $o = "http://example.com:7777/artifactory/api/gpg/key/passphrase" ) },
                            'URI::http'
                        ),
                    },
                    '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' );
};

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

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->refresh_token( grant_type => 'refresh_token', refresh_token => 'fgsg53tg' );
    is( $resp->code, 200, 'refresh_token' );
};

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

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->revoke_token( token => 'fgsg53tg' );
    is( $resp->code, 200, 'revoke_token' );
};

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

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

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

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

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

    local *{'LWP::UserAgent::post'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->add_certificate( 'foobar', "$Bin/data/test.xml" );
    is( $resp->code, 200, 'add_certificates' );



( run in 1.035 second using v1.01-cache-2.11-cpan-df04353d9ac )