* @link https://www.oxidmodule.com */ declare(strict_types=1); namespace D3\DataWizard\tests\unit\Application\Model\Exceptions; use D3\DataWizard\Application\Model\Exceptions\TaskException; use D3\DataWizard\Application\Model\ExportBase; use D3\DataWizard\tests\tools\d3TestExport; use D3\ModCfg\Tests\unit\d3ModCfgUnitTestCase; use Exception; use PHPUnit\Framework\MockObject\MockObject; use ReflectionException; class TaskExceptionTest extends d3ModCfgUnitTestCase { /** @var TaskException */ protected $_oModel; /** * @covers \D3\DataWizard\Application\Model\Exceptions\TaskException::__construct * @test * @throws ReflectionException */ public function canConstruct() { $code = '500'; $exception = oxNew(Exception::class); /** @var ExportBase|MockObject $taskMock */ $taskMock = $this->getMockBuilder(d3TestExport::class) ->onlyMethods(['getTitle']) ->getMock(); $taskMock->expects($this->atLeastOnce())->method('getTitle')->willReturn('testTitle'); /** @var TaskException|MockObject $modelMock */ $modelMock = $this->getMockBuilder(TaskException::class) ->disableOriginalConstructor() ->getMock(); $this->_oModel = $modelMock; $this->callMethod( $this->_oModel, '__construct', [$taskMock, 'testMessage', $code, $exception] ); $this->assertSame( 'testTitle - testMessage', $this->callMethod( $this->_oModel, 'getMessage' ) ); $this->assertEquals( $code, $this->callMethod( $this->_oModel, 'getCode' ) ); $this->assertSame( $exception, $this->callMethod( $this->_oModel, 'getPrevious' ) ); } }