[Bast-commits] r5131 - in DBIx-Class-OptimisticLocking/1.000/trunk: lib/DBIx/Class t

bpphillips at dev.catalyst.perl.org bpphillips at dev.catalyst.perl.org
Fri Nov 14 15:50:27 GMT 2008


Author: bpphillips
Date: 2008-11-14 15:50:27 +0000 (Fri, 14 Nov 2008)
New Revision: 5131

Added:
   DBIx-Class-OptimisticLocking/1.000/trunk/t/08-none.t
Modified:
   DBIx-Class-OptimisticLocking/1.000/trunk/lib/DBIx/Class/OptimisticLocking.pm
   DBIx-Class-OptimisticLocking/1.000/trunk/t/01-dirty.t
   DBIx-Class-OptimisticLocking/1.000/trunk/t/05-version.t
Log:
increasing code coverage of unit tests

Modified: DBIx-Class-OptimisticLocking/1.000/trunk/lib/DBIx/Class/OptimisticLocking.pm
===================================================================
--- DBIx-Class-OptimisticLocking/1.000/trunk/lib/DBIx/Class/OptimisticLocking.pm	2008-11-14 15:25:42 UTC (rev 5130)
+++ DBIx-Class-OptimisticLocking/1.000/trunk/lib/DBIx/Class/OptimisticLocking.pm	2008-11-14 15:50:27 UTC (rev 5131)
@@ -132,7 +132,7 @@
 	my ($column) = $args[0];
 
 	# save off the original if this is the first time the column has been changed
-	if($self->optimistic_locking_strategy && !$self->is_column_changed($column)){
+	if($self->optimistic_locking_strategy ne 'none' && !$self->is_column_changed($column)){
 
             $self->{_opt_locking_orig_values}->{$column} = $self->get_column($column);
 	}
@@ -212,7 +212,6 @@
 		my %orig = $self->_get_original_columns;
 		delete($orig{$_}) foreach(@$ignore_columns);
 		$ident_condition = { %orig, %$ident_condition };
-
 	}
 
 	return $ident_condition;

Modified: DBIx-Class-OptimisticLocking/1.000/trunk/t/01-dirty.t
===================================================================
--- DBIx-Class-OptimisticLocking/1.000/trunk/t/01-dirty.t	2008-11-14 15:25:42 UTC (rev 5130)
+++ DBIx-Class-OptimisticLocking/1.000/trunk/t/01-dirty.t	2008-11-14 15:50:27 UTC (rev 5131)
@@ -7,7 +7,7 @@
     eval "use DBD::SQLite";
     plan $@
       ? ( skip_all => 'needs DBD::SQLite for testing' )
-      : ( tests => 7 );
+      : ( tests => 9 );
 	$DBD::SQLite::sqlite_version; # get rid of warnings
 }
 
@@ -46,3 +46,11 @@
 $r1->col2('b');
 $r1->update;
 is($r1->col2, 'b', "different column updates don't clash");
+
+$r1->discard_changes;
+$DB::single=1;
+$r1->col1('d');
+$r1->col1('e');
+eval { $r1->update };
+ok(!$@, 'no error expected on multiple sets before an update');
+is($r1->col1, 'e', 'second value stored appropriately');

Modified: DBIx-Class-OptimisticLocking/1.000/trunk/t/05-version.t
===================================================================
--- DBIx-Class-OptimisticLocking/1.000/trunk/t/05-version.t	2008-11-14 15:25:42 UTC (rev 5130)
+++ DBIx-Class-OptimisticLocking/1.000/trunk/t/05-version.t	2008-11-14 15:50:27 UTC (rev 5131)
@@ -7,7 +7,7 @@
     eval "use DBD::SQLite";
     plan $@
       ? ( skip_all => 'needs DBD::SQLite for testing' )
-      : ( tests => 11 );
+      : ( tests => 12 );
     $DBD::SQLite::sqlite_version; # get rid of warnings
 }
 
@@ -39,6 +39,10 @@
 
 is($r1->version, 1, 'version incremented');
 
+$r1->update;
+$r1->discard_changes;
+is($r1->version, 1, 'version not incremented when update is not executed');
+
 # fails because $r2's version is behind $r1's version
 eval {$r2->update};
 ok($@,'error expected, version mismatch');

Copied: DBIx-Class-OptimisticLocking/1.000/trunk/t/08-none.t (from rev 5130, DBIx-Class-OptimisticLocking/1.000/trunk/t/01-dirty.t)
===================================================================
--- DBIx-Class-OptimisticLocking/1.000/trunk/t/08-none.t	                        (rev 0)
+++ DBIx-Class-OptimisticLocking/1.000/trunk/t/08-none.t	2008-11-14 15:50:27 UTC (rev 5131)
@@ -0,0 +1,44 @@
+use strict;
+use warnings;
+use Test::More;
+
+
+BEGIN {
+    eval "use DBD::SQLite";
+    plan $@
+      ? ( skip_all => 'needs DBD::SQLite for testing' )
+      : ( tests => 6 );
+    $DBD::SQLite::sqlite_version; # get rid of warnings
+}
+
+use lib 't/lib';
+
+use_ok('DBIx::Class::OptimisticLocking');
+
+use_ok( 'OLTest' );
+
+use_ok( 'OLTest::Schema' );
+
+my $s = OLTest->init_schema();
+
+OLTest::Schema::TestDirty->optimistic_locking_strategy('none');
+is(OLTest::Schema::TestDirty->optimistic_locking_strategy, 'none', 'strategy set to "none"');
+
+my $r1 = $s->resultset('TestDirty')->new({
+	col1 => 'a',
+	col2 => 'a',
+	col3 => 'a'
+});
+$r1->insert;
+$r1->discard_changes;
+
+my $r2 = $s->resultset('TestDirty')->find($r1->id);
+
+$r1->col1('b');
+$r2->col1('c');
+$r1->update;
+eval {$r2->update};
+ok(!$@, 'no error thrown on conflicting update when mode set to "none"');
+$r1->discard_changes;
+
+is($r1->col1, 'c', 'second update succeeded');




More information about the Bast-commits mailing list