Index: events/phpframework/piece_framework/trunk/specs/Phwittr/FollowingSpec.php
===================================================================
--- events/phpframework/piece_framework/trunk/specs/Phwittr/FollowingSpec.php (revision 14355)
+++ events/phpframework/piece_framework/trunk/specs/Phwittr/FollowingSpec.php (revision 14371)
@@ -221,4 +221,146 @@
         try {
             $following = new Phwittr_Following('example');
+        } catch (Phwittr_Following_Exception $e) {
+            return;
+        }
+
+        $this->fail();
+    }
+
+    public function itユーザのリスト化すると、通常は古いユーザからの20件()
+    {
+        $this->_createUserRecord($this->_foo);
+
+        $mapper = Piece_ORM::getMapper('Users');
+        $fooUser = $mapper->findByUserName($this->_foo->userName);
+        $fooFollowing = new Phwittr_Following($fooUser->userName);
+
+        for ($i < 0; $i < 100; ++$i) {
+            $basename = sprintf('user%d', $i);
+
+            $user = new stdClass();
+            $user->userName = $basename;
+            $user->email = "{$basename}@example.com";
+            $user->password = sha1($basename);
+            $user->registrationKey = 1;
+            $id = $this->_createUserRecord($user);
+            $fooFollowing->addFriend($id);
+        }
+
+        $userList = $fooFollowing->listFriends();
+
+        $this->spec(count($userList))->should->be(20);
+
+        $count = 0;
+        foreach ($userList as $user) {
+            $this->spec($user->userName)->should->be("user{$count}");
+            ++$count;
+        }
+    }
+
+    public function it表示されるユーザリスト20件のページが指定できる()
+    {
+        $this->_createUserRecord($this->_foo);
+
+        $mapper = Piece_ORM::getMapper('Users');
+        $fooUser = $mapper->findByUserName($this->_foo->userName);
+        $fooFollowing = new Phwittr_Following($fooUser->userName);
+
+        for ($i < 0; $i < 100; ++$i) {
+            $basename = sprintf('user%d', $i);
+
+            $user = new stdClass();
+            $user->userName = $basename;
+            $user->email = "{$basename}@example.com";
+            $user->password = sha1($basename);
+            $user->registrationKey = 1;
+            $id = $this->_createUserRecord($user);
+            $fooFollowing->addFriend($id);
+        }
+
+        $userList = $fooFollowing->listFriends(3);
+
+        $this->spec(count($userList))->should->be(20);
+
+        $count = 40;
+        foreach ($userList as $user) {
+            $this->spec($user->userName)->should->be("user{$count}");
+            ++$count;
+        }
+    }
+
+    public function itユーザリスト取得直後、次ページがあるかどうかを知れる()
+    {
+        $this->_createUserRecord($this->_foo);
+
+        $mapper = Piece_ORM::getMapper('Users');
+        $fooUser = $mapper->findByUserName($this->_foo->userName);
+        $fooFollowing = new Phwittr_Following($fooUser->userName);
+
+        for ($i < 0; $i < 30; ++$i) {
+            $basename = sprintf('user%d', $i);
+
+            $user = new stdClass();
+            $user->userName = $basename;
+            $user->email = "{$basename}@example.com";
+            $user->password = sha1($basename);
+            $user->registrationKey = 1;
+            $id = $this->_createUserRecord($user);
+            $fooFollowing->addFriend($id);
+        }
+
+        $userList = $fooFollowing->listFriends();
+
+        $this->spec($fooFollowing->hasNextUser())->should->beTrue();
+    }
+
+    public function itユーザリストの最後のページを取得すれば、これ以上古いページはない()
+    {
+        $this->_createUserRecord($this->_foo);
+
+        $mapper = Piece_ORM::getMapper('Users');
+        $fooUser = $mapper->findByUserName($this->_foo->userName);
+        $fooFollowing = new Phwittr_Following($fooUser->userName);
+
+        for ($i < 0; $i < 10; ++$i) {
+            $basename = sprintf('user%d', $i);
+
+            $user = new stdClass();
+            $user->userName = $basename;
+            $user->email = "{$basename}@example.com";
+            $user->password = sha1($basename);
+            $user->registrationKey = 1;
+            $id = $this->_createUserRecord($user);
+            $fooFollowing->addFriend($id);
+        }
+
+        $userList = $fooFollowing->listFriends();
+
+        $this->spec($fooFollowing->hasNextUser())->should->beFalse();
+    }
+
+    public function itユーザリスト取得を行っていなければ、古いページがあるかどうかは知れずに例外が発生する()
+    {
+        $this->_createUserRecord($this->_foo);
+
+        $mapper = Piece_ORM::getMapper('Users');
+        $fooUser = $mapper->findByUserName($this->_foo->userName);
+        $fooFollowing = new Phwittr_Following($fooUser->userName);
+
+        for ($i < 0; $i < 10; ++$i) {
+            $basename = sprintf('user%d', $i);
+
+            $user = new stdClass();
+            $user->userName = $basename;
+            $user->email = "{$basename}@example.com";
+            $user->password = sha1($basename);
+            $user->registrationKey = 1;
+            $id = $this->_createUserRecord($user);
+            $fooFollowing->addFriend($id);
+        }
+
+        try {
+            $fooFollowing->hasNextUser();
+            $status->hasOlderStatus();
         } catch (Phwittr_Following_Exception $e) {
             return;
