znt/module/api/test/model/getapispecbydata.php

115 lines
3.4 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 apiModel::getApiSpecByData();
timeout=0
cid=15103
- 执行apiTest模块的getApiSpecByDataTest方法参数是$fullData
- 属性doc @1
- 属性title @Test API
- 属性path @/api/test
- 属性module @2
- 属性protocol @HTTP
- 属性method @POST
- 执行apiTest模块的getApiSpecByDataTest方法参数是$minData
- 属性doc @1
- 属性title @Min API
- 属性path @/api/min
- 属性protocol @HTTP
- 属性method @GET
- 属性status @done
- 属性version @1
- 执行apiTest模块的getApiSpecByDataTest方法参数是$partialData
- 属性doc @1
- 属性title @Partial API
- 属性path @/api/partial
- 属性module @0
- 属性protocol @HTTP
- 属性method @GET
- 属性status @done
- 执行apiTest模块的getApiSpecByDataTest方法参数是$emptyData
- 属性doc @1
- 属性module @0
- 属性protocol @HTTP
- 属性method @GET
- 属性status @done
- 执行apiTest模块的getApiSpecByDataTest方法参数是$zeroVersionData
- 属性doc @1
- 属性title @Version Test
- 属性path @/api/version
- 属性version @1
- 属性protocol @HTTP
- 属性method @GET
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
$apiTest = new apiModelTest();
// 用户登录
su('admin');
// 测试步骤1完整数据输入
$fullData = new stdclass();
$fullData->id = 1;
$fullData->title = 'Test API';
$fullData->path = '/api/test';
$fullData->module = 2;
$fullData->protocol = 'HTTP';
$fullData->method = 'POST';
$fullData->requestType = 'application/json';
$fullData->responseType = 'application/json';
$fullData->status = 'doing';
$fullData->owner = 'testuser';
$fullData->desc = 'Test description';
$fullData->version = 2;
$fullData->params = '{"param1": "value1"}';
$fullData->paramsExample = '{"example": "test"}';
$fullData->responseExample = '{"result": "success"}';
$fullData->response = '{"data": "result"}';
r($apiTest->getApiSpecByDataTest($fullData)) && p('doc,title,path,module,protocol,method') && e('1,Test API,/api/test,2,HTTP,POST');
// 测试步骤2最小数据输入包含必需字段
$minData = new stdclass();
$minData->id = 1;
$minData->title = 'Min API';
$minData->path = '/api/min';
r($apiTest->getApiSpecByDataTest($minData)) && p('doc,title,path,protocol,method,status,version') && e('1,Min API,/api/min,HTTP,GET,done,1');
// 测试步骤3部分字段缺失测试默认值
$partialData = new stdclass();
$partialData->id = 1;
$partialData->title = 'Partial API';
$partialData->path = '/api/partial';
$partialData->module = '';
$partialData->status = '';
r($apiTest->getApiSpecByDataTest($partialData)) && p('doc,title,path,module,protocol,method,status') && e('1,Partial API,/api/partial,0,HTTP,GET,done');
// 测试步骤4包含空值字段测试默认值处理
$emptyData = new stdclass();
$emptyData->id = 1;
$emptyData->title = '';
$emptyData->path = '';
$emptyData->module = '';
$emptyData->protocol = '';
$emptyData->method = '';
$emptyData->desc = '';
r($apiTest->getApiSpecByDataTest($emptyData)) && p('doc,module,protocol,method,status') && e('1,0,HTTP,GET,done');
// 测试步骤5version字段为0
$zeroVersionData = new stdclass();
$zeroVersionData->id = 1;
$zeroVersionData->title = 'Version Test';
$zeroVersionData->path = '/api/version';
$zeroVersionData->version = 0;
r($apiTest->getApiSpecByDataTest($zeroVersionData)) && p('doc,title,path,version,protocol,method') && e('1,Version Test,/api/version,1,HTTP,GET');