* @copyright 2007-2022 Kjell-Inge Gustafsson, kigkonsult, All rights reserved * @link https://kigkonsult.se * @license Subject matter of licence is the software iCalcreator. * The above copyright, link, package and version notices, * this licence notice and the invariant [rfc5545] PRODID result use * as implemented and invoked in iCalcreator shall be included in * all copies or substantial portions of the iCalcreator. * * iCalcreator is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * iCalcreator is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with iCalcreator. If not, see . */ namespace Kigkonsult\Icalcreator; use PHPUnit\Framework\TestCase; /** * class Prop3Comp2PropTest * * Test (sub-)components to properties */ class Prop3Comp2PropTest extends TestCase { /** * @var string */ private static function getErrMsg( ? string $spec = null, int|string $case, string $testFcn, ? string $inst = null, ? string $method = null ) { static $ERRFMT = "Error %s in case #%s, %s <%s>->%s"; return sprintf( $ERRFMT, ( $spec ?? '' ), $case, $testFcn, $inst, $method ); } /** * Test Vevent::vresourceNames2Resources() etc * * Found in V3component (Vevent, Vtodo) * * @test */ public function vresourceNames2ResourcesTest() : void { $case = 100; $resourceType = 'resource ' . IcalInterface::NAME; $resourceName = 'any ' . IcalInterface::RESOURCE_TYPE; $calendar = new Vcalendar(); $event = $calendar->newVevent(); $vresource = $event->newVresource( $resourceType, $resourceName ); $this->assertTrue( $vresource->isNameSet(), self::getErrMsg( null, $case . '-11-1-name', __FUNCTION__, IcalInterface::VRESOURCE, IcalInterface::NAME ) ); $this->assertSame( $resourceName, $vresource->getName(), self::getErrMsg( null, $case . '-11-2-name', __FUNCTION__, IcalInterface::VRESOURCE, IcalInterface::NAME ) ); $vresource->deleteName(); $this->assertfalse( $vresource->isNameSet(), self::getErrMsg( null, $case . '-11-3-name', __FUNCTION__, IcalInterface::VRESOURCE, IcalInterface::NAME ) ); $vresource->setName( $resourceName ); $this->assertTrue( $vresource->isResourcetypeSet(), self::getErrMsg( null, $case . '-11-4-type', __FUNCTION__, IcalInterface::VRESOURCE, IcalInterface::NAME ) ); $this->assertSame( $resourceType, $vresource->getResourcetype(), self::getErrMsg( null, $case . '-11-5-type', __FUNCTION__, IcalInterface::VRESOURCE, IcalInterface::RESOURCE_TYPE ) ); $this->assertFalse( $event->isResourcesSet(), self::getErrMsg( null, $case . '-11-6-resurces', __FUNCTION__, IcalInterface::VEVENT, IcalInterface::RESOURCES ) ); $event->vresourceNames2Resources(); $this->assertTrue( $event->isResourcesSet(), self::getErrMsg( null, $case . '-11-7-resurces', __FUNCTION__, IcalInterface::VEVENT, IcalInterface::RESOURCES ) ); $resource = $event->getResources( null, true ); $this->assertSame( $resourceName, $resource->getValue(), self::getErrMsg( null, $case . '-11-8-name', __FUNCTION__, IcalInterface::VEVENT, 'vresourceNames2Resources name' ) ); $this->assertSame( $resourceType, $resource->getParams( IcalInterface::X_RESOURCE_TYPE ), self::getErrMsg( null, $case . '-11-9-type', __FUNCTION__, IcalInterface::VEVENT, 'vresourceNames2Resources type' ) ); $this->assertSame( $vresource->getUid(), $resource->getParams( IcalInterface::X_VRESOURCEID ), self::getErrMsg( null, $case . '-11-10-uid', __FUNCTION__, IcalInterface::VEVENT, 'vresourceNames2Resources uid' ) ); } /** * Test Vevent::vlocationNames2Location() etc * * Found in V3component (Vevent, Vtodo) * * @test */ public function vlocationNames2LocationTest() : void { $case = 200; $locationName = 'any ' . IcalInterface::LOCATION; $locationType = 'any ' . IcalInterface::LOCATION_TYPE; $calendar = new Vcalendar(); $event = $calendar->newVevent(); $vlocation = $event->newVlocation( $locationType, $locationName ); $this->assertFalse( $event->isLocationSet(), self::getErrMsg( null, $case . '-12-1-resurces', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $event->vlocationNames2Location(); $this->assertTrue( $event->isLocationSet(), self::getErrMsg( null, $case . '-12-2-resurces', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $location = $event->getLocation( null, true ); $this->assertEquals( $locationName, $location->value, self::getErrMsg( null, $case . '-12-3', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $this->assertTrue( $location->hasXparamKey( IcalInterface::X_VLOCATIONID ), self::getErrMsg( null, $case . '-12-4', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $this->assertEquals( $vlocation->getUid(), $location->getParams( IcalInterface::X_VLOCATIONID ), self::getErrMsg( null, $case . '-12-5', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $this->assertTrue( $location->hasXparamKey( IcalInterface::X_LOCATION_TYPE ), self::getErrMsg( null, $case . '-12-6', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $this->assertEquals( $locationType, $location->getParams( IcalInterface::X_LOCATION_TYPE ), self::getErrMsg( null, $case . '-12-7', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); } /** * Test Vevent::participants2Attendees() etc * * Found in V3component (Vevent, Vtodo), Vfreebusy, Vjournal * * @test */ public function participants2AttendeesTest() : void { $case = 300; $calendarAddress = 'mailto::calendar.address@internet.com'; $calendar = new Vcalendar(); $event = $calendar->newVevent(); $participant = $event->newParticipant( IcalInterface::PARTICIPANT_TYPE, $calendarAddress ); $this->assertFalse( $event->isAttendeeSet(), self::getErrMsg( null, $case . '-13-1-attendee', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $event->participants2Attendees(); $this->assertTrue( $event->isAttendeeSet(), self::getErrMsg( null, $case . '-13-2-attendee', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $attendee = $event->getAttendee( null, true ); $this->assertEquals( $calendarAddress, $attendee->value, self::getErrMsg( null, $case . '-13-2', __FUNCTION__, IcalInterface::VEVENT, 'participants2Attendees' ) ); $this->assertTrue( $attendee->hasXparamKey( IcalInterface::X_PARTICIPANTID ), self::getErrMsg( null, $case . '-13-3', __FUNCTION__, IcalInterface::VEVENT, 'participants2Attendees' ) ); $this->assertEquals( $participant->getUid(), $attendee->getParams( IcalInterface::X_PARTICIPANTID ), self::getErrMsg( null, $case . '-13-4', __FUNCTION__, IcalInterface::VEVENT, 'participants2Attendees' ) ); $this->assertTrue( $attendee->hasXparamKey( IcalInterface::X_PARTICIPANT_TYPE ), self::getErrMsg( null, $case . '-13-5', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); $this->assertEquals( IcalInterface::PARTICIPANT_TYPE, $attendee->getParams( IcalInterface::X_PARTICIPANT_TYPE ), self::getErrMsg( null, $case . '-13-6', __FUNCTION__, IcalInterface::VEVENT, 'vlocationNames2Location' ) ); } }