DBIx-CouchLike
view release on metacpan or search on metacpan
t/22_versioning_conflict.t view on Meta::CPAN
# -*- mode:perl -*-
use strict;
use Test::More qw/ no_plan /;
use Test::Requires qw/ DBD::SQLite /;
BEGIN { use_ok 'DBIx::CouchLike' }
my $dbh = require 't/connect.pl';
ok $dbh;
my $couch = DBIx::CouchLike->new({ dbh => $dbh, table => "foo", versioning => 1 });
isa_ok $couch => "DBIx::CouchLike";
ok $couch->can('dbh');
is $couch->dbh => $dbh;
ok $couch->dbh->ping;
ok $couch->versioning;
is $couch->table => "foo";
ok $couch->create_table;
my $id = $couch->post({ foo => 1, bar => 2 });
ok $id;
my $obj = $couch->get($id);
ok $obj;
is_deeply $obj => { foo => 1, bar => 2, _id => $id, _version => 0 };
ok $couch->put({ %$obj, baz => 3 });
eval {
$couch->put($obj);
};
ok $@ && $@ =~ qr/Can't put/;
$obj = $couch->get($id);
is_deeply $obj => { foo => 1, bar => 2, baz => 3, _id => $id, _version => 1 };
ok $couch->put($obj);
$dbh->commit unless $ENV{DSN};
$dbh->disconnect;
( run in 0.795 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )