InvoiceTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Test\Unit\Model\Order\Pdf;
  7. class InvoiceTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Sales\Model\Order\Pdf\Invoice
  11. */
  12. protected $_model;
  13. /**
  14. * @var \Magento\Sales\Model\Order\Pdf\Config|\PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $_pdfConfigMock;
  17. protected function setUp()
  18. {
  19. $this->_pdfConfigMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Pdf\Config::class)
  20. ->disableOriginalConstructor()
  21. ->getMock();
  22. $directoryMock = $this->createMock(\Magento\Framework\Filesystem\Directory\Write::class);
  23. $directoryMock->expects($this->any())->method('getAbsolutePath')->will(
  24. $this->returnCallback(
  25. function ($argument) {
  26. return BP . '/' . $argument;
  27. }
  28. )
  29. );
  30. $filesystemMock = $this->createMock(\Magento\Framework\Filesystem::class);
  31. $filesystemMock->expects($this->any())->method('getDirectoryRead')->will($this->returnValue($directoryMock));
  32. $filesystemMock->expects($this->any())->method('getDirectoryWrite')->will($this->returnValue($directoryMock));
  33. $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  34. $this->_model = $helper->getObject(
  35. \Magento\Sales\Model\Order\Pdf\Invoice::class,
  36. [
  37. 'filesystem' => $filesystemMock,
  38. 'pdfConfig' => $this->_pdfConfigMock,
  39. ]
  40. );
  41. }
  42. public function testGetPdfInitRenderer()
  43. {
  44. $this->_pdfConfigMock->expects(
  45. $this->once()
  46. )->method(
  47. 'getRenderersPerProduct'
  48. )->with(
  49. 'invoice'
  50. )->will(
  51. $this->returnValue(
  52. [
  53. 'product_type_one' => 'Renderer_Type_One_Product_One',
  54. 'product_type_two' => 'Renderer_Type_One_Product_Two',
  55. ]
  56. )
  57. );
  58. $this->_model->getPdf([]);
  59. $renderers = new \ReflectionProperty($this->_model, '_renderers');
  60. $renderers->setAccessible(true);
  61. $this->assertSame(
  62. [
  63. 'product_type_one' => ['model' => 'Renderer_Type_One_Product_One', 'renderer' => null],
  64. 'product_type_two' => ['model' => 'Renderer_Type_One_Product_Two', 'renderer' => null],
  65. ],
  66. $renderers->getValue($this->_model)
  67. );
  68. }
  69. }