public function testComposeCompositeProperties() { $entity = new AnnotatedTestEntity(); // set Currency related fields $entity->setExampleCurrencyCode('BTC'); $entity->exampleCurrencyUsingDefaultMapCurrencyCode = 'BTC'; // set Money related fields $entity->setExampleMoneyAmountInteger(321); $entity->exampleMoneyUsingDefaultMapAmountInteger = 312; $entity->setExampleMoneyCurrencyCode('USD'); $entity->exampleMoneyUsingDefaultMapCurrencyCode = 'USD'; // set CurrencyPair related fields $entity->setExampleCurrencyPairFromCurrencyCode('GBP'); $entity->exampleCurrencyPairUsingDefaultMapFromCurrencyCode = 'GBP'; $entity->setExampleCurrencyPairToCurrencyCode('EUR'); $entity->exampleCurrencyPairUsingDefaultMapToCurrencyCode = 'EUR'; // set ExchangeRate related fields $entity->setExampleExchangeRateFromCurrencyCode('MAD'); $entity->exampleExchangeRateUsingDefaultMapFromCurrencyCode = 'MAD'; $entity->setExampleExchangeRateToCurrencyCode('JPY'); $entity->exampleExchangeRateUsingDefaultMapToCurrencyCode = 'JPY'; $entity->setExampleExchangeRateMultiplier(11.75); $entity->exampleExchangeRateUsingDefaultMapMultiplier = 11.75; // process the field mappings $this->compositePropertyService->composeCompositeProperties($entity); // test Currency $btc = $this->currencyManager->getCurrency('BTC'); $this->assertEquals($btc, $entity->getExampleCurrency()); // test Money $usdAmount = $this->currencyManager->getMoney('USD'); $usdAmount->setAmountFloat(3.21); $this->assertEquals($usdAmount, $entity->getExampleMoney()); // test CurrencyPair $gbp = $this->currencyManager->getCurrency('GBP'); $eur = $this->currencyManager->getCurrency('EUR'); $currencyPair = new CurrencyPair($gbp, $eur); $entity->setExampleCurrencyPair($currencyPair); $this->assertEquals($currencyPair, $entity->getExampleCurrencyPair()); // test ExchangeRate $mad = $this->currencyManager->getCurrency('MAD'); $jpy = $this->currencyManager->getCurrency('JPY'); $exchangeRate = new ExchangeRate($mad, $jpy, 11.75); $entity->setExampleExchangeRate($exchangeRate); $this->assertEquals($exchangeRate, $entity->getExampleExchangeRate()); }
public function postLoad(LifecycleEventArgs &$eventArgs) { $entity = $eventArgs->getEntity(); $this->compositePropertyService->composeCompositeProperties($entity); }