summary refs log tree commit diff
path: root/t/rest/populate_object.t
diff options
context:
space:
mode:
Diffstat (limited to 't/rest/populate_object.t')
-rw-r--r--t/rest/populate_object.t44
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;