public function testAddFolder()
 {
     $folder = new EmailFolder();
     $folder->setType('sent');
     $folder->setName('Test');
     $folder->setFullName('Test');
     $this->batch->addFolder($folder);
     $this->assertCount(1, ReflectionUtil::getProtectedProperty($this->batch, 'folders'));
     $this->assertEquals('Test', $this->batch->getFolder('sent', 'TeST')->getFullName());
     $this->assertNull($this->batch->getFolder('sent', 'Another'));
     $folder1 = new EmailFolder();
     $folder1->setType('trash');
     $folder1->setName('Test');
     $folder1->setFullName('Test');
     $this->batch->addFolder($folder1);
     $this->assertCount(2, ReflectionUtil::getProtectedProperty($this->batch, 'folders'));
     $this->assertEquals('Test', $this->batch->getFolder('trash', 'TeST')->getFullName());
     $this->assertNull($this->batch->getFolder('trash', 'Another'));
     $this->setExpectedException('LogicException');
     $folder2 = new EmailFolder();
     $folder2->setType('sent');
     $folder2->setName('TEST');
     $folder2->setFullName('TEST');
     $this->batch->addFolder($folder2);
 }
 /**
  * Create EmailFolder entity object
  *
  * @param string $type The folder type. Can be inbox, sent, trash, drafts or other
  * @param string $fullName The full name of a folder
  * @param string $name The folder name
  * @return EmailFolder
  */
 protected function folder($type, $fullName, $name)
 {
     $result = $this->batch->getFolder($type, $fullName);
     if ($result === null) {
         $result = new EmailFolder();
         $result->setType($type)->setFullName($fullName)->setName($name);
         $this->batch->addFolder($result);
     }
     return $result;
 }