Release 0.02
[dbsrgits/DBIx-Class-ResultSource-MultipleTableInheritance.git] / t / 04no_sequence_defined.t
1 use strict;
2 use warnings;
3 use lib 't/lib';
4 use Test::More tests => 5;
5 use Test::Exception;
6 use NoSequenceSalad;
7
8 BEGIN {
9     $ENV{DBIC_TRACE} = 0;
10 }
11 my ( $dsn, $user, $pass )
12     = @ENV{ map {"DBICTEST_PG_${_}"} qw/DSN USER PASS/ };
13
14 plan skip_all => <<'EOM' unless $dsn && $user;
15 Set $ENV{DBICTEST_PG_DSN}, _USER and _PASS to run this test
16 ( NOTE: This test drops and creates some tables.')
17 EOM
18
19 my $schema = NoSequenceSalad->connect( $dsn, $user, $pass );
20 $schema->storage->ensure_connected;
21 $schema->storage->dbh->{Warn} = 0;
22 $schema->storage->_use_insert_returning(0);
23
24 my $dir = "t/sql";    # tempdir(CLEANUP => 0);
25 $schema->create_ddl_dir( ['PostgreSQL'], 0.1, $dir );
26
27 lives_ok { $schema->deploy( { add_drop_table => 1, add_drop_view => 1 } ) }
28 "I can deploy the schema";
29
30 isa_ok(
31     $schema->source('Mesclun'),
32     'DBIx::Class::ResultSource::View',
33     "My MTI class also"
34 );
35
36 my ( $bowl_of_salad, $bowl_of_salad1 );
37
38 lives_ok {
39     $bowl_of_salad = $schema->resultset('Mesclun')
40         ->create( { acidity => 4, spiciness => '10', fresh => 0, } );
41 }
42 "I can call a create on a view mesclun";
43
44 lives_ok {
45     $bowl_of_salad1 = $schema->resultset('Salad')->create( { fresh => 1 } );
46 }
47 "I can do it for the other view, too";
48
49 my $sqlt_object = $schema->{sqlt};
50
51 is_deeply(
52     [ map { $_->name } $sqlt_object->get_views ],
53     [   qw/
54             salad
55             mesclun
56             /
57     ],
58     "SQLT view order triumphantly matches our order."
59 );