More robot tests for CC 16/86416/1
authorJerry Flood <jflood@att.com>
Fri, 26 Apr 2019 16:54:02 +0000 (12:54 -0400)
committerJerry Flood <jflood@att.com>
Fri, 26 Apr 2019 16:54:12 +0000 (12:54 -0400)
Issue-ID: OPTFRA-474
Change-Id: I8288c9094a9a56b882994f784c26231df5a47a89
Signed-off-by: Jerry Flood <jflood@att.com>
cmso-robot/robot/resources/scheduler_requests/approval_requests.robot
cmso-robot/robot/testsuites/ChangeManagementQuery.robot [new file with mode: 0644]
cmso-robot/robot/testsuites/MiscTests.robot
cmso-service/src/main/java/org/onap/optf/cmso/service/rs/CmQueryParameters.java

index c971017..d732f4e 100644 (file)
@@ -23,10 +23,10 @@ Wait For Pending Approval
 
 Send Tier2 Approval
     [Documentation]    Sends an approval post request for the given schedule using the UUID and User given and checks that request worked
-    [Arguments]   ${uuid}   ${user}   ${status}
+    [Arguments]   ${uuid}   ${user}   ${status}   ${status_code}=204
     ${approval}=   Create Dictionary   approvalUserId=${user}   approvalType=Tier 2   approvalStatus=${status}          
     ${resp}=   Post Change Management   auth   schedules/${uuid}/approvals   data=${approval}
-    Should Be Equal As Strings    ${resp.status_code}   204
+    Should Be Equal As Strings    ${resp.status_code}   ${status_code}
      
     
 Send Invalid Approval    
diff --git a/cmso-robot/robot/testsuites/ChangeManagementQuery.robot b/cmso-robot/robot/testsuites/ChangeManagementQuery.robot
new file mode 100644 (file)
index 0000000..f6ef3e9
--- /dev/null
@@ -0,0 +1,76 @@
+*** Settings ***
+Documentation    Verifies queries
+
+Library   StringTemplater
+Library   UUID
+Library   Collections
+
+Resource    ../resources/test_templates/change_management_ete.robot
+
+Suite Setup   Create Scheduler Request
+Suite Teardown   Delete Scheduler Request
+*** Variables ***
+${QUERY_TEST_UUID}    ""
+
+*** Test Cases ***
+Change Management Query Simple   
+   [Tags]   ete   query
+   ${query}=   Catenate   schedules/scheduleDetails?request.scheduleId=${QUERY_TEST_UUID}
+   ${response}=   Get Change Management   alias   ${query}
+   Row Count Should Be    ${response}   3
+
+Change Management Query In   
+   [Tags]   ete   query
+   ${query}=   Catenate   schedules/scheduleDetails?request.scheduleId=${QUERY_TEST_UUID}&vnfName=node1&vnfName=node3&WorkflowName=Replace
+   ${response}=   Get Change Management   alias   ${query}
+   Row Count Should Be    ${response}   2
+
+Change Management Query Like   
+   [Tags]   ete   query
+   ${query}=   Catenate   schedules/scheduleDetails?request.scheduleId=${QUERY_TEST_UUID}&vnfName=node%&request.createDateTime=2018-01-01T00:00:00Z
+   ${response}=   Get Change Management   alias   ${query}
+   Row Count Should Be    ${response}   3
+
+Change Management Not Found   
+   [Tags]   ete   query
+   ${query}=   Catenate   schedules/scheduleDetails?request.scheduleId=${QUERY_TEST_UUID}&vnfName=NoNode&request.createDateTime=2018-01-01T00:00:00Z,2018-01-01T01:00:00Z
+   ${response}=   Get Change Management   alias   ${query}
+   Should Be Equal As Strings    ${response.status_code}   404
+
+Change Management Invalid Argument   
+   [Tags]   ete   query
+   ${query}=   Catenate   schedules/scheduleDetails?request.scheduleId=${QUERY_TEST_UUID}&bad=NoNode
+   ${response}=   Get Change Management   alias   ${query}
+   Should Be Equal As Strings    ${response.status_code}   400
+
+Change Management Invalid Date   
+   [Tags]   ete   query
+   ${query}=   Catenate   schedules/scheduleDetails?request.scheduleId=${QUERY_TEST_UUID}&request.createDateTime=2018-01-010
+   ${response}=   Get Change Management   alias   ${query}
+   Should Be Equal As Strings    ${response.status_code}   400
+
+*** Keywords *** 
+Row Count Should Be 
+   [Arguments]   ${response}   ${count}
+   Should Be Equal As Strings   ${response.status_code}   200       
+   ${json}=   Set Variable   ${response.json()}
+   Log    ${json}
+   ${length}=   Get Length   ${json}
+   Should be Equal as Integers   ${count}   ${length}
+       
+    
+Create Scheduler Request
+   [Documentation]   Creates a future request, runs query, deletes request 
+   ${QUERY_TEST_UUID}=    Generate UUID
+   Set Suite Variable   ${QUERY_TEST_UUID}   ${QUERY_TEST_UUID}
+   ${request_file}=   Catenate   OneGroupMultipleVNFsOneChangeWindow.json.template
+   ${workflow}=   Catenate   Replace  
+   ${template_folder}=    Catenate   ${TEMPLATES}/changemanagement
+   ${resp}=   Create Schedule   ${QUERY_TEST_UUID}   ${request_file}   ${template_folder}   workflow=${workflow}
+   Should Be Equal as Strings    ${resp.status_code}   202
+   Wait Until Keyword Succeeds    600s    30s    Wait For Pending Approval   ${QUERY_TEST_UUID}
+
+Delete Scheduler Request
+   [Documentation]   Creates a future request, runs query, deletes request 
+   Delete Change Management   auth   schedules/${QUERY_TEST_UUID}
index 12da302..987f7d6 100755 (executable)
@@ -9,6 +9,7 @@ Resource    ../resources/optimizer_common.robot
 Resource    ../resources/scheduler_common.robot\r
 Resource    ../resources/ticketmgt_common.robot\r
 Resource    ../resources/topology_common.robot\r
+Resource    ../resources/scheduler_requests/approval_requests.robot\r
 \r
 # Test Setup\r
 # Test Teardown   \r
@@ -63,25 +64,45 @@ Test CMSO Topology Health
 Test CMSO Optimizer Policies\r
     [Tags]   ete   \r
     ${response}=    Get Optimizer   alias  policies   \r
+    Should Be Equal As Strings   ${response.status_code}   200\r
     ##Should Contain   ${response.json()}   kECFDaLusYNHTN6Q4DmsYw==\r
 \r
 Test CMSO Optimizer Get Schedule\r
     [Tags]   ete   \r
     ${response}=    Get Optimizer   alias  optimize/schedule/id1   \r
+    Should Be Equal As Strings   ${response.status_code}   200\r
     ##Should Contain   ${response.json()}   kECFDaLusYNHTN6Q4DmsYw==\r
 \r
 Test CMSO Optimizer Delete Schedule\r
     [Tags]   ete   \r
     ${response}=    Delete Optimizer   alias  optimize/schedule/id1   \r
+    Should Be Equal As Strings   ${response.status_code}   204\r
     ##Should Contain   ${response.json()}   kECFDaLusYNHTN6Q4DmsYw==\r
 \r
 \r
 Test CMSO Ticket Mgt Get Tickets\r
     [Tags]   ete \r
     ${response}=    Get Ticket Mgt   alias    tickets\r
+    Should Be Equal As Strings   ${response.status_code}   200\r
     ##Dictionary Should Contain Item   ${response.json()}   healthy  True \r
 \r
 Test CMSO Ticket Mgt Get Ticket\r
     [Tags]   ete \r
     ${response}=    Get Ticket Mgt   alias    ticket/none\r
+    Should Be Equal As Strings   ${response.status_code}   200\r
     ##Dictionary Should Contain Item   ${response.json()}   healthy  True \r
+\r
+Get Not Found Schedule\r
+    [Tags]   ete \r
+    ${response}=   Get Change Management   alias   schedules/doesNotExist\r
+    Should Be Equal As Strings   ${response.status_code}   404\r
+\r
+Delete Not Found Schedule\r
+    [Tags]   ete \r
+    ${response}=   Delete Change Management   alias   schedules/doesNotExist\r
+    Should Be Equal As Strings   ${response.status_code}   404\r
+\r
+Approve Not Found Schedule\r
+    [Tags]   ete \r
+    Send Tier2 Approval   DoesNotExist   jf9860    Accespted   status_code=400\r
\ No newline at end of file
index 442abe3..1e4a46a 100644 (file)
@@ -223,11 +223,13 @@ public class CmQueryParameters {
     }\r
 \r
     private static DateTime convertDate(String utcDate, String urlName) throws CmsoException {\r
-        DateTime dateTime = ISODateTimeFormat.dateTimeParser().parseDateTime(utcDate);\r
-        if (dateTime != null) {\r
+        try {\r
+            DateTime dateTime = ISODateTimeFormat.dateTimeParser().parseDateTime(utcDate);\r
             return dateTime;\r
         }\r
-        throw new CmsoException(Status.BAD_REQUEST, LogMessages.INVALID_DATE_FILTER, urlName, utcDate);\r
+        catch (Exception e) {\r
+            throw new CmsoException(Status.BAD_REQUEST, LogMessages.INVALID_DATE_FILTER, urlName, utcDate);\r
+        }\r
     }\r
 \r
     // public static void main(String argv[])\r