123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- <?php
- class AutomatedTestCaseSingleDao
- {
-
- public function addSingleTestCase(&$case_id, &$case_data, &$case_code, &$status_code, &$match_type, &$match_rule, &$api_name, &$api_uri, &$api_request_type, &$order_number)
- {
- $db = getDatabase();
- $db->prepareExecute('INSERT INTO eo_project_test_case_single(eo_project_test_case_single.caseID,eo_project_test_case_single.caseData,eo_project_test_case_single.caseCode,eo_project_test_case_single.statusCode,eo_project_test_case_single.matchType,eo_project_test_case_single.matchRule, eo_project_test_case_single.apiName, eo_project_test_case_single.apiURI, eo_project_test_case_single.apiRequestType,eo_project_test_case_single.orderNumber) VALUES (?,?,?,?,?,?,?,?,?,?);', array(
- $case_id,
- $case_data,
- $case_code,
- $status_code,
- $match_type,
- $match_rule,
- $api_name,
- $api_uri,
- $api_request_type,
- $order_number
- ));
- if ($db->getAffectRow() > 0)
- return $db->getLastInsertID();
- else
- return FALSE;
- }
-
- public function editSingleTestCase(&$case_id, &$conn_id, &$case_data, &$case_code, &$status_code, &$match_type, &$match_rule, &$api_name, &$api_uri, &$api_request_type)
- {
- $db = getDatabase();
- $db->prepareExecute('UPDATE eo_project_test_case_single SET eo_project_test_case_single.caseData = ?,eo_project_test_case_single.caseCode = ?, eo_project_test_case_single.statusCode = ?, eo_project_test_case_single.matchType = ?, eo_project_test_case_single.matchRule = ?, eo_project_test_case_single.apiName = ?, eo_project_test_case_single.apiURI = ?,eo_project_test_case_single.apiRequestType = ? WHERE eo_project_test_case_single.caseID = ? AND eo_project_test_case_single.connID = ?;', array(
- $case_data,
- $case_code,
- $status_code,
- $match_type,
- $match_rule,
- $api_name,
- $api_uri,
- $api_request_type,
- $case_id,
- $conn_id
- ));
- if ($db->getAffectRow() > 0)
- return TRUE;
- else
- return FALSE;
- }
-
- public function getSingleTestCaseList(&$case_id)
- {
- $db = getDatabase();
- $db->beginTransaction();
- $result = $db->prepareExecuteAll('SELECT * FROM eo_project_test_case_single WHERE eo_project_test_case_single.caseID = ? ORDER BY eo_project_test_case_single.connID ASC;', array($case_id));
- $i = 0;
- $index = 1;
- if (is_array($result)) {
- foreach ($result as &$single_case) {
- if (($single_case['orderNumber'] == NULL && $index == 1) || $index > 1) {
- if (preg_match_all('#<response\[(\d+)\]#', $single_case['caseData'], $match) > 0) {
- foreach ($match[1] as $response_id) {
- $single_case['caseData'] = str_replace("<response[" . $response_id, "<response[" . $result[$i]['connID'], $single_case['caseData']);
- }
- }
- $db->prepareExecute('UPDATE eo_project_test_case_single SET eo_project_test_case_single.orderNumber = ?,eo_project_test_case_single.caseData = ? WHERE eo_project_test_case_single.connID = ?;', array(
- $index,
- $single_case['caseData'],
- $single_case['connID']
- ));
- if ($db->getAffectRow() < 1) {
- $db->rollback();
- return FALSE;
- }
- $single_case['orderNumber'] = $index;
- $index++;
- }
- if ($single_case['matchType'] == 2 && !empty($single_case['matchRule'])) {
- $single_case['matchRule'] = json_decode($single_case['matchRule'], TRUE);
- }
- }
- }
- if ($result) {
- $db->commit();
- return array_reverse($result);
- } else {
- $db->rollback();
- return FALSE;
- }
- }
-
- public function getSingleTestCaseInfo(&$project_id, &$conn_id)
- {
- $db = getDatabase();
- $result = $db->prepareExecute('SELECT * FROM eo_project_test_case_single INNER JOIN eo_project_test_case ON eo_project_test_case.caseID = eo_project_test_case_single.caseID WHERE eo_project_test_case_single.connID = ? AND eo_project_test_case.projectID = ?;', array($conn_id, $project_id));
- if ($result['matchType'] == 2 && !empty($result['matchRule'])) {
- $result['matchRule'] = json_decode($result['matchRule'], TRUE);
- }
- if ($result)
- return $result;
- else
- return FALSE;
- }
-
- public function deleteSingleTestCase(&$conn_ids, &$project_id)
- {
- $db = getDatabase();
- $db->prepareExecute("DELETE FROM eo_project_test_case_single WHERE eo_project_test_case_single.connID IN ($conn_ids) AND eo_project_test_case_single.caseID IN (SELECT eo_project_test_case.caseID FROM eo_project_test_case WHERE eo_project_test_case.projectID = ?);", array(
- $project_id
- ));
- if ($db->getAffectRow() > 0)
- return TRUE;
- else
- return FALSE;
- }
-
- public function getAllSingleTestCaseList(&$project_id)
- {
- $db = getDatabase();
- $result = $db->prepareExecuteAll('SELECT eo_project_test_case_single.* FROM eo_project_test_case INNER JOIN eo_project_test_case_single ON eo_project_test_case_single.caseID = eo_project_test_case.caseID WHERE eo_project_test_case.projectID = ? ORDER BY eo_project_test_case_single.connID ASC;', array($project_id));
- foreach ($result as &$single_case) {
- if ($single_case['matchType'] == 2 && !empty($single_case['matchRule'])) {
- $single_case['matchRule'] = json_decode($single_case['matchRule'], TRUE);
- }
- }
- if ($result)
- return array_reverse($result);
- else
- return FALSE;
- }
-
- public function checkSingleTestCasePermission(&$conn_id, &$user_id)
- {
- $db = getDatabase();
- $result = $db->prepareExecute('SELECT eo_project_test_case.projectID FROM eo_project_test_case_single LEFT JOIN eo_project_test_case ON eo_project_test_case_single.caseID = eo_project_test_case.caseID LEFT JOIN eo_conn_project ON eo_project_test_case.projectID = eo_conn_project.projectID WHERE eo_project_test_case_single.connID = ? AND eo_conn_project.userID = ?;', array(
- $conn_id,
- $user_id
- ));
- if (empty($result)) {
- return FALSE;
- } else {
- return $result['projectID'];
- }
- }
-
- public function getTestCastName(&$conn_id)
- {
- $db = getDatabase();
- $result = $db->prepareExecute("SELECT GROUP_CONCAT(DISTINCT(eo_project_test_case.caseName)) AS caseName FROM eo_project_test_case_single LEFT JOIN eo_project_test_case ON eo_project_test_case_single.caseID = eo_project_test_case.caseID WHERE eo_project_test_case_single.connID IN ($conn_id);", array());
- if (empty($result)) {
- return FALSE;
- } else {
- return $result['caseName'];
- }
- }
-
- public function getCaseIDByConnID(&$conn_id)
- {
- $db = getDatabase();
- $result = $db->prepareExecute("SELECT eo_project_test_case_single.caseID FROM eo_project_test_case_single WHERE eo_project_test_case_single.connID IN ($conn_id);", array());
- if (empty($result)) {
- return FALSE;
- } else {
- return $result['caseID'];
- }
- }
-
- public function getApiList(&$project_id)
- {
- $db = getDatabase();
- $result = $db->prepareExecuteAll("SELECT eo_api.apiID,eo_api.apiName,eo_api.apiURI,eo_api_group.groupID,eo_api_group.parentGroupID,eo_api_group.groupName,eo_api.apiStatus,eo_api.apiRequestType,eo_api.apiUpdateTime,eo_api.starred,eo_api_cache.apiJson FROM eo_api INNER JOIN eo_api_group ON eo_api.groupID = eo_api_group.groupID INNER JOIN eo_api_cache ON eo_api.apiID = eo_api_cache.apiID WHERE eo_api_group.projectID = ? AND eo_api.removed = 0 ORDER BY eo_api.apiName DESC;", array(
- $project_id
- ));
- foreach ($result as &$api) {
- $api_json = json_decode($api['apiJson'], TRUE);
- $api['headerInfo'] = $api_json['headerInfo'];
- $api['requestInfo'] = $api_json['requestInfo'];
- $api['resultInfo'] = $api_json['resultInfo'];
- unset($api['apiJson']);
- }
- if (empty($result))
- return FALSE;
- else
- return $result;
- }
- }
|