Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Description of User
- *
- * @author jon
- */
- class Model_User
- {
- protected static $users = array();
- public static function getUsers()
- {
- return self::$users;
- }
- public static function create($username , $password)
- {
- self::$users[$username] = $password;
- }
- public static function findByUsername($username)
- {
- if (array_key_exists($username, self::$users))
- {
- $user = new self();
- $user->username = $username;
- $user->password = self::$users[$username];
- return $user;
- }
- return false;
- }
- public $username;
- public $password;
- public function save()
- {
- self::$users[$this->username] = $this->password;
- }
- public function delete()
- {
- if (array_key_exists($this->username, self::$users))
- {
- unset(self::$users[$this->username]);
- }
- }
- }
- /**
- * Description of UserTest
- *
- * @author jon
- */
- class Model_UserTest
- extends PHPUnit_Framework_TestCase
- {
- private $username = 'jon';
- private $password = 'abc123';
- public function testUserModel()
- {
- $u = new Model_User();
- $this->assertType('Model_User',$u);
- }
- public function testCanCreateUsers()
- {
- Model_User::create($this->username, $this->password);
- $this->assertArrayHasKey($this->username, Model_User::getUsers());
- $u = new Model_User();
- $u->username = 'myuser';
- $u->password = 'mypass';
- $u->save();
- $foundUser = Model_User::findByUsername('myuser');
- $this->assertType('Model_User', $foundUser);
- }
- public function testCanFindByUsername()
- {
- Model_User::create($this->username, $this->password);
- $user = Model_User::findByUsername($this->username);
- $this->assertType('Model_User', $user);
- $this->assertEquals($user->password, $this->password);
- $user->delete();
- $user = Model_User::findByUsername($this->username);
- $this->assertFalse($user);
- }
- public function testCanDetectUserNotFound()
- {
- $user = Model_User::findByUsername($this->username);
- $this->assertFalse($user);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement