public function testFileSync()
 {
     echo "test mediamanager...\n";
     if (class_module_system_module::getModuleByName("samplecontent") == null || !is_file(_realpath_ . "/files/images/samples/IMG_3000.JPG")) {
         return;
     }
     $objFilesystem = new class_filesystem();
     $objFilesystem->folderCreate(_filespath_ . "/images/autotest");
     $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/IMG_3000.jpg");
     $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/IMG_3000.png");
     $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/PA021805.JPG");
     $objFilesystem->fileCopy(_filespath_ . "/images/samples/IMG_3000.JPG", _filespath_ . "/images/autotest/test.txt");
     $objRepo = new class_module_mediamanager_repo();
     $objRepo->setStrPath(_filespath_ . "/images/autotest");
     $objRepo->setStrTitle("autotest repo");
     $objRepo->setStrViewFilter(".jpg,.png");
     $objRepo->updateObjectToDb();
     $objRepo->syncRepo();
     $arrFiles = class_module_mediamanager_file::loadFilesDB($objRepo->getSystemid());
     $this->assertEquals(3, count($arrFiles));
     foreach ($arrFiles as $objOneFile) {
         $objOneFile->deleteObjectFromDatabase();
     }
     $objRepo->deleteObjectFromDatabase();
     $arrFiles = $objFilesystem->getFilelist(_filespath_ . "/images/autotest");
     $this->assertEquals(1, count($arrFiles));
     $this->assertEquals("test.txt", array_values($arrFiles)[0]);
 }
 public function testJsonList()
 {
     $objFilesystem = new class_filesystem();
     $objFilesystem->folderCreate("/files/packageservertest");
     $objFilesystem->folderCreate("/files/packageservertest/t");
     file_put_contents(_realpath_ . "/files/packageservertest/t/metadata.xml", $this->getStrMetadata());
     $objFilesystem->folderCreate("/files/packageservertest/t/system");
     file_put_contents(_realpath_ . "/files/packageservertest/t/system/test.txt", $this->getStrMetadata());
     $objZip = new class_zip();
     $objZip->openArchiveForWriting("/files/packageservertest/autotest.zip");
     $objZip->addFile("/files/packageservertest/t/metadata.xml", "/metadata.xml");
     $objZip->addFile("/files/packageservertest/t/system/test.txt", "/system/test.txt");
     $objZip->closeArchive();
     $objFilesystem->folderDeleteRecursive("/files/packageservertest/t");
     $objMediamanagerRepo = new class_module_mediamanager_repo();
     $objMediamanagerRepo->setStrPath("/files/packageservertest");
     $objMediamanagerRepo->setStrTitle("autotest packages");
     $objMediamanagerRepo->updateObjectToDb();
     class_module_mediamanager_file::syncRecursive($objMediamanagerRepo->getSystemid(), $objMediamanagerRepo->getStrPath());
     /** @var $objPortalServer class_module_packageserver_portal */
     $objPortalServer = class_module_system_module::getModuleByName("packageserver")->getPortalInstanceOfConcreteModule();
     $strJson = $objPortalServer->action("list");
     $this->assertNotNull($strJson);
     $arrData = json_decode($strJson, true);
     $this->assertTrue(isset($arrData["numberOfTotalItems"]));
     $this->assertTrue(isset($arrData["items"]));
     $this->assertTrue(isset($arrData["protocolVersion"]));
     $this->assertEquals(1, count($arrData["items"]));
     $arrItem = $arrData["items"][0];
     $this->assertTrue(isset($arrItem["systemid"]));
     $this->assertTrue(isset($arrItem["title"]));
     $this->assertTrue(isset($arrItem["version"]));
     $this->assertTrue(isset($arrItem["description"]));
     $this->assertTrue(isset($arrItem["type"]));
     $this->assertEquals("Autotest", $arrItem["title"]);
     $this->assertEquals("3.9.1", $arrItem["version"]);
     $this->assertEquals("demo", $arrItem["description"]);
     $this->assertEquals("MODULE", $arrItem["type"]);
     $objMediamanagerRepo->deleteObjectFromDatabase();
     $objFilesystem->fileDelete("/files/packageservertest/autotest.zip");
 }