znt/module/tree/test/lib/treezen.unittest.class.php

212 lines
5.7 KiB
PHP

<?php
declare(strict_types = 1);
class treeTest
{
public function __construct()
{
$this->objectZen = initReference('tree');
}
/**
* Test setRoot method.
*
* @param int $rootID
* @param string $viewType
* @param string $branch
* @access public
* @return mixed
*/
public function setRootTest(int $rootID = 0, string $viewType = '', string $branch = '')
{
ob_start();
$method = $this->objectZen->getMethod('setRoot');
$method->setAccessible(true);
$result = $method->invokeArgs($this->objectZen->newInstance(), array($rootID, $viewType, $branch));
ob_end_clean();
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test getBranches method.
*
* @param object $product
* @param string $viewType
* @param int $currentModuleID
* @access public
* @return mixed
*/
public function getBranchesTest(?object $product = null, string $viewType = '', int $currentModuleID = 0)
{
if($product === null) {
$product = (object)array('id' => 1, 'type' => 'normal', 'name' => 'Test Product');
}
$method = $this->objectZen->getMethod('getBranches');
$method->setAccessible(true);
$result = $method->invokeArgs($this->objectZen->newInstance(), array($product, $viewType, $currentModuleID));
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test updateBrowseLang method.
*
* @param string $viewType
* @access public
* @return mixed
*/
public function updateBrowseLangTest(string $viewType = '')
{
global $app, $lang;
$app->loadLang('tree');
$app->loadLang('host');
$originalManage = $lang->tree->manage;
$treeZen = $this->objectZen->newInstance();
$method = $this->objectZen->getMethod('updateBrowseLang');
$method->setAccessible(true);
$method->invoke($treeZen, $viewType);
if(dao::isError()) return dao::getError();
return $lang->tree;
}
/**
* Test updateWorkflowLang method.
*
* @param string $viewType
* @access public
* @return mixed
*/
public function updateWorkflowLangTest(string $viewType = '')
{
global $app, $lang;
$app->loadLang('tree');
$treeZen = $this->objectZen->newInstance();
$method = $this->objectZen->getMethod('updateWorkflowLang');
$method->setAccessible(true);
$method->invoke($treeZen, $viewType);
if(dao::isError()) return dao::getError();
return $lang->tree;
}
/**
* Test updateRawModule method.
*
* @param int $rootID
* @param string $viewType
* @access public
* @return mixed
*/
public function updateRawModuleTest(int $rootID = 0, string $viewType = '')
{
global $app;
// 保存原始的rawModule值
$originalRawModule = $app->rawModule ?? '';
$treeZen = $this->objectZen->newInstance();
$method = $this->objectZen->getMethod('updateRawModule');
$method->setAccessible(true);
$method->invoke($treeZen, $rootID, $viewType);
if(dao::isError()) return dao::getError();
// 返回设置后的rawModule值
$result = $app->rawModule ?? '';
// 恢复原始值
$app->rawModule = $originalRawModule;
return $result;
}
/**
* Test printOptionMenuMHtml method.
*
* @param array $optionMenu
* @param string $viewType
* @param int $rootID
* @access public
* @return mixed
*/
public function printOptionMenuMHtmlTest(array $optionMenu = array(), string $viewType = '', int $rootID = 0)
{
// 开启输出缓冲
ob_start();
$treeZen = $this->objectZen->newInstance();
$method = $this->objectZen->getMethod('printOptionMenuMHtml');
$method->setAccessible(true);
$method->invoke($treeZen, $optionMenu, $viewType, $rootID);
if(dao::isError()) return dao::getError();
// 获取输出内容
$output = ob_get_clean();
return $output;
}
/**
* Test printOptionMenuArray method.
*
* @param array $optionMenu
* @access public
* @return mixed
*/
public function printOptionMenuArrayTest(array $optionMenu = array())
{
// 开启输出缓冲
ob_start();
$treeZen = $this->objectZen->newInstance();
$method = $this->objectZen->getMethod('printOptionMenuArray');
$method->setAccessible(true);
$method->invoke($treeZen, $optionMenu);
if(dao::isError()) return dao::getError();
// 获取输出内容
$output = ob_get_clean();
return $output;
}
/**
* Test printOptionMenuHtml method.
*
* @param array $optionMenu
* @param string $viewType
* @param int $fieldID
* @param int $currentModuleID
* @access public
* @return mixed
*/
public function printOptionMenuHtmlTest(array $optionMenu = array(), string $viewType = '', $fieldID = '', int $currentModuleID = 0)
{
global $tester;
// 开启输出缓冲
ob_start();
$treeZen = $this->objectZen->newInstance();
// 确保tree模块被加载
$treeZen->tree = $tester->loadModel('tree');
$method = $this->objectZen->getMethod('printOptionMenuHtml');
$method->setAccessible(true);
$method->invoke($treeZen, $optionMenu, $viewType, $fieldID, $currentModuleID);
if(dao::isError()) return dao::getError();
// 获取输出内容
$output = ob_get_clean();
return $output;
}
}