function testStoreAuthorsInfo()
 {
     $authorsRawData = array('0' => array('name' => 'Test User', 'email' => '*****@*****.**', 'homepage' => 'www.test.com', 'role' => 'test-Developer'));
     $obj = $this->objFromFixture('ExtensionData', 'testmodule');
     $extensionId = $obj->ID;
     $ExtensionAuthorController = new ExtensionAuthorController();
     $extensionAuthorsId = $ExtensionAuthorController->store_authors_info($authorsRawData, $extensionId);
     $extensionAuthor = ExtensionAuthor::get()->byID($extensionAuthorsId['0']);
     $this->assertEquals($extensionAuthor->Email, '*****@*****.**');
     $this->assertEquals($extensionAuthor->Name, 'Test User');
     $this->assertEquals($extensionAuthor->HomePage, 'www.test.com');
     $this->assertEquals($extensionAuthor->Role, 'test-Developer');
 }
 /**
  * Store Multiple Author Info in Member class
  * Url ID
  *
  * @param array $authorsRawData, int $extensionId
  */
 public static function store_authors_info($authorsRawData, $extensionId)
 {
     $totalAuthors = count($authorsRawData);
     $extensionAuthorsId = array();
     foreach ($authorsRawData as $author) {
         if (array_key_exists('email', $author)) {
             if (ExtensionAuthor::get()->filter("Email", $author['email'])->first()) {
                 $extensionAuthor = ExtensionAuthor::get()->filter("Email", $author['email'])->first();
                 $extensionAuthor->Email = $author['email'];
             } else {
                 $extensionAuthor = new ExtensionAuthor();
                 $extensionAuthor->Email = $author['email'];
             }
         } else {
             throw new InvalidArgumentException('make sure Email field exists in author info');
         }
         if (array_key_exists('name', $author)) {
             $extensionAuthor->Name = $author['name'];
         } else {
             throw new InvalidArgumentException('Make sure Name field exists in author info');
         }
         if (array_key_exists('homepage', $author)) {
             $extensionAuthor->HomePage = $author['homepage'];
         }
         if (array_key_exists('role', $author)) {
             $extensionAuthor->Role = $author['role'];
         }
         $extensionAuthor->write();
         $extensionAuthor->AuthorOf()->add($extensionId);
         array_push($extensionAuthorsId, $extensionAuthor->ID);
     }
     if (count($extensionAuthorsId) == $totalAuthors) {
         return $extensionAuthorsId;
     } else {
         throw new InvalidArgumentException('Unable to store some authors Info');
     }
 }