version bumped, added kwalitee, removed old "first release" notice from pod
[catagits/Catalyst-Model-DBIC-Schema.git] / t / 05testapp.t
diff --git a/t/05testapp.t b/t/05testapp.t
new file mode 100644 (file)
index 0000000..c431372
--- /dev/null
@@ -0,0 +1,49 @@
+use strict;
+use Test::More;
+use FindBin;
+use File::Spec;
+use File::Find;
+
+plan skip_all => 'Enable this optional test with $ENV{C_M_DBIC_SCHEMA_TESTAPP}'
+    unless $ENV{C_M_DBIC_SCHEMA_TESTAPP};
+
+my $test_params = [
+    [ 'TestSchema', 'DBIC::Schema', '' ],
+    [ 'TestSchemaDSN', 'DBIC::Schema', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
+    [ 'TestSchemaLoader', 'DBIC::SchemaLoader', q{fakedsn fakeuser fakepass '{ AutoCommit => 1 }'} ],
+];
+
+plan tests => (2 * @$test_params);
+
+my $test_dir   = $FindBin::Bin;
+my $blib_dir   = File::Spec->catdir ($test_dir, '..', 'blib', 'lib');
+my $cat_dir    = File::Spec->catdir ($test_dir, 'TestApp');
+my $catlib_dir = File::Spec->catdir ($cat_dir, 'lib');
+my $creator    = File::Spec->catfile($cat_dir, 'script', 'testapp_create.pl');
+my $model_dir  = File::Spec->catdir ($catlib_dir, 'TestApp', 'Model');
+
+chdir($test_dir);
+system("catalyst.pl TestApp");
+chdir($cat_dir);
+
+foreach my $tparam (@$test_params) {
+   my ($model, $helper, $args) = @$tparam;
+   my $model_two = $model;
+   if($helper =~ /Loader/) {
+       $model_two = '';
+   }
+   system("$^X -I$blib_dir $creator model $model $helper $model_two $args");
+   my $model_path = File::Spec->catfile($model_dir, $model . '.pm');
+   ok( -f $model_path, "$model_path is a file" );
+   my $compile_rv = system("$^X -I$blib_dir -I$catlib_dir -c $model_path");
+   ok($compile_rv == 0, "perl -c $model_path");
+}
+
+chdir($test_dir);
+
+sub rm_rf {
+    my $name = $File::Find::name;
+    if(-d $name) { rmdir $name or die "Cannot rmdir $name: $!" }
+    else { unlink $name or die "Cannot unlink $name: $!" }
+}
+finddepth(\&rm_rf, $cat_dir);