public function testGetDeleteMessageTextForDataGrid()
 {
     $paymentTermId = 1;
     $paymentTermRepository = $this->getMockBuilder('OroB2B\\Bundle\\PaymentBundle\\Entity\\Repository\\PaymentTermRepository')->disableOriginalConstructor()->getMock();
     $paymentTermRepository->expects($this->once())->method('find')->with($paymentTermId)->willReturnCallback(function ($id) {
         return new PaymentTermStub($id);
     });
     $om = $this->getMock('\\Doctrine\\Common\\Persistence\\ObjectManager');
     $om->expects($this->once())->method('getRepository')->with($this->equalTo('OroB2BPaymentBundle:PaymentTerm'))->willReturn($paymentTermRepository);
     $this->managerRegistry->expects($this->once())->method('getManagerForClass')->with($this->equalTo('OroB2BPaymentBundle:PaymentTerm'))->willReturn($om);
     $message = $this->extension->getDeleteMessageTextForDataGrid($paymentTermId);
     $this->assertDeleteMessage($message, $paymentTermId, 0, 0);
 }
 /**
  * @dataProvider createTreeDataProvider
  * @param Page[] $pages
  * @param array $expected
  */
 public function testCreateTree($pages, array $expected)
 {
     $this->managerRegistry->expects($this->any())->method('getRepository')->with('OroB2BCMSBundle:Page')->willReturn($this->repository);
     $this->repository->expects($this->any())->method('getChildren')->with(null, false, 'left', 'ASC')->willReturn($pages);
     $result = $this->pageTreeHandler->createTree();
     $this->assertEquals($expected, $result);
 }
 protected function prepareEmMock()
 {
     $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $metadata = $this->getMockBuilder('Doctrine\\ORM\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock();
     $repo = $this->getMockBuilder('Doctrine\\ORM\\EntityRepository')->disableOriginalConstructor()->getMock();
     $entity = new Integration();
     $entity->setName(self::TEST_NAME);
     $entity->setType(self::TEST_TYPE);
     $this->registry->expects($this->once())->method('getManagerForClass')->with($this->equalTo($this->testEntityName))->will($this->returnValue($em));
     $em->expects($this->once())->method('getClassMetadata')->with($this->equalTo($this->testEntityName))->will($this->returnValue($metadata));
     $metadata->expects($this->once())->method('getSingleIdentifierFieldName')->will($this->returnValue(self::TEST_ID_FIELD_NAME));
     $em->expects($this->once())->method('getRepository')->with($this->equalTo($this->testEntityName))->will($this->returnValue($repo));
     $repo->expects($this->once())->method('find')->with($this->equalTo(self::TEST_ID))->will($this->returnValue($entity));
 }
 /**
  * @SuppressWarnings(PHPMD.NPathComplexity)
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  *
  * @param array $config
  */
 protected function prepare($config)
 {
     $metadata = [];
     $fieldConfigs = [];
     foreach ($config as $entityClassName => $entityData) {
         $entityMetadata = $this->getMockBuilder('Doctrine\\ORM\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock();
         $entityMetadata->expects($this->any())->method('getName')->will($this->returnValue($entityClassName));
         $metadata[$entityClassName] = $entityMetadata;
         $fieldNames = [];
         $fieldTypes = [];
         $fieldIdentifiers = [];
         $configs = [];
         foreach ($entityData['fields'] as $fieldName => $fieldData) {
             $fieldNames[] = $fieldName;
             $fieldTypes[] = [$fieldName, $fieldData['type']];
             $fieldIdentifiers[] = [$fieldName, isset($fieldData['identifier']) ? $fieldData['identifier'] : false];
             $configId = new FieldConfigId('extend', $entityClassName, $fieldName, $fieldData['type']);
             $configs[] = new Config($configId);
         }
         $fieldConfigs[$entityClassName] = $configs;
         $entityMetadata->expects($this->any())->method('getFieldNames')->will($this->returnValue($fieldNames));
         $entityMetadata->expects($this->any())->method('hasField')->willReturnCallback(function ($name) use($fieldNames) {
             return in_array($name, $fieldNames, true);
         });
         $entityMetadata->expects($this->any())->method('isIdentifier')->will($this->returnValueMap($fieldIdentifiers));
         $relNames = [];
         $mappings = [];
         if (isset($entityData['relations'])) {
             $relTargetClasses = [];
             foreach ($entityData['relations'] as $relName => $relData) {
                 $type = $relData['type'];
                 $relTargetClass = $relData['target_class'];
                 if ($type === 'ref-one') {
                     $mappings[$relName] = $relData;
                 }
                 $fieldTypes[] = [$relName, $type];
                 $relNames[] = $relName;
                 $relTargetClasses[] = [$relName, $relTargetClass];
             }
             $entityMetadata->expects($this->any())->method('getAssociationTargetClass')->will($this->returnValueMap($relTargetClasses));
             $entityMetadata->expects($this->any())->method('getAssociationMappedByTargetField')->will($this->returnValue('id'));
         }
         $entityMetadata->expects($this->any())->method('getAssociationNames')->will($this->returnValue($relNames));
         $entityMetadata->expects($this->any())->method('hasAssociation')->willReturnCallback(function ($name) use($relNames) {
             return in_array($name, $relNames, true);
         });
         if (isset($entityData['unidirectional_relations'])) {
             foreach ($entityData['unidirectional_relations'] as $relName => $relData) {
                 $fieldTypes[] = [$relName, $relData['type']];
                 $relData['fieldName'] = $relName;
                 $relData['isOwningSide'] = true;
                 $relData['inversedBy'] = null;
                 $relData['sourceEntity'] = $entityClassName;
                 unset($relData['config']);
                 $mappings[$relName] = $relData;
             }
             $entityMetadata->expects($this->any())->method('getAssociationMappings')->will($this->returnValue($mappings));
         }
         $entityMetadata->expects($this->any())->method('isSingleValuedAssociation')->will($this->returnCallback(function ($field) use($mappings) {
             return !empty($mappings[$field]);
         }));
         $entityMetadata->expects($this->any())->method('getTypeOfField')->will($this->returnValueMap($fieldTypes));
     }
     $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $metadataFactory = $this->getMock('Doctrine\\ORM\\Mapping\\ClassMetadataFactory');
     $em->expects($this->any())->method('getMetadataFactory')->will($this->returnValue($metadataFactory));
     $metadataFactory->expects($this->any())->method('getMetadataFor')->will($this->returnCallback(function ($entityClassName) use(&$metadata) {
         return $metadata[$entityClassName];
     }));
     $this->doctrine->expects($this->any())->method('getManagerForClass')->with($this->isType('string'))->will($this->returnValue($em));
     $this->extendConfigProvider->expects($this->any())->method('getConfigs')->will($this->returnCallback(function ($className) use($fieldConfigs) {
         return $fieldConfigs[$className];
     }));
     $this->entityConfigProvider->expects($this->any())->method('hasConfig')->will($this->returnCallback(function ($className, $fieldName) use(&$config) {
         if (isset($config[$className])) {
             if ($fieldName === null) {
                 return true;
             }
             if (isset($config[$className]['fields'][$fieldName]['config'])) {
                 return true;
             }
             if (isset($config[$className]['relations'][$fieldName]['config'])) {
                 return true;
             }
             if (isset($config[$className]['unidirectional_relations'][$fieldName]['config'])) {
                 return true;
             }
         }
         return false;
     }));
     $this->entityConfigProvider->expects($this->any())->method('getConfig')->will($this->returnCallback(function ($className, $fieldName) use(&$config) {
         if (isset($config[$className])) {
             if ($fieldName === null) {
                 return $this->getEntityConfig($className, $config[$className]['config']);
             }
             if (isset($config[$className]['fields'][$fieldName]['config'])) {
                 return $this->getEntityFieldConfig($className, $fieldName, $config[$className]['fields'][$fieldName]['type'], $config[$className]['fields'][$fieldName]['config']);
             }
             if (isset($config[$className]['relations'][$fieldName]['config'])) {
                 return $this->getEntityFieldConfig($className, $fieldName, $config[$className]['relations'][$fieldName]['type'], $config[$className]['relations'][$fieldName]['config']);
             }
             if (isset($config[$className]['unidirectional_relations'][$fieldName]['config'])) {
                 return $this->getEntityFieldConfig($className, $fieldName, $config[$className]['unidirectional_relations'][$fieldName]['type'], $config[$className]['unidirectional_relations'][$fieldName]['config']);
             }
         }
         return null;
     }));
     $this->extendConfigProvider->expects($this->any())->method('hasConfig')->will($this->returnCallback(function ($className, $fieldName) use(&$config) {
         if (isset($config[$className])) {
             if ($fieldName === null) {
                 return true;
             }
             if (isset($config[$className]['fields'][$fieldName]['config'])) {
                 return true;
             }
             if (isset($config[$className]['relations'][$fieldName]['config'])) {
                 return true;
             }
             if (isset($config[$className]['unidirectional_relations'][$fieldName]['config'])) {
                 return true;
             }
         }
         return false;
     }));
     $this->extendConfigProvider->expects($this->any())->method('getConfig')->will($this->returnCallback(function ($className, $fieldName) use(&$config) {
         if (isset($config[$className])) {
             if ($fieldName === null) {
                 return $this->getExtendEntityConfig($className, $config[$className]['config']);
             }
             if (isset($config[$className]['fields'][$fieldName]['config'])) {
                 return $this->getExtendFieldConfig($className, $fieldName, $config[$className]['fields'][$fieldName]['type'], $config[$className]['fields'][$fieldName]['config']);
             }
             if (isset($config[$className]['relations'][$fieldName]['config'])) {
                 return $this->getExtendFieldConfig($className, $fieldName, $config[$className]['relations'][$fieldName]['type'], $config[$className]['relations'][$fieldName]['config']);
             }
             if (isset($config[$className]['unidirectional_relations'][$fieldName]['config'])) {
                 return $this->getExtendFieldConfig($className, $fieldName, $config[$className]['unidirectional_relations'][$fieldName]['type'], $config[$className]['unidirectional_relations'][$fieldName]['config']);
             }
         }
         return null;
     }));
     $this->extendConfigProvider->expects($this->any())->method('getConfigById')->will($this->returnCallback(function (EntityConfigId $configId) use(&$config) {
         $className = $configId->getClassname();
         if (isset($config[$className])) {
             return $this->getExtendEntityConfig($className, $config[$className]['config']);
         }
         return null;
     }));
     $this->extendConfigProvider->expects($this->any())->method('getId')->will($this->returnCallback(function ($className, $fieldName) use(&$config) {
         if (isset($config[$className])) {
             if (isset($config[$className]['fields'][$fieldName]['config'])) {
                 return new FieldConfigId('extend', $className, $fieldName, $config[$className]['fields'][$fieldName]['type']);
             }
             if (isset($config[$className]['relations'][$fieldName]['config'])) {
                 return new FieldConfigId('extend', $className, $fieldName, $config[$className]['relations'][$fieldName]['type']);
             }
             if (isset($config[$className]['unidirectional_relations'][$fieldName]['config'])) {
                 return new FieldConfigId('extend', $className, $fieldName, $config[$className]['unidirectional_relations'][$fieldName]['type']);
             }
         }
         return null;
     }));
 }