diff options
Diffstat (limited to 't/rest/populate_object.t')
-rw-r--r-- | t/rest/populate_object.t | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/t/rest/populate_object.t b/t/rest/populate_object.t new file mode 100644 index 0000000..b875ad7 --- /dev/null +++ b/t/rest/populate_object.t @@ -0,0 +1,44 @@ +use strict; +use warnings; +use Test::More; + +use JSON; +use HTTP::Response; + +use Net::Riak::Bucket; +use Net::Riak; +use Net::Riak::Object; + +my $client = Net::Riak->new()->client; +my $bucket = Net::Riak::Bucket->new(name => 'foo', client => $client); + +ok my $object = + Net::Riak::Object->new(key => 'bar', bucket => $bucket, client => $client), + 'object bar created'; + +my $response = HTTP::Response->new(400); +$client->http_response($response); + +ok !$object->exists, 'object don\'t exists'; + +eval { + $client->populate_object($object, $response, [200]); +}; + +like $@, qr/Expected status 200, received 400/, "can't populate with a 400"; + +my $value = {value => 1}; + +$response = HTTP::Response->new(200); +$client->http_response($response); +$response->content(JSON::encode_json($value)); + +$client->populate_object($object, $response, [200]); + +ok $object->exists, 'object exists'; + +is_deeply $value, $object->data, 'got same data'; + +is $object->client->status, 200, 'last http code is 200'; + +done_testing; |