From 49729692c083df5c6ea544fa1fcf90477fe6bbe7 Mon Sep 17 00:00:00 2001 From: Wendy Nestor Date: Tue, 29 Apr 2014 16:40:23 -0400 Subject: [PATCH] Adicion de nuevos features --- .../basic_sequence_pm_tables.feature | 216 +++++++ .../pm_tables/main_tests_pm_tables.feature | 253 +++++++++ .../negative_tests_pm_tables.feature | 65 +++ .../basic_sequence_project_resources.feature | 485 ++++++++++++++++ .../main_tests_project_resources.feature | 532 ++++++++++++++++++ .../negative_tests_project_resources.feature | 0 6 files changed, 1551 insertions(+) create mode 100644 features/backend/admin_setup/pm_tables/basic_sequence_pm_tables.feature create mode 100644 features/backend/admin_setup/pm_tables/main_tests_pm_tables.feature create mode 100644 features/backend/admin_setup/pm_tables/negative_tests_pm_tables.feature create mode 100644 features/backend/projects/project/basic_sequence_project_resources.feature create mode 100644 features/backend/projects/project/main_tests_project_resources.feature create mode 100644 features/backend/projects/project/negative_tests_project_resources.feature diff --git a/features/backend/admin_setup/pm_tables/basic_sequence_pm_tables.feature b/features/backend/admin_setup/pm_tables/basic_sequence_pm_tables.feature new file mode 100644 index 000000000..af06bf294 --- /dev/null +++ b/features/backend/admin_setup/pm_tables/basic_sequence_pm_tables.feature @@ -0,0 +1,216 @@ +@ProcessMakerMichelangelo @RestAPI +Feature: Output Documents + Requirements: + a workspace with the pmtable 65193158852cc1a93a5a535084878044 ("DYNAFORM") already loaded + +Background: + Given that I have a valid access_token + + +Scenario: Get the PMTABLE List when there are exactly ONE pmtables in this workspace + Given I request "pmtable" + 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" + And the response has 1 records + + +Scenario: Get a single the PMTABLE + Given I request "pmtable/65193158852cc1a93a5a535084878044" + 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 "object" + + +Scenario: Get data of the PMTABLE + Given I request "pmtable/65193158852cc1a93a5a535084878044/data" + 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 "object" + And that "dyn_uid" is set to "1" + And that "dyn_title" is set to "sample" + And that "dyn_description" is set to "test" + + +Scenario Outline: Create new pmtable + Given POST this data: + """ + { + "pmt_tab_name" : "", + "pmt_tab_dsc" : "", + "fields" : [ + { + "fld_key" : 1, + "fld_name" : "CAMPO1", + "fld_label" : "CAMPO1", + "fld_type" : "VARCHAR", + "fld_size" : 32 + },{ + "fld_name" : "CAMPO2", + "fld_label" : "CAMPO2", + "fld_type" : "VARCHAR", + "fld_size" : 200 + } + ] + } + """ + And I request "pmtable" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "object" + And store "pmt_uid" in session array as variable "pmt_uid_" + + Examples: + + | test_description | pmt_uid_number | pmt_tab_name | pmt_tab_dsc | + | Create pmtable with fields defined | 1 | PMT_Test_QA | pmt table created with script | + + +Scenario Outline: Create a new Data of pm table. + Given POST this data: + """ + { + "CAMPO1" : "valor1", + "CAMPO2" : "valor2" + } + """ + And I request "pmtable/pmt_uid/data" with the key "pmt_uid" stored in session array as variable "pmt_uid_" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "object" + + Examples: + + | pmt_uid_number | + | 1 | + + +Scenario Outline: Update a pm table of a project + Given PUT this data: + """ + { + "rep_tab_dsc" : "descripcion de la tabla", + "fields" : [ + { + "fld_key" : 1, + "fld_name" : "UPDATECAMPO", + "fld_label" : "UPDATECAMPO", + "fld_type" : "VARCHAR", + "fld_size" : 200 + + } + ] + } + """ + And that I want to update a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + + Examples: + + | pmt_uid_number | + | 1 | + + +Scenario Outline: Get a single the PMTABLE after update + Given that I want to get a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable" + 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 "object" + And that "fld_name" is set to "UPDATECAMPO" + And that "fld_label" is set to "UPDATECAMPO" + And that "fld_type" is set to "VARCHAR" + +Examples: + + | pmt_uid_number | + | 1 | + + +Scenario Outline: Update a a data of pm table + Given PUT this data: + """ + { + "CAMPO1" : "valor1", + "CAMPO2" : "updatevalor2" + } + """ + And that I want to update a "PM Table" + And I request "pmtable/pmt_uid/data" with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + + Examples: + + | pmt_uid_number | + | 1 | + + +Scenario Outline: Get data of the PMTABLE + Given I request "pmtable/pmt_uid/data" with the key "pmt_uid" stored in session array as variable "pmt_uid_" + 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 "object" + And that "CAMPO1" is set to "valor1" + And that "CAMPO2" is set to "updatevalor2" + + Examples: + + | pmt_uid_number | + | 1 | + +Scenario: Get the PMTABLE List when there are exactly ONE pmtables in this workspace + Given I request "pmtable" + 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" + And the response has 2 records + + +Scenario Outline: Delete a pm table of a pmtable + Given that I want to delete a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + Examples: + + | pmt_uid_number | + | 1 | + + +Scenario Outline: Delete a data of a pmtable + Given that I want to delete a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable//data/CAMPO1/updatevalor2" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + Examples: + + | pmt_uid_number | + | 1 | + + +Scenario: Get the PMTABLE List when there are exactly ONE pmtables in this workspace + Given I request "pmtable" + 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" + And the response has 1 records \ No newline at end of file diff --git a/features/backend/admin_setup/pm_tables/main_tests_pm_tables.feature b/features/backend/admin_setup/pm_tables/main_tests_pm_tables.feature new file mode 100644 index 000000000..fc532b999 --- /dev/null +++ b/features/backend/admin_setup/pm_tables/main_tests_pm_tables.feature @@ -0,0 +1,253 @@ +@ProcessMakerMichelangelo @RestAPI +Feature: Output Documents Main Tests + Requirements: + a workspace with the pmtable 65193158852cc1a93a5a535084878044 ("DYNAFORM") already loaded + +Background: + Given that I have a valid access_token + + +Scenario: Get the PMTABLE List when there are exactly ONE pmtables in this workspace + Given I request "pmtable" + 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" + And the response has 1 records + + +Scenario: Get a single the PMTABLE + Given I request "pmtable/65193158852cc1a93a5a535084878044" + 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 "object" + And that "pmt_uid" is set to "65193158852cc1a93a5a535084878044" + And that "pmt_tab_name" is set to "PMT_DYNAFORM" + And that "pmt_tab_description" is set to "" + And that "pmt_tab_class_name" is set to "PmtDynaform" + And that "pmt_num_rows" is set to "1" + + +Scenario: Get data of the PMTABLE + Given I request "pmtable/65193158852cc1a93a5a535084878044/data" + 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 "object" + And that "dyn_uid" is set to "1" + And that "dyn_title" is set to "sample" + And that "dyn_description" is set to "test" + + +Scenario Outline: Create news pmtable + Given POST this data: + """ + { + "pmt_tab_name" : "", + "pmt_tab_dsc" : "", + "fields" : [ + { + "fld_key" : 1, + "fld_name" : "", + "fld_label" : "", + "fld_type" : "", + "fld_size" : 32 + },{ + "fld_name" : "", + "fld_label" : "", + "fld_type" : "", + "fld_size" : 45 + },{ + "fld_name" : "", + "fld_label" : "", + "fld_type" : "", + "fld_size" : 32 + } + ] + } + """ + And I request "pmtable" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "object" + And store "pmt_uid" in session array as variable "pmt_uid_" + + Examples: + + | test_description | pmt_uid_number | pmt_tab_name | pmt_tab_dsc | fld_name_1 | fld_label_1 | fld_type_1 | fld_name_2 | fld_label_2 | fld_type_2 | fld_name_3 | fld_label_3 | fld_type_3 | + | Create pmtable with type varchar, bigint and boolean | 1 | PMT_Test_QA1 | pmt table 1 created with script | UNO | UNO | VARCHAR | DOS | DOS | BIGINT | TRES | TRES | BOOLEAN | + | Create pmtable with type varchar, char and date | 2 | PMT_Test_QA2 | pmt table 2 created with script | UNO | UNO | VARCHAR | DOS | DOS | CHAR | TRES | TRES | DATE | + | Create pmtable with type varchar, datetime and decimal | 3 | PMT_Test_QA3 | pmt table 3 created with script | UNO | UNO | VARCHAR | DOS | DOS | DATETIME | TRES | TRES | DECIMAL | + | Create pmtable with type varchar, double and float | 4 | PMT_Test_QA4 | pmt table 4 created with script | UNO | UNO | VARCHAR | DOS | DOS | DOUBLE | TRES | TRES | FLOAT | + | Create pmtable with type varchar, integer and longvarchar | 5 | PMT_Test_QA5 | pmt table 5 created with script | UNO | UNO | VARCHAR | DOS | DOS | INTEGER | TRES | TRES | LONGVARCHAR | + | Create pmtable with type varchar, real and smallint | 6 | PMT_Test_QA6 | pmt table 6 created with script | UNO | UNO | VARCHAR | DOS | DOS | REAL | TRES | TRES | SMALLINT | + | Create pmtable with type varchar, time and tinyint | 7 | PMT_Test_QA7 | pmt table 7 created with script | UNO | UNO | VARCHAR | DOS | DOS | TIME | TRES | TRES | TINYINT | + + +Scenario Outline: Create a new Data of pm table. + Given POST this data: + """ + { + "CAMPO1" : "QA", + "CAMPO2" : "" + } + """ + And I request "pmtable/pmt_uid/data" with the key "pmt_uid" stored in session array as variable "pmt_uid_" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "object" + + Examples: + + | pmt_uid_number | CAMPO2 | + | 1 | DEV1 | + | 2 | DEV2 | + | 3 | DEV3 | + | 4 | DEV4 | + | 5 | DEV5 | + | 6 | DEV6 | + | 7 | DEV7 | + + +Scenario Outline: Update a pm table of a project + Given PUT this data: + """ + { + "rep_tab_dsc" : "descripcion de la tabla", + "fields" : [ + { + "fld_key" : 1, + "fld_name" : "", + "fld_label" : "", + "fld_type" : "", + "fld_size" : 200 + } + ] + } + """ + And that I want to update a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + + Examples: + + | Description | pmt_uid_number | fld_name | fld_label | + | Update a pmtable 1 | 1 | UPDATEUNO | UPDATEUNO | + | Update a pmtable 3 | 3 | UPDATETRES | UPDATETRES | + | Update a pmtable 6 | 6 | UPDATESEIS | UPDATESEIS | + + +Scenario Outline: Get a single the PMTABLE after update + Given that I want to get a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable" + 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 "object" + And that "fld_name" is set to "" + And that "fld_label" is set to "" + And that "fld_type" is set to "" + + Examples: + + | pmt_uid_number | fld_name | fld_label | + | 1 | UPDATEUNO | UPDATEUNO | + | 3 | UPDATETRES | UPDATETRES | + | 6 | UPDATESEIS | UPDATESEIS | + + + +Scenario Outline: Update a a data of pm table + Given PUT this data: + """ + { + "CAMPO1" : "QA", + "CAMPO2" : "" + } + """ + And that I want to update "PM Table" + And I request "pmtable/pmt_uid/data" with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + + Examples: + + | pmt_uid_number | CAMPO2 | + | 1 | UPDATEQA2 | + | 4 | UPDATEQA4 | + | 6 | UPDATEQA6 | + + +Scenario Outline: Get data of the PMTABLE + Given I request "pmtable/pmt_uid/data" with the key "pmt_uid" stored in session array as variable "pmt_uid_" + 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 "object" + And that "CAMPO1" is set to "QA" + And that "CAMPO2" is set to "CAMPO2" + + Examples: + + | pmt_uid_number | CAMPO2 | + | 1 | UPDATEQA2 | + | 4 | UPDATEQA4 | + | 6 | UPDATEQA6 | + + +Scenario: Get the PMTABLE List when there are exactly two pmtables in this workspace + Given I request "pmtable" + 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" + And the response has 2 records + + +Scenario Outline: Delete a pm table of a pmtable + Given that I want to delete a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + Examples: + + | pmt_uid_number | + | 1 | + | 2 | + | 3 | + | 4 | + | 5 | + | 6 | + | 7 | + + +Scenario Outline: Delete a data of a pmtable + Given that I want to delete a resource with the key "pmt_uid" stored in session array as variable "pmt_uid_" + And I request "pmtable//data/CAMPO1/QA" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + Examples: + + | pmt_uid_number | + | 1 | + + +Scenario: Get the PMTABLE List when there are exactly ONE pmtables in this workspace + Given I request "pmtable" + 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" + And the response has 1 records \ No newline at end of file diff --git a/features/backend/admin_setup/pm_tables/negative_tests_pm_tables.feature b/features/backend/admin_setup/pm_tables/negative_tests_pm_tables.feature new file mode 100644 index 000000000..51bf2cac9 --- /dev/null +++ b/features/backend/admin_setup/pm_tables/negative_tests_pm_tables.feature @@ -0,0 +1,65 @@ +@ProcessMakerMichelangelo @RestAPI +Feature: Output Documents Negative Tests + + +Background: + Given that I have a valid access_token + +Scenario: Create news pmtable with name same + Given POST this data: + """ + { + "pmt_tab_name" : "DYNAFORM", + "pmt_tab_dsc" : "", + "fields" : [ + { + "fld_key" : 1, + "fld_name" : "DYN_UID", + "fld_label" : "Unique Id", + "fld_type" : "VARCHAR", + "fld_size" : 32 + },{ + "fld_name" : "DYN_TITLE", + "fld_label" : "Title", + "fld_type" : "VARCHAR", + "fld_size" : 150 + } + ] + } + """ + And I request "pmtable" + Then the response status code should be 400 + And the response status message should have the following text "already exits" + + +Scenario Outline: Create news pmtable (Negative Test) + Given POST this data: + """ + { + "pmt_tab_name" : "", + "pmt_tab_dsc" : "", + "fields" : [ + { + "fld_key" : 1, + "fld_name" : "", + "fld_label" : "", + "fld_type" : "", + "fld_size" : "" + }, + ] + } + """ + And I request "pmtable" + Then the response status code should be + And the response status message should have the following text "" + + Examples: + + | test_description | pmt_tab_name | pmt_tab_dsc | fld_name | fld_label | fld_type | fld_size | fld_name | fld_label | fld_type | fld_size | fld_name | fld_label | fld_type | fld_size | error_code | error_message | + | Required pmt_tab_name | | pmt table 1 | UNO | UNO | VARCHAR | 32 | DOS | DOS | BIGINT | | TRES | TRES | BOOLEAN | | 400 | pmt_tab_name | + | Required pmt_tab_dsc | PMT_Test_QA2 | | UNO | UNO | VARCHAR | 32 | DOS | DOS | CHAR | | TRES | TRES | DATE | | 400 | pmt_tab_dsc | + | Required fld_name | PMT_Test_QA3 | pmt table 3 | | UNO | VARCHAR | 32 | DOS | DOS | DATETIME | | TRES | TRES | DECIMAL | | 400 | fld_name | + | Required fld_label | PMT_Test_QA4 | pmt table 4 | UNO | | VARCHAR | 32 | DOS | DOS | DOUBLE | | TRES | TRES | FLOAT | | 400 | fld_label | + | Required fld_type | PMT_Test_QA5 | pmt table 5 | UNO | UNO | VARCHAR | 32 | DOS | DOS | | | TRES | TRES | LONGVARCHAR | | 400 | fld_type | + | Invalid fld_size | PMT_Test_QA6 | pmt table 6 | UNO | UNO | VARCHAR | sample | DOS | DOS | REAL | samke | TRES | TRES | SMALLINT | task | 400 | fld_size | + | Invalid fld_type | PMT_Test_QA7 | pmt table 7 | UNO | UNO | 123 | 32 | DOS | DOS | 1234 | | TRES | TRES | 457,777 | | 400 | fld_type | \ No newline at end of file diff --git a/features/backend/projects/project/basic_sequence_project_resources.feature b/features/backend/projects/project/basic_sequence_project_resources.feature new file mode 100644 index 000000000..946d6f48e --- /dev/null +++ b/features/backend/projects/project/basic_sequence_project_resources.feature @@ -0,0 +1,485 @@ +@ProcessMakerMichelangelo @RestAPI +Feature: Project Resource + Requirements: + a workspace with the process 40 already loaded aproximatly + +Background: + Given that I have a valid access_token + + +Scenario: Get a list of projects + Given I request "project" + 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 definition of a project activity for obtent definition + Given I request "project/4224292655297723eb98691001100052/activity/65496814252977243d57684076211485?filter=definition" + 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: Create new Projects + Given POST this data: + """ + { + "prj_name": "Prueba New Project", + "prj_description": "New Project, created of this script", + "prj_target_namespace": "sample", + "prj_expresion_language": null, + "prj_type_language": null, + "prj_exporter": null, + "prj_exporter_version": null, + "prj_create_date": "2014-04-28 11:01:54", + "prj_update_date": "2014-04-30 08:46:17", + "prj_author": "00000000000000000000000000000001", + "prj_author_version": null, + "prj_original_source": null, + "diagrams": [ + { + "dia_uid": "956446767534fece3179b54016939905", + "prj_uid": "655001588534fece2d46f86033751389", + "dia_name": "Prueba New Project", + "dia_is_closable": 0, + "pro_uid": "736054291534fece3342096012897456", + "activities": [ + { + "act_uid": "569214945534fecfa8f0835033274864", + "act_name": "Task # 1", + "act_type": "TASK", + "act_is_for_compensation": "0", + "act_start_quantity": "1", + "act_completion_quantity": "0", + "act_task_type": "EMPTY", + "act_implementation": "", + "act_instantiate": "0", + "act_script_type": "", + "act_script": "", + "act_loop_type": "NONE", + "act_test_before": "0", + "act_loop_maximum": "0", + "act_loop_condition": "0", + "act_loop_cardinality": "0", + "act_loop_behavior": "0", + "act_is_adhoc": "0", + "act_is_collapsed": "0", + "act_completion_condition": "0", + "act_ordering": "0", + "act_cancel_remaining_instances": "0", + "act_protocol": "0", + "act_method": "0", + "act_is_global": "0", + "act_referer": "0", + "act_default_flow": "0", + "act_master_diagram": "0", + "bou_x": "486", + "bou_y": "101", + "bou_width": "161", + "bou_height": "42", + "bou_container": "bpmnDiagram" + } + ], + "events": [ + { + "evn_uid": "259220802534fecfad49854013091940", + "evn_name": "Start # 1", + "evn_type": "START", + "evn_marker": "MESSAGE", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "LEAD", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "CATCH", + "bou_x": "517", + "bou_y": "19", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + }, + { + "evn_uid": "856003291534fecfae5dff7085708495", + "evn_name": "End # 1", + "evn_type": "END", + "evn_marker": "EMPTY", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "THROW", + "bou_x": "549", + "bou_y": "181", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + } + ], + "gateways": [], + "flows": [ + { + "flo_uid": "17092374253551306216a72013534569", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "569214945534fecfa8f0835033274864", + "flo_element_origin_type": "bpmnActivity", + "flo_element_dest": "856003291534fecfae5dff7085708495", + "flo_element_dest_type": "bpmnEvent", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "561", + "flo_y1": "193", + "flo_x2": "577", + "flo_y2": "193", + "flo_state": [ + { + "x": 566, + "y": 145 + }, + { + "x": 566, + "y": 171 + }, + { + "x": 602, + "y": 171 + }, + { + "x": 602, + "y": 198 + }, + { + "x": 582, + "y": 198 + } + ] + }, + { + "flo_uid": "304762728534fecfaf3bf88040991913", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "259220802534fecfad49854013091940", + "flo_element_origin_type": "bpmnEvent", + "flo_element_dest": "569214945534fecfa8f0835033274864", + "flo_element_dest_type": "bpmnActivity", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "529", + "flo_y1": "95", + "flo_x2": "556", + "flo_y2": "95", + "flo_state": [ + { + "x": 534, + "y": 52 + }, + { + "x": 534, + "y": 76 + }, + { + "x": 561, + "y": 76 + }, + { + "x": 561, + "y": 100 + } + ] + } + ], + "artifacts": [], + "laneset": [], + "lanes": [] + } + ] + } + """ + And I request "projects" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "array" + And store "new_uid" in session array as variable "project_new_uid_" where an object has "object" equal to "project" + And store "new_uid" in session array as variable "diagram_new_uid_" where an object has "object" equal to "diagram" + And store "new_uid" in session array as variable "activity_new_uid_" where an object has "object" equal to "activity" + And store "new_uid" in session array as variable "event_new_uid_" where an object has "object" equal to "event" + And store "new_uid" in session array as variable "flow_new_uid_" where an object has "object" equal to "flow" + + Examples: + + | Description | project_new_uid_number | + | Create a new process | 1 | + + +Scenario: Get a list of projects + Given I request "project" + 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: Update the Projects and then check if the values had changed + Given PUT this data: + """ + { + "prj_name": "Update Prueba New Project", + "prj_description": "Update New Project, created of this script", + "prj_target_namespace": "sample", + "prj_expresion_language": null, + "prj_type_language": null, + "prj_exporter": null, + "prj_exporter_version": null, + "prj_create_date": "2014-04-28 11:01:54", + "prj_update_date": "2014-04-30 08:46:17", + "prj_author": "00000000000000000000000000000001", + "prj_author_version": null, + "prj_original_source": null, + "diagrams": [ + { + "dia_uid": "956446767534fece3179b54016939905", + "prj_uid": "655001588534fece2d46f86033751389", + "dia_name": "Update Prueba New Project", + "dia_is_closable": 0, + "pro_uid": "736054291534fece3342096012897456", + "activities": [ + { + "act_uid": "569214945534fecfa8f0835033274864", + "act_name": "Task # 1", + "act_type": "TASK", + "act_is_for_compensation": "0", + "act_start_quantity": "1", + "act_completion_quantity": "0", + "act_task_type": "EMPTY", + "act_implementation": "", + "act_instantiate": "0", + "act_script_type": "", + "act_script": "", + "act_loop_type": "NONE", + "act_test_before": "0", + "act_loop_maximum": "0", + "act_loop_condition": "0", + "act_loop_cardinality": "0", + "act_loop_behavior": "0", + "act_is_adhoc": "0", + "act_is_collapsed": "0", + "act_completion_condition": "0", + "act_ordering": "0", + "act_cancel_remaining_instances": "0", + "act_protocol": "0", + "act_method": "0", + "act_is_global": "0", + "act_referer": "0", + "act_default_flow": "0", + "act_master_diagram": "0", + "bou_x": "486", + "bou_y": "101", + "bou_width": "161", + "bou_height": "42", + "bou_container": "bpmnDiagram" + } + ], + "events": [ + { + "evn_uid": "259220802534fecfad49854013091940", + "evn_name": "Start # 1", + "evn_type": "START", + "evn_marker": "MESSAGE", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "LEAD", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "CATCH", + "bou_x": "517", + "bou_y": "19", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + }, + { + "evn_uid": "856003291534fecfae5dff7085708495", + "evn_name": "End # 1", + "evn_type": "END", + "evn_marker": "EMPTY", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "THROW", + "bou_x": "549", + "bou_y": "181", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + } + ], + "gateways": [], + "flows": [ + { + "flo_uid": "17092374253551306216a72013534569", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "569214945534fecfa8f0835033274864", + "flo_element_origin_type": "bpmnActivity", + "flo_element_dest": "856003291534fecfae5dff7085708495", + "flo_element_dest_type": "bpmnEvent", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "561", + "flo_y1": "193", + "flo_x2": "577", + "flo_y2": "193", + "flo_state": [ + { + "x": 566, + "y": 145 + }, + { + "x": 566, + "y": 171 + }, + { + "x": 602, + "y": 171 + }, + { + "x": 602, + "y": 198 + }, + { + "x": 582, + "y": 198 + } + ] + }, + { + "flo_uid": "304762728534fecfaf3bf88040991913", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "259220802534fecfad49854013091940", + "flo_element_origin_type": "bpmnEvent", + "flo_element_dest": "569214945534fecfa8f0835033274864", + "flo_element_dest_type": "bpmnActivity", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "529", + "flo_y1": "95", + "flo_x2": "556", + "flo_y2": "95", + "flo_state": [ + { + "x": 534, + "y": 52 + }, + { + "x": 534, + "y": 76 + }, + { + "x": 561, + "y": 76 + }, + { + "x": 561, + "y": 100 + } + ] + } + ], + "artifacts": [], + "laneset": [], + "lanes": [] + } + ] + } + """ + And that I want to update a resource with the key "new_uid" stored in session array as variable "project_new_uid_" in position 0 + And I request "projects" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + + Examples: + + | test_description | project_new_uid_number | + | Update a new project created | 1 | + + +Scenario Outline: Get definition of a project + Given that I want to get a resource with the key "new_uid" stored in session array as variable "project_new_uid_" in postion 0 + And I request "project" + 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 "object" + And that "prj_name" is set to "Update Prueba New Project" + And that "prj_description" is set to "Update New Project, created of this script" + + Examples: + + | project_new_uid_number | + | 1 | + +Scenario Outline: Delete a Project activity created previously in this script + Given that I want to delete a resource with the key "new_uid" stored in session array as variable "project_new_uid_" in position 0 + And I request "projects" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + Examples: + + | project_new_uid_number | + | 1 | + + +Scenario: Get a list of projects + Given I request "project" + 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" \ No newline at end of file diff --git a/features/backend/projects/project/main_tests_project_resources.feature b/features/backend/projects/project/main_tests_project_resources.feature new file mode 100644 index 000000000..7c8adfa46 --- /dev/null +++ b/features/backend/projects/project/main_tests_project_resources.feature @@ -0,0 +1,532 @@ +@ProcessMakerMichelangelo @RestAPI +Feature: Project Resource Main Test + Requirements: + a workspace with the process 40 already loaded aproximatly + +Background: + Given that I have a valid access_token + + +Scenario: Get a list of projects + Given I request "project" + 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 definition of a project activity for obtent definition + Given I request "project/4224292655297723eb98691001100052/activity/65496814252977243d57684076211485?filter=definition" + 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: Create new Projects + Given POST this data: + """ + { + "prj_name": "", + "prj_description": "", + "prj_target_namespace": "sample", + "prj_expresion_language": null, + "prj_type_language": null, + "prj_exporter": null, + "prj_exporter_version": null, + "prj_create_date": "2014-04-28 11:01:54", + "prj_update_date": "2014-04-30 08:46:17", + "prj_author": "", + "prj_author_version": null, + "prj_original_source": null, + "diagrams": [ + { + "dia_uid": "956446767534fece3179b54016939905", + "prj_uid": "655001588534fece2d46f86033751389", + "dia_name": "", + "dia_is_closable": 0, + "pro_uid": "736054291534fece3342096012897456", + "activities": [ + { + "act_uid": "569214945534fecfa8f0835033274864", + "act_name": "Task # 1", + "act_type": "TASK", + "act_is_for_compensation": "0", + "act_start_quantity": "1", + "act_completion_quantity": "0", + "act_task_type": "EMPTY", + "act_implementation": "", + "act_instantiate": "0", + "act_script_type": "", + "act_script": "", + "act_loop_type": "NONE", + "act_test_before": "0", + "act_loop_maximum": "0", + "act_loop_condition": "0", + "act_loop_cardinality": "0", + "act_loop_behavior": "0", + "act_is_adhoc": "0", + "act_is_collapsed": "0", + "act_completion_condition": "0", + "act_ordering": "0", + "act_cancel_remaining_instances": "0", + "act_protocol": "0", + "act_method": "0", + "act_is_global": "0", + "act_referer": "0", + "act_default_flow": "0", + "act_master_diagram": "0", + "bou_x": "486", + "bou_y": "101", + "bou_width": "161", + "bou_height": "42", + "bou_container": "bpmnDiagram" + }, + { + "act_uid": "569214945534fecfa8f0835033274864", + "act_name": "Task # 2", + "act_type": "TASK", + "act_is_for_compensation": "0", + "act_start_quantity": "1", + "act_completion_quantity": "0", + "act_task_type": "EMPTY", + "act_implementation": "", + "act_instantiate": "0", + "act_script_type": "", + "act_script": "", + "act_loop_type": "NONE", + "act_test_before": "0", + "act_loop_maximum": "0", + "act_loop_condition": "0", + "act_loop_cardinality": "0", + "act_loop_behavior": "0", + "act_is_adhoc": "0", + "act_is_collapsed": "0", + "act_completion_condition": "0", + "act_ordering": "0", + "act_cancel_remaining_instances": "0", + "act_protocol": "0", + "act_method": "0", + "act_is_global": "0", + "act_referer": "0", + "act_default_flow": "0", + "act_master_diagram": "0", + "bou_x": "486", + "bou_y": "101", + "bou_width": "161", + "bou_height": "42", + "bou_container": "bpmnDiagram" + } + ], + "events": [ + { + "evn_uid": "259220802534fecfad49854013091940", + "evn_name": "Start # 1", + "evn_type": "START", + "evn_marker": "MESSAGE", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "LEAD", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "CATCH", + "bou_x": "517", + "bou_y": "19", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + }, + { + "evn_uid": "856003291534fecfae5dff7085708495", + "evn_name": "End # 1", + "evn_type": "END", + "evn_marker": "EMPTY", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "THROW", + "bou_x": "549", + "bou_y": "181", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + } + ], + "gateways": [], + "flows": [ + { + "flo_uid": "17092374253551306216a72013534569", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "569214945534fecfa8f0835033274864", + "flo_element_origin_type": "bpmnActivity", + "flo_element_dest": "856003291534fecfae5dff7085708495", + "flo_element_dest_type": "bpmnEvent", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "561", + "flo_y1": "193", + "flo_x2": "577", + "flo_y2": "193", + "flo_state": [ + { + "x": 566, + "y": 145 + }, + { + "x": 566, + "y": 171 + }, + { + "x": 602, + "y": 171 + }, + { + "x": 602, + "y": 198 + }, + { + "x": 582, + "y": 198 + } + ] + }, + { + "flo_uid": "304762728534fecfaf3bf88040991913", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "259220802534fecfad49854013091940", + "flo_element_origin_type": "bpmnEvent", + "flo_element_dest": "569214945534fecfa8f0835033274864", + "flo_element_dest_type": "bpmnActivity", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "529", + "flo_y1": "95", + "flo_x2": "556", + "flo_y2": "95", + "flo_state": [ + { + "x": 534, + "y": 52 + }, + { + "x": 534, + "y": 76 + }, + { + "x": 561, + "y": 76 + }, + { + "x": 561, + "y": 100 + } + ] + } + ], + "artifacts": [], + "laneset": [], + "lanes": [] + } + ] + } + """ + And I request "projects" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "array" + And store "new_uid" in session array as variable "project_new_uid_" where an object has "object" equal to "project" + And store "new_uid" in session array as variable "diagram_new_uid_" where an object has "object" equal to "diagram" + And store "new_uid" in session array as variable "activity_new_uid_" where an object has "object" equal to "activity" + And store "new_uid" in session array as variable "event_new_uid_" where an object has "object" equal to "event" + And store "new_uid" in session array as variable "flow_new_uid_" where an object has "object" equal to "flow" + + + Examples: + + | Description | project_new_uid_number | prj_name | prj_description | prj_author | dia_name | + | Create a new process with sequencial derivation | 1 | Process sequencial | Process with derivation sequencial | 00000000000000000000000000000001 | Process sequencial | + + + + + + + + + + + + + +Scenario: Get a list of projects + Given I request "project" + 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: Update the Projects and then check if the values had changed + Given PUT this data: + """ + { + "prj_name": "Update Prueba New Project", + "prj_description": "Update New Project, created of this script", + "prj_target_namespace": "sample", + "prj_expresion_language": null, + "prj_type_language": null, + "prj_exporter": null, + "prj_exporter_version": null, + "prj_create_date": "2014-04-28 11:01:54", + "prj_update_date": "2014-04-30 08:46:17", + "prj_author": "00000000000000000000000000000001", + "prj_author_version": null, + "prj_original_source": null, + "diagrams": [ + { + "dia_uid": "956446767534fece3179b54016939905", + "prj_uid": "655001588534fece2d46f86033751389", + "dia_name": "Prueba", + "dia_is_closable": 0, + "pro_uid": "736054291534fece3342096012897456", + "activities": [ + { + "act_uid": "569214945534fecfa8f0835033274864", + "act_name": "Task # 1", + "act_type": "TASK", + "act_is_for_compensation": "0", + "act_start_quantity": "1", + "act_completion_quantity": "0", + "act_task_type": "EMPTY", + "act_implementation": "", + "act_instantiate": "0", + "act_script_type": "", + "act_script": "", + "act_loop_type": "NONE", + "act_test_before": "0", + "act_loop_maximum": "0", + "act_loop_condition": "0", + "act_loop_cardinality": "0", + "act_loop_behavior": "0", + "act_is_adhoc": "0", + "act_is_collapsed": "0", + "act_completion_condition": "0", + "act_ordering": "0", + "act_cancel_remaining_instances": "0", + "act_protocol": "0", + "act_method": "0", + "act_is_global": "0", + "act_referer": "0", + "act_default_flow": "0", + "act_master_diagram": "0", + "bou_x": "486", + "bou_y": "101", + "bou_width": "161", + "bou_height": "42", + "bou_container": "bpmnDiagram" + } + ], + "events": [ + { + "evn_uid": "259220802534fecfad49854013091940", + "evn_name": "Start # 1", + "evn_type": "START", + "evn_marker": "MESSAGE", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "LEAD", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "CATCH", + "bou_x": "517", + "bou_y": "19", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + }, + { + "evn_uid": "856003291534fecfae5dff7085708495", + "evn_name": "End # 1", + "evn_type": "END", + "evn_marker": "EMPTY", + "evn_is_interrupting": "1", + "evn_cancel_activity": "0", + "evn_activity_ref": null, + "evn_wait_for_completion": "0", + "evn_error_name": null, + "evn_error_code": null, + "evn_escalation_name": null, + "evn_escalation_code": null, + "evn_message": "", + "evn_operation_name": null, + "evn_operation_implementation_ref": null, + "evn_time_date": null, + "evn_time_cycle": null, + "evn_time_duration": null, + "evn_behavior": "THROW", + "bou_x": "549", + "bou_y": "181", + "bou_width": "33", + "bou_height": "33", + "bou_container": "bpmnDiagram" + } + ], + "gateways": [], + "flows": [ + { + "flo_uid": "17092374253551306216a72013534569", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "569214945534fecfa8f0835033274864", + "flo_element_origin_type": "bpmnActivity", + "flo_element_dest": "856003291534fecfae5dff7085708495", + "flo_element_dest_type": "bpmnEvent", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "561", + "flo_y1": "193", + "flo_x2": "577", + "flo_y2": "193", + "flo_state": [ + { + "x": 566, + "y": 145 + }, + { + "x": 566, + "y": 171 + }, + { + "x": 602, + "y": 171 + }, + { + "x": 602, + "y": 198 + }, + { + "x": 582, + "y": 198 + } + ] + }, + { + "flo_uid": "304762728534fecfaf3bf88040991913", + "flo_type": "SEQUENCE", + "flo_name": null, + "flo_element_origin": "259220802534fecfad49854013091940", + "flo_element_origin_type": "bpmnEvent", + "flo_element_dest": "569214945534fecfa8f0835033274864", + "flo_element_dest_type": "bpmnActivity", + "flo_is_inmediate": "1", + "flo_condition": null, + "flo_x1": "529", + "flo_y1": "95", + "flo_x2": "556", + "flo_y2": "95", + "flo_state": [ + { + "x": 534, + "y": 52 + }, + { + "x": 534, + "y": 76 + }, + { + "x": 561, + "y": 76 + }, + { + "x": 561, + "y": 100 + } + ] + } + ], + "artifacts": [], + "laneset": [], + "lanes": [] + } + ] + } + """ + And that I want to update a resource with the key "new_uid" stored in session array as variable "project_new_uid_" + And I request "projects" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + + Examples: + + | test_description | project_new_uid_number | + | Update a new project created | 1 | + + +Scenario Outline: Get definition of a project + Given that I want to get a resource with the key "new_uid" stored in session array as variable "project_new_uid_" + And I request "project" + 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 "object" + And that "prj_name" is set to "Update Prueba New Project" + And that "prj_description" is set to "Update New Project, created of this script" + + Examples: + + | project_new_uid_number | + | 1 | + +Scenario Outline: Delete a Project activity created previously in this script + Given that I want to delete a resource with the key "new_uid" stored in session array as variable "project_new_uid_" + And I request "projects" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + Examples: + + | project_new_uid_number | + | 1 | + + +Scenario: Get a list of projects + Given I request "project" + 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" \ No newline at end of file diff --git a/features/backend/projects/project/negative_tests_project_resources.feature b/features/backend/projects/project/negative_tests_project_resources.feature new file mode 100644 index 000000000..e69de29bb