--- /dev/null
+<?php
+
+class PdoAdministratorTest extends AlloServeurTest {
+
+ const USERNAME_TEST = "foo";
+ const PASSWORD_TEST = "bar";
+ const EMAIL_TEST = "baz";
+
+ /** @var PdoAdministratorManager */
+ private $pdoAdministratorManager;
+
+ protected function setUp(){
+ parent::setUp();
+ $this->pdoAdministratorManager = new PdoAdministratorManager();
+ }
+
+ private function createAdministrator(){
+ $administrator = new Administrator();
+ $administrator->setUsername(self::USERNAME_TEST);
+ $administrator->setPassword(self::PASSWORD_TEST);
+ $administrator->setEmail(self::EMAIL_TEST);
+ return $this->pdoAdministratorManager->editAdministrator($administrator);
+ }
+
+ public function testCreateAdministrator(){
+ $this->createAdministrator();
+ $administrator = $this->pdoAdministratorManager->getAdministratorByUsername(self::USERNAME_TEST);
+ $this->assertEquals(self::EMAIL_TEST,$administrator->getEmail());
+ }
+
+ public function testEditAdministratorEmpty(){
+ $administrator = new Administrator();
+ $this->setExpectedException("Exception","Le nom d'utilisateur est obligatoire.");
+ $this->pdoAdministratorManager->editAdministrator($administrator);
+ }
+
+ public function testEditAdministatorEmptyPassword(){
+ $administrator = new Administrator();
+ $administrator->username = self::USERNAME_TEST;
+ $this->setExpectedException("Exception","Le mot de passe est obligatoire.");
+ $this->pdoAdministratorManager->editAdministrator($administrator);
+ }
+
+ public function testEditAdministratorUsernameUsed(){
+ $this->createAdministrator();
+ $this->setExpectedException("Exception",self::USERNAME_TEST." est déjà utilisé.");
+ $this->createAdministrator();
+ }
+
+ public function testCheckPassword(){
+ $this->createAdministrator();
+ $this->assertTrue(
+ $this->pdoAdministratorManager->checkPassword(
+ self::USERNAME_TEST,
+ self::PASSWORD_TEST
+ )
+ );
+ }
+
+ public function testUpdate(){
+ $this->createAdministrator();
+ $administator = $this->pdoAdministratorManager->getAdministratorByUsername(self::USERNAME_TEST);
+ $administator->username = "baz";
+ $this->pdoAdministratorManager->editAdministrator($administator);
+ $administator = $this->pdoAdministratorManager->getAdministratorByUsername("baz");
+ $this->assertEquals(self::EMAIL_TEST,$administator->email);
+ }
+
+ public function testGetAdministrator(){
+ $administrator_id = $this->createAdministrator();
+ $administator = $this->pdoAdministratorManager->getAdministrator($administrator_id);
+ $this->assertEquals(self::EMAIL_TEST,$administator->email);
+ }
+
+ public function testGetAdministratorNotExist(){
+ $this->assertEquals('admin',$this->pdoAdministratorManager->getAdministrator(1)->username);
+ }
+
+ public function testGetAdministrators(){
+ $all = $this->pdoAdministratorManager->getAdministrators();
+ $this->assertEquals("eric@sigmalis.com",$all[0]->email);
+ }
+
+ public function testDelete(){
+ $this->pdoAdministratorManager->delete(1);
+ $all = $this->pdoAdministratorManager->getAdministrators();
+ $this->assertEmpty($all);
+ }
+}
\ No newline at end of file