Change Tradition comparing to use == (and assume we have the same reference) rather...
[scpubgit/stemmatology.git] / t / text_tradition_user.t
index 62520de..bce5cb1 100644 (file)
@@ -49,6 +49,7 @@ ok($changed->check_password('passbloggs'), 'Modified & retrieved with correct ne
 
     my $d_user = $user_store->deactivate_user({ username => 'testactive' });
     is($d_user->active, 0, 'Deactivated user');
+    is($user_store->find_user({ username => 'testactive' }), undef, 'Deactivated user not returned by find_user');
 
 ## TODO - add test where user has traditions to start with
 }
@@ -59,11 +60,12 @@ ok($changed->check_password('passbloggs'), 'Modified & retrieved with correct ne
 
     my $user = $user_store->add_user({ username => 'testinactive',
                                        password => 'imaninactiveuser' });
-    my $d_user = $user_store->deactivate_user({ username => 'testactive' });
+    my $d_user = $user_store->deactivate_user({ username => 'testinactive' });
     ok(!$d_user->active, 'Deactivate test user starts active');   
     
     my $a_user = $user_store->reactivate_user({ username => 'testinactive' });
     is($a_user->active, 1, 'Re-activated user');
+    ok($user_store->find_user({ username => 'testinactive' }), 'Re-activated user returned by find_user again');
 }
 
 {
@@ -92,11 +94,37 @@ ok($changed->check_password('passbloggs'), 'Modified & retrieved with correct ne
                                        password => 'testingtraditions' });
     $user->add_tradition($t);
     $user_store->update($user);
-#     $userstore->update($t);
 
     is( scalar @{$user->traditions}, 1, 'Added one tradition');
 
-    my @tlist = $user_store->traditionlist($user->kiokudb_object_id);
-    is($tlist[0]->name, $t->name, 'Traditionlist returns stored user->tradition');
+    my @tlist = $user_store->traditionlist($user);
+    is($tlist[0]->{name}, $t->name, 'Traditionlist returns same named user->tradition');
+    is($tlist[0]->{id}, $uuid, 'Traditionlist returns actual tradition with same uuid we put in earlier');
+}
+
+{
+## remove_tradition
+    use Text::Tradition;
+    my $t = Text::Tradition->new( 
+        'name'  => 'inline', 
+        'input' => 'Tabular',
+        'file'  => 't/data/simple.txt',
+       );
+
+    my $uuid = $user_store->save($t);
+    my $user = $user_store->add_user({ username => 'testremove',
+                                       password => 'testingtraditions' });
+    $user->add_tradition($t);
+    $user_store->update($user);
+
+    $user->remove_tradition($t);
+    $user_store->update($user);
+    my $changed_t = $user_store->tradition($uuid);
+
+    is( scalar @{$user->traditions}, 0, 'Added and removed one tradition');
+    ok(!$changed_t->has_user, 'Removed user from tradition');
+
+    my @tlist = $user_store->traditionlist($user);
+    is(scalar @tlist, 0, 'Traditionlist now empty');
 }