partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 5338129e364fd6c81ed914ebee83980c0f8040fb
parent 8c2c003c6558b9849d8acc5160765e893f8a1c57
Author: Felicitus <felicitus@felicitus.org>
Date:   Sun, 25 Mar 2012 04:39:22 +0200

Added loadByName() + testcase

Diffstat:
Msrc/backend/de/RaumZeitLabor/PartKeepr/User/User.php | 21++++++++++++++++++++-
Atests/User/UserTest.php | 24++++++++++++++++++++++++
2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/src/backend/de/RaumZeitLabor/PartKeepr/User/User.php b/src/backend/de/RaumZeitLabor/PartKeepr/User/User.php @@ -3,7 +3,8 @@ namespace de\RaumZeitLabor\PartKeepr\User; use de\RaumZeitLabor\PartKeepr\Util\Deserializable, de\RaumZeitLabor\PartKeepr\Util\Serializable, - de\RaumZeitLabor\PartKeepr\Util\BaseEntity; + de\RaumZeitLabor\PartKeepr\Util\BaseEntity, + de\RaumZeitLabor\PartKeepr\PartKeepr; /** @Entity @Table(name="PartKeeprUser") */ class User extends BaseEntity implements Serializable, Deserializable { @@ -41,6 +42,7 @@ class User extends BaseEntity implements Serializable, Deserializable { * lowercase a-z characters. * * Replaces space with an underscore. + * Replaces dot with nothing. * * @param string $username The username to set. Applies automatic username modification. * @return nothing @@ -48,6 +50,7 @@ class User extends BaseEntity implements Serializable, Deserializable { public function setUsername ($username) { $username = strtolower($username); $username = str_replace(" ", "_", $username); + $username = str_replace(".", "", $username); $this->username = $username; @@ -178,4 +181,20 @@ class User extends BaseEntity implements Serializable, Deserializable { } } } + + /** + * Loads a user by name. + * + * @param $username string The username to query + * @return User A user object + * @throws Doctrine\ORM\NoResultException If no user was found + */ + public static function loadByName ($username) { + $dql = "SELECT u FROM de\RaumZeitLabor\PartKeepr\User\User u WHERE u.username = :username"; + + $query = PartKeepr::getEM()->createQuery($dql); + $query->setParameter("username", $username); + + return $query->getSingleResult(); + } } \ No newline at end of file diff --git a/tests/User/UserTest.php b/tests/User/UserTest.php @@ -0,0 +1,23 @@ +<?php +namespace de\RaumZeitLabor\PartKeepr\Tests\User; + +use de\RaumZeitLabor\PartKeepr\User\User; + +class UserTest extends \PHPUnit_Framework_TestCase { + protected $backupGlobals = false; + + /** + * Tests if the admin user can be loaded by it's name + */ + public function testloadByName () { + $user = User::loadByName("admin"); + } + + /** + * Tests for an invalid user + * @expectedException Doctrine\ORM\NoResultException + */ + public function testloadByNameException () { + $user = User::loadByName("testloadByNameException"); + } +}+ \ No newline at end of file