]> Dogcows Code - chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate/blobdiff - t/lib/RunTests.pm
added tests for assigning undef to a many-to-many pseudo rel
[chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate] / t / lib / RunTests.pm
index 5fe46f91b14a8b553d0f4851176639bf480d9736..c5c1c6ab0c6779f7ea23e3ca4620711574fbf575 100644 (file)
@@ -11,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');
@@ -172,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' );
@@ -181,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
This page took 0.020776 seconds and 4 git commands to generate.