Artifactory-Client

 view release on metacpan or  search on metacpan

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

            }',
                '_headers' => bless( {}, 'HTTP::Headers' ),
            },
            'HTTP::Response'
        );
    };

    my $resp = $client->item_properties( path => '/unique_path', properties => ['that'] );
    my $scalar = decode_json( $resp->decoded_content );
    is_deeply( $scalar->{properties}, { that => ['one'] }, 'property content is correct' );
};

subtest 'retrieve artifact', sub {
    my $client  = setup();
    my $content = "content of artifact";

    local *{'LWP::UserAgent::get'} = sub {
        return bless(
            {
                '_content' => 'content of artifact',
                '_headers' => bless( {}, 'HTTP::Headers' ),
            },
            'HTTP::Response'
        );
    };

    my $resp = $client->retrieve_artifact('/unique_path');
    is( $resp->decoded_content, $content, 'artifact retrieved successfully' );
};

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

    local *{'LWP::UserAgent::get'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->all_builds();
    is( $resp->is_success, 1, 'fetched all builds' );
};

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

    local *{'LWP::UserAgent::delete'} = sub {
        return $mock_responses{http_204};
    };
    my $resp = $client->delete_item('/unique_path');
    is( $resp->code, 204, 'deleted item' );
};

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

    local *{'LWP::UserAgent::get'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->build_runs('api-test');
    is( $resp->code, 200, 'got build runs' );
};

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

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

    my $json_file = "$Bin/data/test.json";
    my $resp      = $client->build_upload($json_file);
    is( $resp->code, 200, 'got build upload' );
};

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

    local *{'LWP::UserAgent::get'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->build_info( 'api-test', 14 );
    is( $resp->code, 200, 'got build info' );
};

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

    local *{'LWP::UserAgent::get'} = sub {
        return $mock_responses{http_200};
    };
    my $resp = $client->builds_diff( 'api-test', 14, 10 );
    is( $resp->code, 200, 'got builds diff' );
};

subtest 'build_promotion', sub {
    my $client = setup();
    my $payload = { status => "staged", };

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

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'



( run in 0.957 second using v1.01-cache-2.11-cpan-b16cb0d3907 )