public function testUserRelation() { $userCalendar = new UserCalendar(); $user = new User(); $calendar = new Calendar(); $this->assertCount(0, $user->getUserCalendars(), 'collection is initialized on creation'); $this->assertCount(0, $calendar->getUserCalendars(), 'collection is initialized on creation'); $this->assertCount(0, $calendar->getUsers(), 'collection is initialized on creation'); $userCalendar->setUser($user); $userCalendar->setCalendar($calendar); $this->assertCount(1, $user->getUserCalendars(), 'user must be notified when userCalendar is added'); $this->assertSame($userCalendar, $user->getUserCalendars()->first(), 'original userCalendar can be retrieved from user'); $this->assertCount(1, $calendar->getUserCalendars(), 'calendar must be notified when userCalendar is added'); $this->assertSame($userCalendar, $calendar->getUserCalendars()->first(), 'original userCalendar can be retrieved from calendar'); $this->assertCount(1, $calendar->getUsers(), 'the user must now be the only one directly accessible'); $this->assertSame($user, $calendar->getUsers()->first(), 'the user must be directly accessible'); }
protected function createDefaultRelation(User $user) { $relation = new UserCalendar(); $relation->setUser($user); $relation->setCalendar($this); }