Improve POD test and make it author-only
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 40overwrite_modifications.t
index fa079f5..05130f9 100644 (file)
@@ -1,6 +1,7 @@
 use strict;
-use Test::More tests => 3;
+use Test::More;
 use Test::Exception;
+use Test::Warn;
 use lib qw(t/lib);
 use make_dbictest_db;
 
@@ -9,9 +10,11 @@ use File::Spec;
 use File::Temp qw/ tempdir tempfile /;
 
 use DBIx::Class::Schema::Loader;
+use DBIx::Class::Schema::Loader::Utils qw/ slurp_file /;
 
 my $tempdir = tempdir( CLEANUP => 1 );
-my $foopm = File::Spec->catfile( $tempdir, qw| DBICTest Schema Overwrite_modifications Foo.pm |);
+my $foopm = File::Spec->catfile( $tempdir,
+    qw| DBICTest Schema Overwrite_modifications Result Foo.pm |);
 dump_schema();
 
 # check that we dumped
@@ -22,8 +25,8 @@ ok( -f $foopm, 'looks like it dumped' );
     open my $in, '<', $foopm or die "$! reading $foopm";
     my ($tfh,$temp) = tempfile( UNLINK => 1);
     while(<$in>) {
-       s/"bars"/"somethingelse"/;
-       print $tfh $_;
+        s/"bars"/"somethingelse"/;
+        print $tfh $_;
     }
     close $tfh;
     copy( $temp, $foopm );
@@ -39,21 +42,24 @@ lives_ok {
     dump_schema( overwrite_modifications => 1 );
 } 'does not throw when dumping with overwrite_modifications';
 
+
+unlike slurp_file $foopm, qr/"somethingelse"/, "Modifications actually overwritten";
+
 sub dump_schema {
 
     # need to poke _loader_invoked in order to be able to rerun the
     # loader multiple times.
     DBICTest::Schema::Overwrite_modifications->_loader_invoked(0)
-         if @DBICTest::Schema::Overwrite_modifications::ISA;
-
-    local $SIG{__WARN__} = sub {
-        warn @_
-            unless $_[0] =~ /^Dumping manual schema|^Schema dump completed/;
-    };
-    DBIx::Class::Schema::Loader::make_schema_at( 'DBICTest::Schema::Overwrite_modifications',
-                                                { dump_directory => $tempdir,
-                                                  @_,
-                                                },
-                                                [ $make_dbictest_db::dsn ],
-                                              );
+        if @DBICTest::Schema::Overwrite_modifications::ISA;
+
+    my $args = \@_;
+
+    warnings_exist {
+        DBIx::Class::Schema::Loader::make_schema_at( 'DBICTest::Schema::Overwrite_modifications',
+            { dump_directory => $tempdir, @$args },
+            [ $make_dbictest_db::dsn ],
+        );
+    } [qr/^Dumping manual schema/, qr/^Schema dump completed/ ];
 }
+
+done_testing();