/** * @param ImapEmailOrigin $origin */ protected function clearOrigin(ImapEmailOrigin $origin) { $folders = $origin->getFolders(); $folderRepository = $this->em->getRepository('OroImapBundle:ImapEmailFolder'); foreach ($folders as $folder) { $imapFolder = $folderRepository->findOneBy(['folder' => $folder]); if (!$origin->isActive()) { $this->removeFolder($imapFolder); } elseif (!$folder->isSyncEnabled()) { $this->clearFolder($imapFolder); $imapFolder->getFolder()->setSynchronizedAt(null); } } if (!$origin->isActive()) { $this->em->remove($origin); $this->em->flush(); } }
/** * Case when user submit empty form but have configuration * configuration should be not active and relation should be broken */ public function testSubmitEmptyForm() { $type = new ConfigurationType($this->encryptor); $form = $this->factory->create($type); $entity = new ImapEmailOrigin(); $this->assertTrue($entity->isActive()); $form->setData($entity); $form->submit(array('host' => '', 'port' => '', 'ssl' => '', 'user' => '', 'password' => '')); $this->assertNotSame($entity, $form->getData()); $this->assertNotInstanceOf('Oro\\Bundle\\ImapBundle\\Entity\\ImapEmailOrigin', $form->getData()); $this->assertNull($form->getData()); }