Merged in darojas/processmaker (pull request #110)

Se agregan BEHAT para PROJECT USERS, se agregan validaciones de mensajes en mensajes de error. Valdaciones para ASSIGNEE
This commit is contained in:
erik ao
2014-01-24 17:56:50 -04:00
5 changed files with 101 additions and 20 deletions

View File

@@ -57,15 +57,15 @@ Scenario Outline: Assign a user or group to an activity (Field validation)
| high number for start | a | 1000 | 1 | 0 | 200 | array |
| high number for start | a | 1000 | 0 | 0 | 200 | array |
| empty result | xyz | 0 | 0 | 0 | 200 | array |
| empty string | | 0 | 10000 | 0 | 200 | array |
| empty string | | 1 | 2 | 0 | 200 | array |
| empty string | | 0 | 10000 | 3 | 200 | array |
| empty string | | 1 | 2 | 2 | 200 | array |
| invalid start | a | b | c | 0 | 400 | string|
| invalid limit | a | 0 | c | 0 | 400 | string|
| search 0 | 0 | 0 | 0 | 0 | 200 | array |
| search 0 | 0 | 0 | 100 | 0 | 200 | array |
| negative numbers | a | -10 | -20 | 0 | 200 | array |
| real numbers | a | 0.0 | 1.0 | 0 | 400 | string|
| real numbers | a | 0.0 | 0.0 | 0 | 400 | string|
| negative numbers | a | -10 | -20 | 0 | 400 | string|
| real numbers | a | 0.0 | 1.0 | 1 | 200 | string|
| real numbers | a | 0.0 | 0.0 | 3 | 200 | string|
| real numbers | a | 0.1 | 1.4599 | 0 | 400 | string|
| real numbers | a | 1.5 | 1.4599 | 0 | 400 | string|

View File

@@ -0,0 +1,49 @@
@ProcessMakerMichelangelo @RestAPI
Feature: Project User Resources
Background:
Given that I have a valid access_token
Scenario: Get a list of users of a project
Given I request "project/1265557095225ff5c688f46031700471/users"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
Scenario: Get a list of starting task of a project
Given I request "project/1265557095225ff5c688f46031700471/starting-tasks"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
Scenario: Get a list of start task of a user
Given I request "project/1265557095225ff5c688f46031700471/user/00000000000000000000000000000001/starting-tasks"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
Scenario Outline: Verify if a user can start a task
Given POST this data:
"""
{
"act_uid": "<act_uid>",
"username": "<username>",
"password": "<password>"
}
"""
And I request "project/1265557095225ff5c688f46031700471/ws/user/can-start-task"
Then the response status code should be <http_code>
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "<type>"
Examples:
| test_description | act_uid | username | password | http_code | type |
| error username | 1352844695225ff5fe54de2005407079 | adm | admin | 400 | string |
| error password | 1352844695225ff5fe54de2005407079 | admin | adm | 400 | string |
| short activity | 1352844695225ff5fe54de20 | admin | admin | 400 | string |
| error activity | 225ff5fe54de20054070791352844695 | admin | admin | 400 | string |
| all ok | 1352844695225ff5fe54de2005407079 | admin | admin | 200 | array |

View File

@@ -223,7 +223,7 @@ class ProjectUser
$oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER );
$userIsAssigned = \GroupUserPeer::doCount( $oCriteria );
if (! ($userIsAssigned >= 1)) {
$messageCode = "The User `" . $sWS_USER . "` doesn't have the activity `" . $sTASKS . "` assigned";
throw (new \Exception( "The User `" . $sWS_USER . "` doesn't have the activity `" . $sTASKS . "` assigned"));
}
}
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
@@ -237,7 +237,7 @@ class ProjectUser
$oDataset->next();
}
} else {
$messageCode = $result->message;
throw (new \Exception( $result->message));
}
return $messageCode;
} catch (Exception $e) {

View File

@@ -651,7 +651,7 @@ class Task
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
if ($filter) {
if ($filter || $filter=='0') {
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
}
$oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID);
@@ -663,10 +663,18 @@ class Task
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
if ($start) {
$oCriteria->setOffset( $start );
if ($start < 0) {
throw (new \Exception( 'invalid value specified for `start`.'));
} else {
$oCriteria->setOffset( $start );
}
}
if ($limit) {
$oCriteria->setLimit( $limit );
if ($limit < 0) {
throw (new \Exception( 'invalid value specified for `limit`.'));
} else {
$oCriteria->setLimit( $limit );
}
}
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
@@ -762,16 +770,24 @@ class Task
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
if ($filter) {
if ($filter || $filter=='0') {
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
}
$oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE');
$oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN);
if ($start) {
$oCriteria->setOffset( $start );
if ($start < 0) {
throw (new \Exception( 'invalid value specified for `start`.'));
} else {
$oCriteria->setOffset( $start );
}
}
if ($limit) {
$oCriteria->setLimit( $limit );
if ($limit < 0) {
throw (new \Exception( 'invalid value specified for `limit`.'));
} else {
$oCriteria->setLimit( $limit );
}
}
$oDataset = \UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
@@ -1090,7 +1106,7 @@ class Task
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
if ($filter) {
if ($filter || $filter=='0') {
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
}
$oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID);
@@ -1102,10 +1118,18 @@ class Task
$oCriteria->add(\TaskUserPeer::TU_TYPE, 2);
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
if ($start) {
$oCriteria->setOffset( $start );
if ($start < 0) {
throw (new \Exception( 'invalid value specified for `start`.'));
} else {
$oCriteria->setOffset( $start );
}
}
if ($limit) {
$oCriteria->setLimit( $limit );
if ($limit < 0) {
throw (new \Exception( 'invalid value specified for `limit`.'));
} else {
$oCriteria->setLimit( $limit );
}
}
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
@@ -1198,16 +1222,24 @@ class Task
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
if ($filter) {
if ($filter || $filter=='0') {
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
}
$oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE');
$oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN);
if ($start) {
$oCriteria->setOffset( $start );
if ($start < 0) {
throw (new \Exception( 'invalid value specified for `start`.'));
} else {
$oCriteria->setOffset( $start );
}
}
if ($limit) {
$oCriteria->setLimit( $limit );
if ($limit < 0) {
throw (new \Exception( 'invalid value specified for `limit`.'));
} else {
$oCriteria->setLimit( $limit );
}
}
$oDataset = \UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

View File

@@ -75,7 +75,7 @@ class ProjectUsers extends Api
*
* @url POST /:prjUid/ws/user/can-start-task
*/
public function doGetProjectWsUserCanStartTask($prjUid, wsUserCanStartTaskStructure $request_data = null)
public function doPostProjectWsUserCanStartTask($prjUid, wsUserCanStartTaskStructure $request_data = null)
{
try {
$request_data = (array)($request_data);