Skip to content

Commit

Permalink
✅ add unit tests for RepresentativeCompanyUserRestApiPermission bundl…
Browse files Browse the repository at this point in the history
…e (#327)

✅ add unit tests for RepresentativeCompanyUserRestApiPermission bundle
  • Loading branch information
julianzimmermann committed Apr 25, 2023
1 parent b21ad55 commit f49ed96
Show file tree
Hide file tree
Showing 6 changed files with 455 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,32 @@
class GatewayController extends AbstractGatewayController
{
/**
* @param \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer $companiesRestApiPermissionRequestTransfer
* @param \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer $representativeCompanyUserRestApiPermissionRequestTransfer
*
* @return \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionResponseTransfer
*/
public function hasPermissionToManageOwnRepresentationsAction(
RepresentativeCompanyUserRestApiPermissionRequestTransfer $companiesRestApiPermissionRequestTransfer
RepresentativeCompanyUserRestApiPermissionRequestTransfer $representativeCompanyUserRestApiPermissionRequestTransfer
): RepresentativeCompanyUserRestApiPermissionResponseTransfer {
return (new RepresentativeCompanyUserRestApiPermissionResponseTransfer())->setHasPermissionToManageOwnRepresentations($this->getRepository()
->hasPermission(
$companiesRestApiPermissionRequestTransfer->getPermissionKey(),
$companiesRestApiPermissionRequestTransfer->getOriginatorReference(),
))->setRequest($companiesRestApiPermissionRequestTransfer);
$representativeCompanyUserRestApiPermissionRequestTransfer->getPermissionKey(),
$representativeCompanyUserRestApiPermissionRequestTransfer->getOriginatorReference(),
))->setRequest($representativeCompanyUserRestApiPermissionRequestTransfer);
}

/**
* @param \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer $companiesRestApiPermissionRequestTransfer
* @param \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer $representativeCompanyUserRestApiPermissionRequestTransfer
*
* @return \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionResponseTransfer
*/
public function hasPermissionToManageGlobalRepresentationsAction(
RepresentativeCompanyUserRestApiPermissionRequestTransfer $companiesRestApiPermissionRequestTransfer
RepresentativeCompanyUserRestApiPermissionRequestTransfer $representativeCompanyUserRestApiPermissionRequestTransfer
): RepresentativeCompanyUserRestApiPermissionResponseTransfer {
return (new RepresentativeCompanyUserRestApiPermissionResponseTransfer())->setHasPermissionToManageGlobalRepresentations($this->getRepository()
->hasPermission(
$companiesRestApiPermissionRequestTransfer->getPermissionKey(),
$companiesRestApiPermissionRequestTransfer->getOriginatorReference(),
))->setRequest($companiesRestApiPermissionRequestTransfer);
$representativeCompanyUserRestApiPermissionRequestTransfer->getPermissionKey(),
$representativeCompanyUserRestApiPermissionRequestTransfer->getOriginatorReference(),
))->setRequest($representativeCompanyUserRestApiPermissionRequestTransfer);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

namespace FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Dependency\Client;

use Codeception\Test\Unit;
use Spryker\Client\ZedRequest\ZedRequestClientInterface;
use Spryker\Shared\Kernel\Transfer\TransferInterface;

class RepresentativeCompanyUserRestApiPermissionToZedRequestClientBridgeTest extends Unit
{
/**
* @var \PHPUnit\Framework\MockObject\MockObject|\Spryker\Client\ZedRequest\ZedRequestClientInterface
*/
protected $zedRequestClientMock;

/**
* @var \PHPUnit\Framework\MockObject\MockObject|\Spryker\Shared\Kernel\Transfer\TransferInterface
*/
protected $transferMock;

/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Dependency\Client\RepresentativeCompanyUserRestApiPermissionToZedRequestBridge
*/
protected $zedRequestClientBridge;

/**
* @return void
*/
protected function _before(): void
{
parent::_before();

$this->zedRequestClientMock = $this->getMockBuilder(ZedRequestClientInterface::class)
->disableOriginalConstructor()
->getMock();

$this->transferMock = $this->getMockBuilder(TransferInterface::class)
->disableOriginalConstructor()
->getMock();

$this->zedRequestClientBridge = new RepresentativeCompanyUserRestApiPermissionToZedRequestBridge(
$this->zedRequestClientMock,
);
}

/**
* @return void
*/
public function testCall(): void
{
$url = 'url';

$this->zedRequestClientMock->expects(static::atLeastOnce())
->method('call')
->with($url, $this->transferMock, null)
->willReturn($this->transferMock);

static::assertEquals(
$this->transferMock,
$this->zedRequestClientBridge->call($url, $this->transferMock),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
<?php

namespace FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission;

use Codeception\Test\Unit;
use FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Zed\RepresentativeCompanyUserRestApiPermissionStubInterface;
use Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer;
use Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionResponseTransfer;

class RepresentativeCompanyUserRestApiPermissionClientTest extends Unit
{
/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\RepresentativeCompanyUserRestApiPermissionFactory|\PHPUnit\Framework\MockObject\MockObject
*/
protected $factoryMock;

/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Zed\RepresentativeCompanyUserRestApiPermissionStubInterface|\PHPUnit\Framework\MockObject\MockObject
*/
protected $zedStubMock;

/**
* @var \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionResponseTransfer|\PHPUnit\Framework\MockObject\MockObject
*/
protected $representativeCompanyUserRestApiPermissionResponseTransferMock;

/**
* @var \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer|\PHPUnit\Framework\MockObject\MockObject
*/
protected $representativeCompanyUserRestApiPermissionRequestTransferMock;

/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\RepresentativeCompanyUserRestApiPermissionClient
*/
protected $client;

/**
* @return void
*/
protected function _before(): void
{
parent::_before();

$this->factoryMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionFactory::class)
->disableOriginalConstructor()
->getMock();

$this->zedStubMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionStubInterface::class)
->disableOriginalConstructor()
->getMock();

$this->representativeCompanyUserRestApiPermissionResponseTransferMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionResponseTransfer::class)
->disableOriginalConstructor()
->getMock();

$this->representativeCompanyUserRestApiPermissionRequestTransferMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionRequestTransfer::class)
->disableOriginalConstructor()
->getMock();

$this->client = new RepresentativeCompanyUserRestApiPermissionClient();
$this->client->setFactory($this->factoryMock);
}

/**
* @return void
*/
public function testHasPermissionToManageGlobalRepresentations(): void
{
$this->factoryMock->expects(static::atLeastOnce())
->method('createRepresentativeCompanyUserRestApiPermissionStub')
->willReturn($this->zedStubMock);

$this->representativeCompanyUserRestApiPermissionResponseTransferMock->expects(static::atLeastOnce())
->method('getHasPermissionToManageGlobalRepresentations')
->willReturn(true);

$this->zedStubMock->expects(static::atLeastOnce())
->method('hasPermissionToManageGlobalRepresentations')
->with($this->representativeCompanyUserRestApiPermissionRequestTransferMock)
->willReturn($this->representativeCompanyUserRestApiPermissionResponseTransferMock);

static::assertTrue(
$this->client->hasPermissionToManageGlobalRepresentations($this->representativeCompanyUserRestApiPermissionRequestTransferMock),
);
}

/**
* @return void
*/
public function testHasPermissionToManageOwnRepresentations(): void
{
$this->factoryMock->expects(static::atLeastOnce())
->method('createRepresentativeCompanyUserRestApiPermissionStub')
->willReturn($this->zedStubMock);

$this->representativeCompanyUserRestApiPermissionResponseTransferMock->expects(static::atLeastOnce())
->method('getHasPermissionToManageOwnRepresentations')
->willReturn(true);

$this->zedStubMock->expects(static::atLeastOnce())
->method('hasPermissionToManageOwnRepresentations')
->with($this->representativeCompanyUserRestApiPermissionRequestTransferMock)
->willReturn($this->representativeCompanyUserRestApiPermissionResponseTransferMock);

static::assertTrue(
$this->client->hasPermissionToManageOwnRepresentations($this->representativeCompanyUserRestApiPermissionRequestTransferMock),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?php

namespace FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission;

use Codeception\Test\Unit;
use FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Dependency\Client\RepresentativeCompanyUserRestApiPermissionToZedRequestInterface;
use FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Zed\RepresentativeCompanyUserRestApiPermissionStub;
use Spryker\Client\Kernel\Container;

class RepresentativeCompanyUserRestApiPermissionFactoryTest extends Unit
{
/**
* @var \PHPUnit\Framework\MockObject\MockObject|\Spryker\Client\Kernel\Container
*/
protected $containerMock;

/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Dependency\Client\RepresentativeCompanyUserRestApiPermissionToZedRequestInterface|\PHPUnit\Framework\MockObject\MockObject
*/
protected $zedRequestClientMock;

/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\RepresentativeCompanyUserRestApiPermissionFactory
*/
protected $factory;

/**
* @return void
*/
protected function _before(): void
{
parent::_before();

$this->containerMock = $this->getMockBuilder(Container::class)
->disableOriginalConstructor()
->getMock();

$this->zedRequestClientMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionToZedRequestInterface::class)
->disableOriginalConstructor()
->getMock();

$this->factory = new RepresentativeCompanyUserRestApiPermissionFactory();
$this->factory->setContainer($this->containerMock);
}

/**
* @return void
*/
public function testCreateZedRepresentativeCompanyUserRestApiPermissionStub(): void
{
$this->containerMock->expects(static::atLeastOnce())
->method('has')
->willReturn(true);

$this->containerMock->expects(static::atLeastOnce())
->method('get')
->with(RepresentativeCompanyUserRestApiPermissionDependencyProvider::CLIENT_ZED_REQUEST)
->willReturn($this->zedRequestClientMock);

static::assertInstanceOf(
RepresentativeCompanyUserRestApiPermissionStub::class,
$this->factory->createRepresentativeCompanyUserRestApiPermissionStub(),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?php

namespace FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Zed;

use Codeception\Test\Unit;
use FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Dependency\Client\RepresentativeCompanyUserRestApiPermissionToZedRequestInterface;
use Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer;
use Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionResponseTransfer;

class RepresentativeCompanyUserRestApiPermissionStubTest extends Unit
{
/**
* @var \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionRequestTransfer|\PHPUnit\Framework\MockObject\MockObject
*/
protected $representativeCompanyUserRestApiPermissionRequestTransferMock;

/**
* @var \Generated\Shared\Transfer\RepresentativeCompanyUserRestApiPermissionResponseTransfer|\PHPUnit\Framework\MockObject\MockObject
*/
protected $representativeCompanyUserRestApiPermissionResponseTransferMock;

/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Dependency\Client\RepresentativeCompanyUserRestApiPermissionToZedRequestInterface|\PHPUnit\Framework\MockObject\MockObject
*/
protected $zedRequestClientMock;

/**
* @var \FondOfOryx\Client\RepresentativeCompanyUserRestApiPermission\Zed\RepresentativeCompanyUserRestApiPermissionStub
*/
protected $stub;

/**
* @return void
*/
protected function _before(): void
{
parent::_before();

$this->representativeCompanyUserRestApiPermissionRequestTransferMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionRequestTransfer::class)
->disableOriginalConstructor()
->getMock();

$this->representativeCompanyUserRestApiPermissionResponseTransferMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionResponseTransfer::class)
->disableOriginalConstructor()
->getMock();

$this->zedRequestClientMock = $this->getMockBuilder(RepresentativeCompanyUserRestApiPermissionToZedRequestInterface::class)
->disableOriginalConstructor()
->getMock();

$this->stub = new RepresentativeCompanyUserRestApiPermissionStub($this->zedRequestClientMock);
}

/**
* @return void
*/
public function testHasPermissionToManageGlobalRepresentations(): void
{
$this->zedRequestClientMock->expects(static::atLeastOnce())
->method('call')
->with(
'/representative-company-user-rest-api-permission/gateway/has-permission-to-manage-global-representations',
$this->representativeCompanyUserRestApiPermissionRequestTransferMock,
)->willReturn($this->representativeCompanyUserRestApiPermissionResponseTransferMock);

static::assertEquals(
$this->representativeCompanyUserRestApiPermissionResponseTransferMock,
$this->stub->hasPermissionToManageGlobalRepresentations($this->representativeCompanyUserRestApiPermissionRequestTransferMock),
);
}

/**
* @return void
*/
public function testHasPermissionToManageOwnRepresentations(): void
{
$this->zedRequestClientMock->expects(static::atLeastOnce())
->method('call')
->with(
'/representative-company-user-rest-api-permission/gateway/has-permission-to-manage-own-representations',
$this->representativeCompanyUserRestApiPermissionRequestTransferMock,
)->willReturn($this->representativeCompanyUserRestApiPermissionResponseTransferMock);

static::assertEquals(
$this->representativeCompanyUserRestApiPermissionResponseTransferMock,
$this->stub->hasPermissionToManageOwnRepresentations($this->representativeCompanyUserRestApiPermissionRequestTransferMock),
);
}
}

0 comments on commit f49ed96

Please sign in to comment.