/**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage ContainerInterface not injected
  */
 public function testMissingContainer()
 {
     /** @var OnFlushEventArgs|\PHPUnit_Framework_MockObject_MockObject $args */
     $args = $this->getMockBuilder('Doctrine\\ORM\\Event\\OnFlushEventArgs')->disableOriginalConstructor()->getMock();
     $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $uow = $this->getMockBuilder('Doctrine\\ORM\\UnitOfWork')->disableOriginalConstructor()->getMock();
     $args->expects($this->once())->method('getEntityManager')->will($this->returnValue($em));
     $em->expects($this->once())->method('getUnitOfWork')->will($this->returnValue($uow));
     $uow->expects($this->once())->method('getScheduledEntityInsertions')->will($this->returnValue([new \stdClass()]));
     $uow->expects($this->any())->method('getScheduledEntityUpdates')->will($this->returnValue([]));
     $uow->expects($this->any())->method('getScheduledEntityDeletions')->will($this->returnValue([]));
     $treeListener = new OwnerTreeListener();
     $treeListener->addSupportedClass('stdClass');
     $treeListener->onFlush($args);
 }
 /**
  * @dataProvider provider
  */
 public function testOnFlush($inserts, $updates, $deletions, $isExpectedCache)
 {
     $treeProvider = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Owner\\OwnerTreeProvider')->disableOriginalConstructor()->getMock();
     $serviceLink = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\DependencyInjection\\Utils\\ServiceLink')->disableOriginalConstructor()->getMock();
     $serviceLink->expects($this->any())->method('getService')->will($this->returnValue($treeProvider));
     $args = $this->getMockBuilder('Doctrine\\ORM\\Event\\OnFlushEventArgs')->disableOriginalConstructor()->getMock();
     $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $uow = $this->getMockBuilder('Doctrine\\ORM\\UnitOfWork')->disableOriginalConstructor()->getMock();
     $args->expects($this->once())->method('getEntityManager')->will($this->returnValue($em));
     $em->expects($this->once())->method('getUnitOfWork')->will($this->returnValue($uow));
     $uow->expects($this->once())->method('getScheduledEntityInsertions')->will($this->returnValue($inserts));
     $uow->expects($this->any())->method('getScheduledEntityUpdates')->will($this->returnValue($updates));
     $uow->expects($this->any())->method('getScheduledEntityDeletions')->will($this->returnValue($deletions));
     if ($isExpectedCache) {
         $treeProvider->expects($this->once())->method('clear');
     } else {
         $treeProvider->expects($this->never())->method('clear');
     }
     $treeListener = new OwnerTreeListener($serviceLink);
     $treeListener->onFlush($args);
 }