commit 5338129e364fd6c81ed914ebee83980c0f8040fb
parent 8c2c003c6558b9849d8acc5160765e893f8a1c57
Author: Felicitus <felicitus@felicitus.org>
Date: Sun, 25 Mar 2012 04:39:22 +0200
Added loadByName() + testcase
Diffstat:
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