pool = new Pool( [ 'regular_price' => 'RegularPrice', 'special_price' => 'SpecialPrice', ] ); $this->saleableItemMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\SaleableInterface'); $this->priceMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\Price\PriceInterface'); $this->factoryMock = $this->getMock('Magento\Framework\Pricing\Price\Factory', [], [], '', false); $this->collection = new Collection( $this->saleableItemMock, $this->factoryMock, $this->pool, $this->quantity ); } /** * Test get method */ public function testGet() { $this->factoryMock->expects($this->once()) ->method('create') ->with( $this->equalTo($this->saleableItemMock), $this->equalTo('RegularPrice'), $this->quantity ) ->will($this->returnValue($this->priceMock)); $this->assertEquals($this->priceMock, $this->collection->get('regular_price')); //Calling the get method again with the same code, cached copy should be used $this->assertEquals($this->priceMock, $this->collection->get('regular_price')); } /** * Test current method */ public function testCurrent() { $this->factoryMock->expects($this->once()) ->method('create') ->with( $this->equalTo($this->saleableItemMock), $this->equalTo($this->pool->current()), $this->quantity ) ->will($this->returnValue($this->priceMock)); $this->assertEquals($this->priceMock, $this->collection->current()); } }