Amazon-DynamoDB

 view release on metacpan or  search on metacpan

t/10-presidential-data.t  view on Meta::CPAN

#!perl
use strict;
use warnings;
use lib ('lib', './t');
use Test::Most;
use TestSettings;
use String::Random;
use Data::Dumper;
use JSON::MaybeXS qw(decode_json);


unless ( $ENV{'AMAZON_DYNAMODB_EXPENSIVE_TESTS'} ) {
    plan skip_all => 'Testing this module for real costs money.';
} else {
    plan tests => 107;
}


my $source_data_filename = 'presidents.json';


if (-r "./t/presidents.json") {
    $source_data_filename = "./t/presidents.json";
}
ok(-r $source_data_filename, "Can open $source_data_filename");

my $fh;
open($fh, "<$source_data_filename") || die("Failed to open $source_data_filename");
my $presidents_data;
{
    local $/ = undef;
    $presidents_data = <$fh>;
}
close($fh);

$presidents_data = decode_json($presidents_data);
ok(defined($presidents_data), "presidents.json was successfully read");


my $ddb = TestSettings::get_ddb();
my $table_name = TestSettings::random_table_name();

{
    my @all_tables;    
    ok($ddb->each_table(
        sub {
            my $table_name =shift;
            push @all_tables, $table_name;
        })->is_done, "List tables is complete");
    bail_on_fail;
    is(scalar(grep { $_ eq $table_name } @all_tables), 0, "New table to create does not exist");
}

my $create = $ddb->create_table(TableName => $table_name,
                                ReadCapacityUnits => 2,
                                WriteCapacityUnits => 2,
                                AttributeDefinitions => {
                                    id => 'N',
                                    college => 'S',
                                    age_at_inauguration => 'N',
                                    state_elected_from => 'S',
                                },
                                KeySchema => ['id'],
                                GlobalSecondaryIndexes => [



( run in 0.841 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )