4 use base qw/Class::Accessor/;
6 __PACKAGE__->mk_accessors(qw/username password/);
13 package TestApp::Model::Tangram;
16 use base qw/Catalyst::Model/;
18 use Tangram::Relational;
20 use Tangram::Type::String;
22 use File::Temp qw/tempfile/;
25 __PACKAGE__->mk_accessors(qw/storage schema _sqlite_file/);
29 my ($class, $app, @rest) = @_;
30 my $self = $class->next::method($app, @rest);
31 my ($fh, $fn) = tempfile;
33 $self->{_sqlite_file} = $fn;
34 my @dsn = ("DBI:SQLite:dbname=$fn", '', '');
35 my $dbh = DBI->connect(@dsn);
36 $self->{schema} = Tangram::Relational->schema( {
40 string => [qw/username password/],
45 Tangram::Relational->deploy($self->schema, $dbh);
47 $self->{storage} = Tangram::Relational->connect(
50 my $test_user = Users->new(username => 'testuser', password => 'testpass');
51 $self->storage->insert($test_user);
57 $self->storage->disconnect if $self->storage;
58 unlink $self->{_sqlite_file};