Suppose I overwrite 'Magento\Sales\Model\Resource\Order\Collection' to 'SR\RewriteSales\Model\Resource\Order\Collection', code looks like
public function addFieldToFilter($field, $condition = null) { // custom condition applied here return parent::addFieldToFilter($field, $condition); }
Now I need some test case for 'AddFieldToFilter' method.
I create a file inside SR\RewriteSales\Test\Unit\Model\Resource\Order\CollectionTest.php code looks like
class CollectionTest extends \PHPUnit_Framework_TestCase { /** * @var Collection|\PHPUnit_Framework_MockObject_MockObject */ protected $collection; /** * @var \Magento\Framework\DB\Select|\PHPUnit_Framework_MockObject_MockObject */ protected $select; protected function setUp() { $this->select = $this->getMockBuilder('Magento\Framework\DB\Select') ->disableOriginalConstructor() ->getMock(); $connection = $this->getMockBuilder('Magento\Framework\DB\Adapter\Pdo\Mysql') ->disableOriginalConstructor() ->getMock(); $connection->expects($this->any()) ->method('select') ->will($this->returnValue($this->select)); $resource = $this->getMockBuilder('Magento\Framework\Model\Resource\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['__wakeup', 'getReadConnection']) ->getMockForAbstractClass(); $resource->expects($this->any()) ->method('getReadConnection') ->will($this->returnValue($connection)); $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $arguments = $objectManagerHelper->getConstructArguments( 'SR\RewriteSales\Model\Resource\Order\Collection', ['resource' => $resource, 'connection' => $connection] ); $this->collection = $this->getMockBuilder('SR\RewriteSales\Model\Resource\Order\Collection') ->setConstructorArgs($arguments) ->setMethods(['addFilter', '_translateCondition', 'getMainTable', '__wakeup']) ->getMock(); } public function testAddFieldToFilter() { } }
It's come following error-> "RuntimeException: ObjectManager isn't initialized".
Is that possible to create some test case for overwrite class?