X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-DBIx-Class-ResultSet-RecursiveUpdate;a=blobdiff_plain;f=t%2Flib%2FRunTests.pm;h=c5c1c6ab0c6779f7ea23e3ca4620711574fbf575;hp=3dba310caf704abd9953ca0f6d6545f9c5edca3a;hb=64823b9f706cff82cb471b225b7852930862478c;hpb=75bcf6b8626125cd29e1bb4846022f9de080bd70 diff --git a/t/lib/RunTests.pm b/t/lib/RunTests.pm index 3dba310..c5c1c6a 100644 --- a/t/lib/RunTests.pm +++ b/t/lib/RunTests.pm @@ -3,6 +3,7 @@ package RunTests; use Exporter 'import'; # gives you Exporter's import() method directly @EXPORT = qw(run_tests); use strict; +use warnings; use Test::More; use Test::Warn; use DBIx::Class::ResultSet::RecursiveUpdate; @@ -10,7 +11,7 @@ use DBIx::Class::ResultSet::RecursiveUpdate; sub run_tests { my $schema = shift; - plan tests => 51; + plan tests => 53; my $dvd_rs = $schema->resultset('Dvd'); my $user_rs = $schema->resultset('User'); @@ -41,7 +42,7 @@ sub run_tests { } ); - my $u = $user_rs->find( $dvd_rs->find( 1 )->owner->id ); + $u = $user_rs->find( $dvd_rs->find( 1 )->owner->id ); is( $u->username, 'bbb', 'fixed_fields 0.21+ api ok' ); # try to create with a not existing rel @@ -89,7 +90,7 @@ sub run_tests { $updates = { name => 'Test name 2', viewings => [ { user_id => $owner->id } ], - owner => { id => $another_owner->id }, + owner => { id => $another_owner->id }, }; my $new_dvd = $dvd_rs->recursive_update($updates); @@ -104,8 +105,6 @@ sub run_tests { # creating new records $updates = { - - #aaaa => undef, tags => [ '2', { id => '3' } ], name => 'Test name', owner => $owner, @@ -156,10 +155,9 @@ TODO: { my $num_of_users = $user_rs->count; $updates = { id => $dvd->dvd_id, # id instead of dvd_id - #aaaa => undef, name => undef, tags => [], - 'owner' => $another_owner->id, + owner => $another_owner->id, current_borrower => { username => 'new name a', name => 'new name a', @@ -174,7 +172,7 @@ TODO: { is( $schema->resultset('User')->count, $expected_user_count, "No new user created" ); is( $dvd_updated->name, undef, 'Dvd name deleted' ); - is( $dvd_updated->owner->id, $another_owner->id, 'Owner updated' ); + is( $dvd_updated->get_column('owner'), $another_owner->id, 'Owner updated' ); is( $dvd_updated->current_borrower->name, 'new name a', 'Related record modified' ); is( $dvd_updated->tags->count, 0, 'Tags deleted' ); @@ -183,6 +181,11 @@ TODO: { 'might_have record changed' ); + my $dvd_with_tags = $dvd_rs->recursive_update({ id => $dvd->dvd_id, tags => [1, 2] }); + is_deeply( [ map { $_->id } $dvd_with_tags->tags ], [ 1, 2 ], 'Tags set' ); + my $dvd_without_tags = $dvd_rs->recursive_update({ id => $dvd->dvd_id, tags => undef }); + is( $dvd_without_tags->tags->count, 0, 'Tags deleted when m2m accessor set to undef' ); + $new_dvd->update( { name => 'New Test Name' } ); $updates = { id => $new_dvd->dvd_id, # id instead of dvd_id @@ -275,7 +278,7 @@ TODO: { ); is( $user->borrowed_dvds->count, 1, 'if_not_submitted delete' ); - @tags = $schema->resultset('Tag')->search(); + @tags = $schema->resultset('Tag')->all; $dvd_updated = DBIx::Class::ResultSet::RecursiveUpdate::Functions::recursive_update( resultset => $schema->resultset('Dvd'),