Add failing test
[dbsrgits/DBIx-Class-Fixtures.git] / t / 20-virtual-column.t
diff --git a/t/20-virtual-column.t b/t/20-virtual-column.t
new file mode 100644 (file)
index 0000000..6d8de64
--- /dev/null
@@ -0,0 +1,57 @@
+use DBIx::Class::Fixtures;
+use Test::More;
+use Test::Fatal;
+use File::Path 'rmtree';
+
+use lib qw(t/lib/DBICTest);
+use Schema3;
+use Test::TempDir::Tiny;
+use IO::All;
+
+my $tempdir = tempdir;
+
+(my $schema = Schema3->connect(
+  'DBI:SQLite::memory:','',''))->init_schema;
+
+ok my $row = $schema
+  ->resultset('Person')
+  ->first;
+
+ok $row->get_column('weight_to_height_ratio'),
+    'has virtual column';
+
+my $fixtures = DBIx::Class::Fixtures
+  ->new({
+    config_dir => io->catfile(qw't var configs')->name,
+    debug => 0 });
+
+ok(
+  $fixtures->dump({
+    config => 'virtual-columns.json',
+    schema => $schema,
+    directory => io->catfile($tempdir, 'people')->name }),
+  'fetch dump executed okay');
+
+ok $schema->resultset('Person')->delete;
+
+is exception {
+  $fixtures->populate({
+    no_deploy => 1,
+    schema => $schema,
+    directory => io->catfile($tempdir, 'people')->name
+  })
+}, undef, 'populated';
+
+$row = $schema->resultset('Person')->first;
+
+BAIL_OUT("can't continue without data") unless $row;
+
+ok $row->get_column('weight_to_height_ratio'),
+  'still has virtual column';
+
+done_testing;
+
+END {
+    rmtree io->catfile(qw't var files')->name;
+    rmtree io->catfile($tempdir, 'people')->name;
+}