/**
  * @return TransactionProxyStrategy
  */
 protected function buildTransactionStrategy()
 {
     $this->transaction = new TransactionSpy();
     $transactionStrategy = new TransactionProxyStrategy();
     $transactionStrategy->setTransaction($this->transaction);
     $this->proxyStrategyBagFactory->setTransactionStrategy($transactionStrategy);
 }
 /**
  * @return ProxyStrategyBagFactoryImpl
  */
 protected function buildProxyStrategyBagFactory()
 {
     $proxyStrategyBagFactory = new ProxyStrategyBagFactoryImpl();
     if (null !== $this->cache) {
         $proxyStrategyBagFactory->setCacheStrategy($this->buildCacheStrategy());
     }
     if (null !== $this->event) {
         $proxyStrategyBagFactory->setEventStrategy($this->buildEventStrategy());
     }
     if (null !== $this->logger) {
         $proxyStrategyBagFactory->setLogStrategy($this->buildLogStrategy());
     }
     if (null !== $this->security) {
         $proxyStrategyBagFactory->setSecurityStrategy($this->buildSecurityStrategy());
     }
     if (null !== $this->transaction) {
         $proxyStrategyBagFactory->setTransactionStrategy($this->buildTransactionStrategy());
     }
     return $proxyStrategyBagFactory;
 }