public function testget_tax_rate() { $client = new \Model_Client(); $client->loadBean(new \RedBeanPHP\OODBBean()); $taxRate = 20; $invoiceTaxService = $this->getMockBuilder('\\Box\\Mod\\Invoice\\ServiceTax')->getMock(); $invoiceTaxService->expects($this->atLeastOnce())->method('getTaxRateForClient')->willReturn($taxRate); $di = new \Box_Di(); $di['mod_service'] = $di->protect(function ($service, $sub) use($invoiceTaxService) { if ($service == 'Invoice' && $sub == 'Tax') { return $invoiceTaxService; } }); $this->api->setDi($di); $this->api->setIdentity($client); $result = $this->api->get_tax_rate(); $this->assertEquals($taxRate, $result); }