Amazon-DynamoDB
view release on metacpan or search on metacpan
t/04-batch-get.t view on Meta::CPAN
#!perl
use strict;
use warnings;
use lib ('lib', './t');
use Test::Most;
use Test::Differences;
use Data::Dumper;
use TestSettings;
unless ( $ENV{'AMAZON_DYNAMODB_EXPENSIVE_TESTS'} ) {
plan skip_all => 'Testing this module for real costs money.';
} else {
plan tests => 4869;
}
bail_on_fail;
my $ddb = TestSettings::get_ddb();
my $table_name = TestSettings::random_table_name();
my $create = $ddb->create_table(TableName => $table_name,
ReadCapacityUnits => 2,
WriteCapacityUnits => 2,
AttributeDefinitions => {
user_id => 'N',
},
KeySchema => ['user_id'],
);
ok($create->is_done, "Create request was completed");
my $wait = $ddb->wait_for_table_status(TableName => $table_name);
ok($wait->is_done, "Created table is ready");
my $test_record = {
user_id => 1,
name => "Test User"
};
ok($ddb->put_item(TableName => $table_name,
Item => $test_record,
)->is_done, "Saved test item");
ok($ddb->batch_get_item(
sub {
my ($table, $item) = @_;
is($table, $table_name, "Table name matches for batch get");
is_deeply($test_record, $item, "Retrieved test record successfully");
},
RequestItems => {
$table_name => {
ConsistentRead => 'true',
AttributesToGet => ['user_id', 'name'],
Keys => [
{
user_id => 1,
},
],
}
})->is_done, "Batch get was successfully completed");
( run in 0.827 second using v1.01-cache-2.11-cpan-39bf76dae61 )