Skip to content

Commit 00ce8e6

Browse files
authored
Merge pull request #53 from aligent/feature/add-repository-api-tests
2 parents 172feee + 5b57ac7 commit 00ce8e6

File tree

4 files changed

+96
-34
lines changed

4 files changed

+96
-34
lines changed

Api/Data/AsyncEventSearchResultsInterface.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ interface AsyncEventSearchResultsInterface extends SearchResultsInterface
1111
/**
1212
* Getter for items
1313
*
14-
* @return AsyncEventDisplayInterface[]
14+
* @return \Aligent\AsyncEvents\Api\Data\AsyncEventDisplayInterface[]
1515
*/
1616
public function getItems();
1717

1818
/**
1919
* Setter for items
2020
*
21-
* @param AsyncEventDisplayInterface[] $items
21+
* @param \Aligent\AsyncEvents\Api\Data\AsyncEventDisplayInterface[] $items
2222
* @return $this
2323
*/
2424
public function setItems(array $items);
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
/**
4+
* Aligent Consulting
5+
* Copyright (c) Aligent Consulting (https://www.aligent.com.au)
6+
*/
7+
8+
declare(strict_types=1);
9+
10+
namespace Aligent\AsyncEvents\Test\Api;
11+
12+
use Magento\Framework\Webapi\Rest\Request;
13+
use Magento\TestFramework\TestCase\WebapiAbstract;
14+
15+
class AsyncEventRepositoryTest extends WebapiAbstract
16+
{
17+
/**
18+
* @magentoApiDataFixture Aligent_AsyncEvents::Test/_files/http_async_events.php
19+
*/
20+
public function testGet()
21+
{
22+
$serviceInfo = [
23+
'rest' => [
24+
'resourcePath' => '/V1/async_event/1',
25+
'httpMethod' => Request::HTTP_METHOD_GET,
26+
],
27+
];
28+
29+
$response = $this->_webApiCall($serviceInfo);
30+
31+
$this->assertArrayHasKey('subscription_id', $response);
32+
$this->assertArrayHasKey('event_name', $response);
33+
$this->assertArrayHasKey('recipient_url', $response);
34+
$this->assertArrayHasKey('status', $response);
35+
$this->assertArrayHasKey('subscribed_at', $response);
36+
37+
// Make sure that the verification token is not exposed even if it is encrypted.
38+
$this->assertArrayNotHasKey('verification_token', $response);
39+
}
40+
41+
public function testGetList()
42+
{
43+
$searchCriteria = [
44+
'searchCriteria' => ''
45+
];
46+
47+
$serviceInfo = [
48+
'rest' => [
49+
'resourcePath' => '/V1/async_events' . '?' . http_build_query($searchCriteria),
50+
'httpMethod' => Request::HTTP_METHOD_GET,
51+
],
52+
];
53+
54+
$response = $this->_webApiCall($serviceInfo, $searchCriteria);
55+
56+
$this->assertIsArray($response);
57+
$this->assertArrayHasKey('items', $response);
58+
$this->assertIsArray($response['items'][0]);
59+
60+
$this->assertArrayHasKey('subscription_id', $response['items'][0]);
61+
$this->assertArrayHasKey('event_name', $response['items'][0]);
62+
$this->assertArrayHasKey('recipient_url', $response['items'][0]);
63+
$this->assertArrayHasKey('status', $response['items'][0]);
64+
$this->assertArrayHasKey('subscribed_at', $response['items'][0]);
65+
66+
// Make sure that the verification token is not exposed even if it is encrypted.
67+
$this->assertArrayNotHasKey('verification_token', $response['items'][0]);
68+
}
69+
}

Test/Api/ItWorksTest.php

Lines changed: 0 additions & 32 deletions
This file was deleted.

Test/_files/http_async_events.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
use Aligent\AsyncEvents\Api\Data\AsyncEventInterface;
4+
use Aligent\AsyncEvents\Api\Data\AsyncEventInterfaceFactory;
5+
use Magento\TestFramework\Helper\Bootstrap;
6+
7+
$objectManager = Bootstrap::getObjectManager();
8+
9+
$asyncEventFactory = $objectManager->get(AsyncEventInterfaceFactory::class);
10+
11+
$asyncEventRepository = $objectManager->get(\Aligent\AsyncEvents\Api\AsyncEventRepositoryInterface::class);
12+
13+
/** @var AsyncEventInterface $asyncEvent */
14+
$asyncEvent = $asyncEventFactory->create(
15+
[
16+
'data' => [
17+
'event' => 'example.event',
18+
'recipient_url' => 'http://host.docker.internal:3001/failable',
19+
'verification_token' => 'supersecret',
20+
'status' => 1
21+
]
22+
]
23+
);
24+
$asyncEvent->setEventName('example.event');
25+
$asyncEventRepository->save($asyncEvent);

0 commit comments

Comments
 (0)