Source of file EventInvitationFieldTest.php
Size: 3,166 Bytes - Last Modified: 2021-12-23T10:48:15+00:00
/var/www/docs.ssmods.com/process/src/tests/EventInvitationFieldTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | <?php /** * Tests for the event invitation field and system. * * @package silverstripe-eventmanagement * @subpackage tests */ class EventInvitationFieldTest extends SapphireTest { public static $fixture_file = 'eventmanagement/tests/EventInvitationFieldTest.yml'; /** * @covers EventInvitationField::doInvite() */ public function testDoInvite() { $event = new RegistrableEvent(); $event->write(); $datetime = new RegistrableDateTime(); $datetime->StartDate = date('Y-m-d'); $datetime->EventID = $event->ID; $datetime->write(); $field = new EventInvitationField($datetime, 'Invitations'); $form = new Form( new EventInvitationFieldTest_Controller(), 'Form', new FieldList($field), new FieldList()); $form->loadDataFrom($event); $invite = $field->InviteForm(); $invite->dataFieldByName('Emails')->setValue(array('new' => array( 'Name' => array('First Test', 'Second Test'), 'Email' => array('first@example.com', 'second@example.com') ))); $invite->dataFieldByName('TimeID')->setValue($datetime->ID); $field->doInvite(array(), $invite); $this->assertEmailSent('first@example.com'); $this->assertEmailSent('second@example.com'); $this->clearEmails(); $invite->dataFieldByName('Emails')->setValue(array('new' => array( 'Name' => array('First Test', 'Second Test', 'Third Test'), 'Email' => array('first@example.com', 'second@example.com', 'third@example.com') ))); $field->doInvite(array(), $invite); $this->assertNull($this->findEmail('first@example.com')); $this->assertNull($this->findEmail('second@example.com')); $this->assertEmailSent('third@example.com'); } /** * @covers EventInvitationField::loadfromgroup() */ public function testLoadFromGroup() { $request = new SS_HTTPRequest('GET', null, array( 'GroupID' => $this->idFromFixture('Group', 'group') )); $field = new EventInvitationField(new RegistrableEvent(), 'Invitations'); $response = $field->loadfromgroup($request); $data = Convert::json2array($response->getBody()); $expect = array( (object) array('name' => 'First Member', 'email' => 'first@example.com'), (object) array('name' => 'Second Member', 'email' => 'second@example.com') ); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals($expect, $data); } /** * @covers EventInvitationField::loadfromtime() */ public function testLoadFromDatetime() { $request = new SS_HTTPRequest('GET', null, array( 'PastTimeID' => $this->idFromFixture('Group', 'group') )); $field = new EventInvitationField(new RegistrableEvent(), 'Invitations'); $response = $field->loadfromtime($request); $data = Convert::json2array($response->getBody()); $expect = array( (object) array('name' => 'First Registration', 'email' => 'first@example.com'), (object) array('name' => 'Second Registration', 'email' => 'second@example.com') ); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals($expect, $data); } } /** * @ignore */ class EventInvitationFieldTest_Controller extends RequestHandler { public function Link() { /* nothing */ } } |