public function testbalance_get_list() { $data = array(); $model = new \Model_Client(); $model->loadBean(new \RedBeanPHP\OODBBean()); $serviceMock = $this->getMockBuilder('\\Box\\Mod\\Client\\ServiceBalance')->getMock(); $serviceMock->expects($this->atLeastOnce())->method('getSearchQuery')->will($this->returnValue(array('sql', array()))); $simpleResultArr = array('list' => array(array('id' => 1))); $pagerMock = $this->getMockBuilder('\\Box_Pagination')->disableOriginalConstructor()->getMock(); $pagerMock->expects($this->atLeastOnce())->method('getSimpleResultSet')->will($this->returnValue($simpleResultArr)); $model = new \Model_ClientBalance(); $model->loadBean(new \RedBeanPHP\OODBBean()); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('getExistingModelById')->will($this->returnValue($model)); $di = new \Box_Di(); $di['mod_service'] = $di->protect(function ($name) use($serviceMock) { return $serviceMock; }); $di['pager'] = $pagerMock; $di['db'] = $dbMock; $di['array_get'] = $di->protect(function (array $array, $key, $default = null) use($di) { return isset($array[$key]) ? $array[$key] : $default; }); $client = new \Box\Mod\Client\Api\Client(); $client->setDi($di); $client->setService($serviceMock); $client->setIdentity($model); $result = $client->balance_get_list($data); $this->assertInternalType('array', $result); }
public function testdeductFunds() { $di = new \Box_Di(); $clientBalance = new \Model_ClientBalance(); $clientBalance->loadBean(new \RedBeanPHP\OODBBean()); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('dispense')->with('ClientBalance')->willReturn($clientBalance); $dbMock->expects($this->atLeastOnce())->method('store')->with($clientBalance); $di['db'] = $dbMock; $di['array_get'] = $di->protect(function (array $array, $key, $default = null) use($di) { return isset($array[$key]) ? $array[$key] : $default; }); $service = new \Box\Mod\Client\ServiceBalance(); $service->setDi($di); $clientModel = new \Model_Client(); $clientModel->loadBean(new \RedBeanPHP\OODBBean()); $description = 'Charged for product'; $amount = 5.55; $extra = array('rel_id' => 1); $result = $service->deductFunds($clientModel, $amount, $description, $extra); $this->assertInstanceOf('\\Model_ClientBalance', $result); $this->assertEquals(-$amount, $result->amount); $this->assertEquals($description, $result->description); $this->assertEquals($extra['rel_id'], $result->rel_id); $this->assertEquals('default', $result->type); }
public function testdebitTransaction() { $currency = 'EUR'; $invoiceModel = new \Model_Invoice(); $invoiceModel->loadBean(new \RedBeanPHP\OODBBean()); $invoiceModel->currency = $currency; $clientModdel = new \Model_Client(); $clientModdel->loadBean(new \RedBeanPHP\OODBBean()); $clientModdel->currency = $currency; $transactionModel = new \Model_Transaction(); $transactionModel->loadBean(new \RedBeanPHP\OODBBean()); $transactionModel->amount = 11; $clientBalanceModel = new \Model_ClientBalance(); $clientBalanceModel->loadBean(new \RedBeanPHP\OODBBean()); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('load')->will($this->onConsecutiveCalls($invoiceModel, $clientModdel)); $dbMock->expects($this->atLeastOnce())->method('dispense')->will($this->returnValue($clientBalanceModel)); $dbMock->expects($this->atLeastOnce())->method('store'); $di = new \Box_Di(); $di['db'] = $dbMock; $this->service->setDi($di); $this->service->debitTransaction($transactionModel); }
public function testaddFunds() { $modelClient = new \Model_Client(); $modelClient->loadBean(new \RedBeanPHP\OODBBean()); $modelClient->currency = 'USD'; $model = new \Model_ClientBalance(); $model->loadBean(new \RedBeanPHP\OODBBean()); $amount = '2.22'; $description = 'test description'; $database = $this->getMockBuilder('\\Box_Database')->getMock(); $database->expects($this->atLeastOnce())->method('dispense')->will($this->returnValue($model)); $di = new \Box_Di(); $di['db'] = $database; $di['array_get'] = $di->protect(function (array $array, $key, $default = null) use($di) { return isset($array[$key]) ? $array[$key] : $default; }); $clientService = new \Box\Mod\Client\Service(); $clientService->setDi($di); $result = $clientService->addFunds($modelClient, $amount, $description); $this->assertTrue($result); }
public function testbalance_delete() { $data = array('id' => 1); $model = new \Model_ClientBalance(); $model->loadBean(new \RedBeanPHP\OODBBean()); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('getExistingModelById')->will($this->returnValue($model)); $dbMock->expects($this->atLeastOnce())->method('trash'); $di = new \Box_Di(); $di['db'] = $dbMock; $di['logger'] = new \Box_Log(); $validatorMock = $this->getMockBuilder('\\Box_Validate')->disableOriginalConstructor()->getMock(); $validatorMock->expects($this->atLeastOnce())->method('checkRequiredParamsForArray')->will($this->returnValue(null)); $di['validator'] = $validatorMock; $admin_Client = new \Box\Mod\Client\Api\Admin(); $admin_Client->setDi($di); $result = $admin_Client->balance_delete($data); $this->assertTrue($result); }