Fix view ordering by requiring ddo declaration in result class
[dbsrgits/DBIx-Class-ResultSource-MultipleTableInheritance.git] / t / 03insert.t
1 use strict;
2 use warnings;
3 use lib 't/lib';
4 use Test::More qw(no_plan);
5 use Test::Exception;
6 use CafeInsertion;
7 use Devel::Dwarn;
8
9 BEGIN {
10     $ENV{DBIC_TRACE} = 0;
11 }
12
13 my ( $dsn, $user, $pass )
14     = @ENV{ map {"DBICTEST_PG_${_}"} qw/DSN USER PASS/ };
15 plan skip_all => <<'EOM' unless $dsn && $user;
16 Set $ENV{DBICTEST_PG_DSN}, _USER and _PASS to run this test
17 ( NOTE: This test drops and creates some tables.')
18 EOM
19
20 my $schema = CafeInsertion->connect( $dsn, $user, $pass );
21 $schema->storage->ensure_connected;
22 $schema->storage->_use_insert_returning(0);
23 $schema->storage->dbh->{Warn} = 0;
24
25 my $dir = "t/sql";    # tempdir(CLEANUP => 0);
26 $schema->create_ddl_dir( ['PostgreSQL'], 0.1, $dir );
27 $schema->deploy( { add_drop_table => 1, add_drop_view => 1 } );
28
29 isa_ok(
30     $schema->source('Sumatra'),
31     'DBIx::Class::ResultSource::View',
32     "My MTI class also"
33 );
34
35 my ( $drink, $drink1 );
36
37 lives_ok {
38     $drink = $schema->resultset('Sumatra')->create(
39         {   sweetness => 4,
40             fat_free  => 1,
41             aroma     => 'earthy',
42             flavor    => 'great'
43         }
44     );
45 }
46 "I can call a create on a view sumatra";
47
48 lives_ok {
49     $drink1 = $schema->resultset('Coffee')->create( { flavor => 'aaight', } );
50 }
51 "I can do it for the other view, too";
52
53 my $sqlt_object = $schema->{sqlt};
54 is_deeply(
55     [ map { $_->name } $sqlt_object->get_views ],
56     [   qw/
57             coffee
58             sumatra
59             /
60     ],
61     "SQLT view order triumphantly matches our order."
62 );
63