public function testLoadPortfolioValues() { $clientRepo = new ClientRepository(); $client = $clientRepo->findClientByEmail('*****@*****.**'); $portfolio = $this->repository->findPortfolioByClient($client); $this->repository->loadPortfolioValues($client); $this->assertEquals('2451038.0', $portfolio->getTotalValue()); $this->assertEquals('699098.0', $portfolio->getTotalInSecurities()); $this->assertEquals('992397.0', $portfolio->getTotalCashInAccounts()); $this->assertEquals('759543.0', $portfolio->getTotalCashInMoneyMarket()); $this->assertEquals('0.0', $portfolio->getSasCash()); $this->assertEquals('0.0', $portfolio->getCashBuffer()); $this->assertEquals('0.0', $portfolio->getBillingCash()); $notExistClient = new Client(); $notExistPortfolio = new Portfolio(); $notExistPortfolio->setId(0); $notExistClient->setPortfolio($notExistPortfolio); $this->repository->loadPortfolioValues($notExistClient); $this->assertNull($notExistPortfolio->getTotalValue()); $this->assertNull($notExistPortfolio->getTotalInSecurities()); $this->assertNull($notExistPortfolio->getTotalCashInAccounts()); $this->assertNull($notExistPortfolio->getTotalCashInMoneyMarket()); $this->assertNull($notExistPortfolio->getSasCash()); $this->assertNull($notExistPortfolio->getCashBuffer()); $this->assertNull($notExistPortfolio->getBillingCash()); }
/** * Find active portfolio by client * * @param Client $client * @return Portfolio|null */ public function findPortfolioByClient(Client $client) { $sql = "SELECT cp.portfolio_id as id FROM {$this->table} cp\n WHERE cp.is_active = :isActive AND cp.client_id = :clientId"; $parameters = array('isActive' => true, 'clientId' => $client->getId()); $result = $this->db->query($sql, $parameters); $collection = $this->bindCollection($result); $portfolio = $collection->first(); if ($portfolio) { $client->setPortfolio($portfolio); return $portfolio; } return null; }
public function testLotOrderForMuni() { $positions = array(array('client_system_account_id' => 222, 'muni_id' => 78, 'security_id' => 22222), array('client_system_account_id' => 333, 'muni_id' => null, 'security_id' => 33333)); /** @var LotRepository $mockRepository */ $mockRepository = $this->getMockBuilder('Model\\WealthbotRebalancer\\Repository\\LotRepository')->disableOriginalConstructor()->setMethods(array('getPositionsByPortfolio', 'getLastPositionLots'))->getMock(); $mockRepository->expects($this->any())->method('getPositionsByPortfolio')->will($this->returnValue($positions)); $mockRepository->expects($this->any())->method('getLastPositionLots')->will($this->returnCallback(function (Portfolio $portfolio, $securityId, $clientSystemAccountId, $isMuni = false) { $lotCollection = new LotCollection(); $lot = new Lot(); $lot->setIsMuni($isMuni); $lotCollection->add($lot); return $lotCollection; })); $mockRepository->expects($this->any())->method('findLotsByAccountAndSecurity')->will($this->returnCallback(function (Portfolio $portfolio, $securityId, $clientSystemAccountId, $isMuni = false) { $lotCollection = new LotCollection(); $lot = new Lot(); $lot->setIsMuni($isMuni); $lotCollection->add($lot); return $lotCollection; })); $lotCollection = $mockRepository->findLotsBySubclass(new Portfolio(), new Subclass(), new Account()); $lot1 = $lotCollection->first(); $this->assertFalse($lot1->getIsMuni()); $lot2 = $lotCollection->next(); $this->assertTrue($lot2->getIsMuni()); $lot3 = $lotCollection->next(); $this->assertFalse($lot3->getIsMuni()); //-------------------------------------------------------------------------------------------------------------/ $account = new Account(); $client = new Client(); $client->setPortfolio(new Portfolio()); $account->setClient($client); $lotCollection = $mockRepository->findLotsByAccountAndSecurity($account, new Security()); $lot1 = $lotCollection->first(); $this->assertFalse($lot1->getIsMuni()); $lot2 = $lotCollection->next(); $this->assertTrue($lot2->getIsMuni()); $lot3 = $lotCollection->next(); $this->assertFalse($lot3->getIsMuni()); }