87 lines
2.6 KiB
PHP
87 lines
2.6 KiB
PHP
|
|
#!/usr/bin/env php
|
|||
|
|
<?php
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
|
|||
|
|
title=测试 testcaseZen::fetchByJSON();
|
|||
|
|
cid=19088
|
|||
|
|
|
|||
|
|
- 测试正常JSON文件解析 >> 期望返回成功结果
|
|||
|
|
- 测试带产品ID的JSON文件解析 >> 期望返回带产品ID的成功结果
|
|||
|
|
- 测试空title的JSON文件 >> 期望返回失败结果
|
|||
|
|
- 测试无效产品ID的JSON文件 >> 期望返回产品不存在错误
|
|||
|
|
- 测试不存在的JSON文件 >> 期望返回文件不存在错误
|
|||
|
|
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
|||
|
|
include dirname(__FILE__, 2) . '/lib/testcasezen.unittest.class.php';
|
|||
|
|
|
|||
|
|
// zendata数据准备
|
|||
|
|
$product = zenData('product');
|
|||
|
|
$product->id->range('1-10');
|
|||
|
|
$product->name->range('产品{1-10}');
|
|||
|
|
$product->deleted->range('0{9},1{1}');
|
|||
|
|
$product->gen(10);
|
|||
|
|
|
|||
|
|
// 用户登录
|
|||
|
|
su('admin');
|
|||
|
|
|
|||
|
|
// 创建测试实例
|
|||
|
|
$testcaseZenTest = new testcaseZenTest();
|
|||
|
|
|
|||
|
|
// 创建测试目录和文件
|
|||
|
|
$testDir = '/tmp/fetchbyjson_test';
|
|||
|
|
if(!file_exists($testDir)) mkdir($testDir, 0755, true);
|
|||
|
|
|
|||
|
|
// 测试步骤1:正常JSON文件解析
|
|||
|
|
$normalJsonData = array(
|
|||
|
|
array(
|
|||
|
|
'rootTopic' => array(
|
|||
|
|
'title' => '正常测试用例'
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
);
|
|||
|
|
file_put_contents($testDir . '/content.json', json_encode($normalJsonData));
|
|||
|
|
r($testcaseZenTest->fetchByJSONTest($testDir, 1, 'main')) && p('result,pID,type') && e('success,1,json');
|
|||
|
|
|
|||
|
|
// 测试步骤2:带产品ID的JSON文件解析
|
|||
|
|
$productJsonData = array(
|
|||
|
|
array(
|
|||
|
|
'rootTopic' => array(
|
|||
|
|
'title' => '测试用例[2]'
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
);
|
|||
|
|
file_put_contents($testDir . '/content.json', json_encode($productJsonData));
|
|||
|
|
r($testcaseZenTest->fetchByJSONTest($testDir, 1, 'main')) && p('result,pID,type') && e('success,2,json');
|
|||
|
|
|
|||
|
|
// 测试步骤3:空title的JSON文件
|
|||
|
|
$emptyTitleJsonData = array(
|
|||
|
|
array(
|
|||
|
|
'rootTopic' => array(
|
|||
|
|
'title' => ''
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
);
|
|||
|
|
file_put_contents($testDir . '/content.json', json_encode($emptyTitleJsonData));
|
|||
|
|
r($testcaseZenTest->fetchByJSONTest($testDir, 1, 'main')) && p('result') && e('fail');
|
|||
|
|
|
|||
|
|
// 测试步骤4:无效产品ID的JSON文件
|
|||
|
|
$invalidProductJsonData = array(
|
|||
|
|
array(
|
|||
|
|
'rootTopic' => array(
|
|||
|
|
'title' => '测试用例[999]'
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
);
|
|||
|
|
file_put_contents($testDir . '/content.json', json_encode($invalidProductJsonData));
|
|||
|
|
r($testcaseZenTest->fetchByJSONTest($testDir, 1, 'main')) && p('result') && e('fail');
|
|||
|
|
|
|||
|
|
// 测试步骤5:不存在的JSON文件
|
|||
|
|
if(file_exists($testDir . '/content.json')) unlink($testDir . '/content.json');
|
|||
|
|
r($testcaseZenTest->fetchByJSONTest($testDir, 1, 'main')) && p('result') && e('fail');
|
|||
|
|
|
|||
|
|
// 清理测试目录
|
|||
|
|
if(file_exists($testDir . '/content.json')) unlink($testDir . '/content.json');
|
|||
|
|
if(file_exists($testDir)) rmdir($testDir);
|