mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-29 02:53:50 +00:00
94 lines
3.3 KiB
PHP
94 lines
3.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Chill is a software for social workers.
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
/*
|
|
* Chill is a software for social workers
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Chill\CalendarBundle\Tests\Controller;
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
|
use Symfony\Component\Messenger\Transport\InMemoryTransport;
|
|
|
|
/**
|
|
* @internal
|
|
*
|
|
* @coversNothing
|
|
*/
|
|
final class RemoteCalendarMSGraphSyncControllerTest extends WebTestCase
|
|
{
|
|
private const SAMPLE_BODY = <<<'JSON'
|
|
{
|
|
"value": [
|
|
{
|
|
"subscriptionId": "739703eb-80c4-4c03-b15a-ca370f19624b",
|
|
"subscriptionExpirationDateTime": "2022-06-09T02:40:28-07:00",
|
|
"changeType": "updated",
|
|
"resource": "Users/4feb0ae3-7ffb-48dd-891e-c86b2cdeefd4/Events/AAMkADM1MTdlMGIzLTZhZWUtNDQ0ZC05Y2M4LWViMjhmOWJlMDhhMQBGAAAAAAA5e3965gkBSLcU1p00sMSyBwAHduaxajFfTpv0kchk_m1FAAAAAAENAAAHduaxajFfTpv0kchk_m1FAAAl1BupAAA=",
|
|
"resourceData": {
|
|
"@odata.type": "#Microsoft.Graph.Event",
|
|
"@odata.id": "Users/4feb0ae3-7ffb-48dd-891e-c86b2cdeefd4/Events/AAMkADM1MTdlMGIzLTZhZWUtNDQ0ZC05Y2M4LWViMjhmOWJlMDhhMQBGAAAAAAA5e3965gkBSLcU1p00sMSyBwAHduaxajFfTpv0kchk_m1FAAAAAAENAAAHduaxajFfTpv0kchk_m1FAAAl1BupAAA=",
|
|
"@odata.etag": "W/\"DwAAABYAAAAHduaxajFfTpv0kchk+m1FAAAlyzAU\"",
|
|
"id": "AAMkADM1MTdlMGIzLTZhZWUtNDQ0ZC05Y2M4LWViMjhmOWJlMDhhMQBGAAAAAAA5e3965gkBSLcU1p00sMSyBwAHduaxajFfTpv0kchk_m1FAAAAAAENAAAHduaxajFfTpv0kchk_m1FAAAl1BupAAA="
|
|
},
|
|
"clientState": "2k05qlr3ds2KzvUP3Ps4A+642fYaI8ThxHGIGbNr2p0MnNkmzxLTNEMxpMc/UEuDkBHfID7OYWj4DQc94vlEkPBdsh9sGTTkHxIE68hqkKkDKhwvfvdj6lS6Dus=",
|
|
"tenantId": "421bf216-3f48-47bd-a7cf-8b1995cb24bd"
|
|
}
|
|
]
|
|
}
|
|
JSON;
|
|
|
|
protected function tearDown(): void
|
|
{
|
|
self::ensureKernelShutdown();
|
|
}
|
|
|
|
public function testSendNotification(): void
|
|
{
|
|
$client = self::createClient();
|
|
$client->request(
|
|
'POST',
|
|
'/public/incoming-hook/calendar/msgraph/events/23',
|
|
[],
|
|
[],
|
|
[],
|
|
self::SAMPLE_BODY
|
|
);
|
|
|
|
$this->assertResponseIsSuccessful();
|
|
$this->assertResponseStatusCodeSame(202);
|
|
|
|
/** @var InMemoryTransport $transport */
|
|
$transport = self::$container->get('messenger.transport.async');
|
|
$this->assertCount(1, $transport->getSent());
|
|
}
|
|
|
|
public function testValidateSubscription(): void
|
|
{
|
|
$client = self::createClient();
|
|
$client->request(
|
|
'POST',
|
|
'/public/incoming-hook/calendar/msgraph/events/23?validationToken=something%20to%20decode'
|
|
);
|
|
|
|
$this->assertResponseIsSuccessful();
|
|
|
|
$response = $client->getResponse();
|
|
|
|
$this->assertResponseHasHeader('Content-Type');
|
|
$this->assertStringContainsString('text/plain', $response->headers->get('Content-Type'));
|
|
$this->assertEquals('something to decode', $response->getContent());
|
|
}
|
|
}
|