Tag the old version before converting to the new auth. Convert to new auth, add live...
[catagits/Catalyst-Authentication-Store-Htpasswd.git] / t / lib / TestApp / Model / Tangram.pm
diff --git a/t/lib/TestApp/Model/Tangram.pm b/t/lib/TestApp/Model/Tangram.pm
new file mode 100644 (file)
index 0000000..98e26da
--- /dev/null
@@ -0,0 +1,62 @@
+package Users;
+use strict;
+use warnings;
+use base qw/Class::Accessor/;
+
+__PACKAGE__->mk_accessors(qw/username password/);
+
+sub new {
+    my ($class, %p) = @_;
+    bless { %p }, $class;
+}
+
+package TestApp::Model::Tangram;
+use strict;
+use warnings;
+use base qw/Catalyst::Model/;
+use DBI;
+use Tangram::Relational;
+use Tangram::Storage;
+use Tangram::Type::String;
+use Class::C3;
+use File::Temp qw/tempfile/;
+
+BEGIN {
+    __PACKAGE__->mk_accessors(qw/storage schema _sqlite_file/);
+}
+
+sub COMPONENT {
+    my ($class, $app, @rest) = @_;
+    my $self = $class->next::method($app, @rest);
+    my ($fh, $fn) = tempfile;
+    close($fh);
+    $self->{_sqlite_file} = $fn;
+    my @dsn = ("DBI:SQLite:dbname=$fn", '', '');
+    my $dbh = DBI->connect(@dsn);   
+    $self->{schema} = Tangram::Relational->schema( {
+        classes => [
+            Users => {
+                fields => {
+                    string => [qw/username password/],
+                },
+            },
+        ],
+    });
+    Tangram::Relational->deploy($self->schema, $dbh);
+    $dbh->disconnect;
+    $self->{storage} = Tangram::Relational->connect(
+        $self->schema, @dsn
+    );
+    my $test_user = Users->new(username => 'testuser', password => 'testpass');
+    $self->storage->insert($test_user);
+    return $self;
+}
+
+sub DESTROY {
+    my ($self) = @_;
+    $self->storage->disconnect if $self->storage;
+    unlink $self->{_sqlite_file};
+}
+
+1;
+