Initial admin_users script, with more tests and additions to userstore for modifying...
[scpubgit/stemmatology.git] / t / text_tradition_user.t
index fc06fe0..4a01463 100644 (file)
@@ -13,18 +13,29 @@ my $fh = File::Temp->new();
 my $file = $fh->filename;
 $fh->close;
 my $dsn = "dbi:SQLite:dbname=$file";
-# my $d = KiokuX::Model->new( 'dsn' => $dsn,'extra_args' => { 'create' => 1 } );
 
-my $user_store = Text::Tradition::UserStore->new('dsn' => $dsn,'extra_args' => { 'create' => 1 } );
+my $user_store = Text::Tradition::UserStore->new('dsn' => $dsn,
+                                                 'extra_args' => { 'create' => 1 } );
+
+## passwords
+my $shortpass = 'bloggs';
+ok(!$user_store->validate_password($shortpass), '"bloggs" is too short for a password');
 
 ## create user
-my $new_user = $user_store->add_user('fred', 'bloggs');
+my $new_user = $user_store->add_user({ username => 'fred',
+                                       password => 'bloggspass'});
 isa_ok($new_user, 'Text::Tradition::User');
 
 ## find user
 my $find_user = $user_store->find_user({ username => 'fred'});
 isa_ok($find_user, 'Text::Tradition::User');
-ok($find_user->check_password('bloggs'), 'Stored & retrieved with correct password');
+ok($find_user->check_password('bloggspass'), 'Stored & retrieved with correct password');
+
+## modify user
+my $changed_user = $user_store->modify_user({ username => 'fred',
+                                              password => 'passbloggs' });
+isa_ok($changed_user, 'Text::Tradition::User');
+my $changed = $user_store->find_user({ username => 'fred'});
+ok($changed->check_password('passbloggs'), 'Modified & retrieved with correct new password');