Initial admin_users script, with more tests and additions to userstore for modifying...
[scpubgit/stemmatology.git] / t / text_tradition_user.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More 'no_plan';
7 # use KiokuX::Model;
8 use File::Temp;
9
10 use_ok('Text::Tradition::UserStore');
11
12 my $fh = File::Temp->new();
13 my $file = $fh->filename;
14 $fh->close;
15 my $dsn = "dbi:SQLite:dbname=$file";
16
17 my $user_store = Text::Tradition::UserStore->new('dsn' => $dsn,
18                                                  'extra_args' => { 'create' => 1 } );
19
20 ## passwords
21 my $shortpass = 'bloggs';
22 ok(!$user_store->validate_password($shortpass), '"bloggs" is too short for a password');
23
24 ## create user
25 my $new_user = $user_store->add_user({ username => 'fred',
26                                        password => 'bloggspass'});
27 isa_ok($new_user, 'Text::Tradition::User');
28
29 ## find user
30 my $find_user = $user_store->find_user({ username => 'fred'});
31 isa_ok($find_user, 'Text::Tradition::User');
32 ok($find_user->check_password('bloggspass'), 'Stored & retrieved with correct password');
33
34 ## modify user
35 my $changed_user = $user_store->modify_user({ username => 'fred',
36                                               password => 'passbloggs' });
37 isa_ok($changed_user, 'Text::Tradition::User');
38 my $changed = $user_store->find_user({ username => 'fred'});
39 ok($changed->check_password('passbloggs'), 'Modified & retrieved with correct new password');
40
41