public function testOnSubmit() { // set default empty data $firstEvent = new CalendarEvent(); $firstEvent->setTitle('1'); $secondEvent = new CalendarEvent(); $secondEvent->setTitle('2'); $parentEvent = new CalendarEvent(); $parentEvent->setTitle('parent title')->setDescription('parent description')->setStart(new \DateTime('now'))->setEnd(new \DateTime('now'))->setAllDay(true); $parentEvent->addChildEvent($firstEvent)->addChildEvent($secondEvent); $form = $this->getMock('Symfony\\Component\\Form\\FormInterface'); $form->expects($this->any())->method('getData')->will($this->returnValue($parentEvent)); // assert default data with default status $this->type->postSubmit(new FormEvent($form, [])); $this->assertEquals(CalendarEvent::ACCEPTED, $parentEvent->getInvitationStatus()); $this->assertEquals(CalendarEvent::NOT_RESPONDED, $firstEvent->getInvitationStatus()); $this->assertEquals(CalendarEvent::NOT_RESPONDED, $secondEvent->getInvitationStatus()); $this->assertEventDataEquals($parentEvent, $firstEvent); $this->assertEventDataEquals($parentEvent, $secondEvent); // modify data $parentEvent->setTitle('modified title')->setDescription('modified description')->setStart(new \DateTime('tomorrow'))->setEnd(new \DateTime('tomorrow'))->setAllDay(false); $parentEvent->setInvitationStatus(CalendarEvent::ACCEPTED); $firstEvent->setInvitationStatus(CalendarEvent::DECLINED); $secondEvent->setInvitationStatus(CalendarEvent::TENTATIVELY_ACCEPTED); // assert modified data $this->type->postSubmit(new FormEvent($form, [])); $this->assertEquals(CalendarEvent::ACCEPTED, $parentEvent->getInvitationStatus()); $this->assertEquals(CalendarEvent::DECLINED, $firstEvent->getInvitationStatus()); $this->assertEquals(CalendarEvent::TENTATIVELY_ACCEPTED, $secondEvent->getInvitationStatus()); $this->assertEventDataEquals($parentEvent, $firstEvent); $this->assertEventDataEquals($parentEvent, $secondEvent); }
public function testGetChildEventByCalendar() { $firstCalendar = new Calendar(); $firstCalendar->setName('1'); $secondCalendar = new Calendar(); $secondCalendar->setName('2'); $firstEvent = new CalendarEvent(); $firstEvent->setTitle('1')->setCalendar($firstCalendar); $secondEvent = new CalendarEvent(); $secondEvent->setTitle('2')->setCalendar($secondCalendar); $masterEvent = new CalendarEvent(); $masterEvent->addChildEvent($firstEvent)->addChildEvent($secondEvent); $this->assertEquals($firstEvent, $masterEvent->getChildEventByCalendar($firstCalendar)); $this->assertEquals($secondEvent, $masterEvent->getChildEventByCalendar($secondCalendar)); $this->assertNull($masterEvent->getChildEventByCalendar(new Calendar())); }
/** * @param CalendarEvent $parentCalendarEvent * @param User $user * @return CalendarEvent */ protected function createChildEvent(CalendarEvent $parentCalendarEvent, User $user) { $userCalendar = $this->getDefaultUserCalendar($user); $childCalendarEvent = new CalendarEvent(); $childCalendarEvent->setStart($parentCalendarEvent->getStart())->setEnd($parentCalendarEvent->getEnd())->setTitle($parentCalendarEvent->getTitle())->setCalendar($userCalendar)->setAllDay(false); $parentCalendarEvent->addChildEvent($childCalendarEvent); return $childCalendarEvent; }