![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/mageworx/module-open-ai/Test/Unit/ |
<?php namespace MageWorx\OpenAI\Test\Unit; use Magento\Framework\Serialize\Serializer\Json; use MageWorx\OpenAI\Api\Data\QueueProcessInterface; use MageWorx\OpenAI\Api\Data\QueueProcessInterfaceFactory as QueueProcessFactory; use MageWorx\OpenAI\Model\Queue\QueueProcess; use MageWorx\OpenAI\Model\Queue\QueueProcessManagement; use MageWorx\OpenAI\Model\ResourceModel\QueueProcess as QueueProcessResource; use MageWorx\OpenAI\Model\ResourceModel\QueueProcess\Collection as QueueProcessCollection; use MageWorx\OpenAI\Model\ResourceModel\QueueProcess\CollectionFactory as QueueProcessCollectionFactory; use PHPUnit\Framework\TestCase; class QueueProcessManagementTest extends TestCase { protected $queueProcessManagement; protected $queueProcessFactoryMock; protected $queueProcessResourceMock; protected $queueCollectionFactoryMock; protected $jsonSerializerMock; protected function setUp(): void { // Mock dependencies $this->queueProcessFactoryMock = $this->createMock(QueueProcessFactory::class); $this->queueProcessResourceMock = $this->createMock(QueueProcessResource::class); $this->queueCollectionFactoryMock = $this->createMock(QueueProcessCollectionFactory::class); $this->jsonSerializerMock = $this->createMock(Json::class); // Instantiate the class to be tested $this->queueProcessManagement = new QueueProcessManagement( $this->queueProcessFactoryMock, $this->queueProcessResourceMock, $this->queueCollectionFactoryMock, $this->jsonSerializerMock ); } /** * @covers QueueProcessManagement::getExistingProcessByName * * @return void */ public function testGetExistingProcessByName(): void { $processName = 'testProcess'; $processMock = $this->createMock(QueueProcess::class); // Set up the factory to return a new process mock $this->queueProcessFactoryMock->method('create')->willReturn($processMock); $collectionMock = $this->createMock(QueueProcessCollection::class); $this->queueCollectionFactoryMock->method('create')->willReturn($collectionMock); $collectionMock->expects($this->once())->method('addFieldToFilter')->with('name', $processName)->willReturnSelf(); $collectionMock->expects($this->once())->method('setPageSize')->with(1)->willReturnSelf(); $collectionMock->expects($this->once())->method('setCurPage')->with(1)->willReturnSelf(); $collectionMock->method('getSize')->willReturn(1); $collectionMock->method('getFirstItem')->willReturn($processMock); // Execute the method $result = $this->queueProcessManagement->getExistingProcessByName($processName); // Assertions $this->assertInstanceOf(QueueProcessInterface::class, $result); } /** * @covers QueueProcessManagement::registerProcess * * @return void */ public function testRegisterProcess(): void { $processName = 'testProcess'; $processSize = 10; $additionalData = ['key' => 'value']; $encodedData = '{"key":"value"}'; $processMock = $this->createMock(QueueProcess::class); $this->queueProcessFactoryMock->method('create')->willReturn($processMock); $collectionMock = $this->createMock(QueueProcessCollection::class); $this->queueCollectionFactoryMock->method('create')->willReturn($collectionMock); $collectionMock->expects($this->once())->method('addFieldToFilter')->with('name', $processName)->willReturnSelf(); $collectionMock->expects($this->once())->method('setPageSize')->with(1)->willReturnSelf(); $collectionMock->expects($this->once())->method('setCurPage')->with(1)->willReturnSelf(); $collectionMock->method('getSize')->willReturn(0); $collectionMock->method('getFirstItem')->willReturn($processMock); $this->jsonSerializerMock->expects($this->once())->method('serialize')->with($additionalData)->willReturn($encodedData); // No data in empty (new) process entity $processMock->expects($this->once())->method('getAdditionalData')->willReturn(null); // Empty size in empty (new) process entity $processMock->expects($this->once())->method('getSize')->willReturn(0); $processMock->expects($this->once())->method('setName')->with($processName)->willReturnSelf(); $processMock->expects($this->once())->method('setSize')->with($processSize)->willReturnSelf(); $processMock->expects($this->once())->method('setAdditionalData')->with($encodedData)->willReturnSelf(); // Do not update processed items when registering process $processMock->expects($this->never())->method('setProcessed'); $this->queueProcessResourceMock->expects($this->once())->method('save')->with($processMock); // Execute the method $result = $this->queueProcessManagement->registerProcess($processName, $processSize, $additionalData); // Assertions $this->assertInstanceOf(QueueProcessInterface::class, $result); } }