/** * @testdox All changes are attributed to a user. * @test */ public function attribution() { // Create two users. $user1 = new \Ormic\Model\User(); $user1->username = '******'; $user1->save(); $this->assertEquals(1, $user1->id); $user2 = new \Ormic\Model\User(); $user2->username = '******'; $user2->save(); $this->assertEquals(2, $user2->id); // Create a record to edit. $book = new Model\Book(); $book->setUser($user1); $book->title = 'Test Book'; $book->save(); // Make sure it was edited by the correct user. $datalog1 = $book->getDatalog(); $this->assertEquals(1, $datalog1[0]->user_id); // Edit the record, and check the new datalog record. $book->setUser($user2); $book->title = 'Test Title'; $book->save(); $datalog2 = $book->getDatalog(); $this->assertEquals(2, $datalog2[0]->user_id); }
/** * A convienient way to get a new User object, for whatever tests need it. * @return \Ormic\Model\User The 'testuser' user. */ public function getTestUser() { $user = \Ormic\Model\User::find(1); if (!$user) { $user = new \Ormic\Model\User(); $user->name = 'Test User'; $user->username = '******'; $user->email = '*****@*****.**'; $user->save(); } return $user; }
/** * @testdox By default, only Administrators can modify data. */ public function permission() { // Set up two users, one admin and one not. The first created user is // always an admin. $admin = new \Ormic\Model\User(); $admin->username = '******'; $admin->save(); $this->assertTrue($admin->isAdmin()); $nonAdmin = new \Ormic\Model\User(); $nonAdmin->username = '******'; $nonAdmin->save(); $this->assertFalse($nonAdmin->isAdmin()); // Start a new model. $book = new Model\Book(); $book->setUser($nonAdmin); $this->assertFalse($book->canEdit()); $book->setUser($admin); $this->assertTrue($book->canEdit()); }