public function testSyncFlow() { $this->_client->getSystemService(); // add upload token $uploadToken = new UploadToken(); $uploadToken->fileName = self::UPLOAD_VIDEO_FILENAME; $uploadToken = $this->_client->getUploadTokenService()->add($uploadToken); $this->assertTrue(strlen($uploadToken->id) > 0); $this->assertEqual($uploadToken->fileName, self::UPLOAD_VIDEO_FILENAME); $this->assertEqual($uploadToken->status, UploadTokenStatus::PENDING); $this->assertEqual($uploadToken->partnerId, $this->_client->getConfig()->getPartnerId()); $this->assertEqual($uploadToken->fileSize, null); // add media entry $entry = new MediaEntry(); $entry->name = self::ENTRY_NAME; $entry->mediaType = MediaType::VIDEO; $entry = $this->_client->getMediaService()->add($entry); $this->assertTrue(strlen($entry->id) > 0); $this->assertTrue($entry->status === EntryStatus::NO_CONTENT); $this->assertTrue($entry->name === self::ENTRY_NAME); $this->assertTrue($entry->partnerId === $this->_client->getConfig()->getPartnerId()); // add uploaded token as resource $resource = new UploadedFileTokenResource(); $resource->token = $uploadToken->id; $entry = $this->_client->getMediaService()->addContent($entry->id, $resource); $this->assertTrue($entry->status === EntryStatus::IMPORT); // upload file using the upload token $uploadFilePath = dirname(__FILE__) . '/../resources/' . self::UPLOAD_VIDEO_FILENAME; $uploadToken = $this->_client->getUploadTokenService()->upload($uploadToken->id, $uploadFilePath); $this->assertTrue($uploadToken->status === UploadTokenStatus::CLOSED); // get flavor by entry $flavorArray = $this->_client->getFlavorAssetService()->getByEntryId($entry->id); $this->assertTrue(count($flavorArray) > 0); $foundSource = false; foreach ($flavorArray as $flavor) { if ($flavor->flavorParamsId !== 0) { continue; } $this->assertTrue($flavor->isOriginal); $this->assertTrue($flavor->entryId === $entry->id); $foundSource = true; } $this->assertTrue($foundSource); // count media entries $mediaFilter = new MediaEntryFilter(); $mediaFilter->idEqual = $entry->id; $mediaFilter->statusNotEqual = EntryStatus::DELETED; $entryCount = $this->_client->getMediaService()->count($mediaFilter); $this->assertTrue($entryCount === 1); // delete media entry $this->_client->getMediaService()->delete($entry->id); sleep(5); // wait for the status to update // count media entries again $entryCount = $this->_client->getMediaService()->count($mediaFilter); $this->assertEqual($entryCount, 0); }