Step 2: Move test folder to root
[integration/test.git] / csit / libraries / CarsAndPeopleCRUD.robot
diff --git a/csit/libraries/CarsAndPeopleCRUD.robot b/csit/libraries/CarsAndPeopleCRUD.robot
new file mode 100644 (file)
index 0000000..a853b31
--- /dev/null
@@ -0,0 +1,70 @@
+*** Settings ***
+Library           Collections
+Resource          DatastoreCRUD.robot
+
+*** Keywords ***
+Initialize Cars
+    [Arguments]    ${controller_ip}    ${field bases}
+    [Documentation]    Initializes the cars shard by creating a 0th car with POST then deleting it.
+    ...    Field bases are a dictionary of datastore record field values onto which is appended
+    ...    an incremental value to uniquely identify the record from which it came.
+    ...    Typically, you will use the Create Dictionary keyword on arguments which look like this:
+    ...    id=${EMPTY} category=coupe model=model manufacturer=mfg year=2
+    ${node}=    Set Variable    ${EMPTY}
+    ${prefix}=    Set Variable    {"car:cars":{"car-entry":[{
+    ${postfix}=    Set Variable    }]}}
+    Create Records    ${controller_ip}    ${node}    ${0}    ${0}    ${prefix}    ${field bases}    ${postfix}
+    ${node}=    Set Variable    car:cars/car-entry
+    Delete Records    ${controller_ip}    ${node}    ${0}    ${0}
+
+Create Cars
+    [Arguments]    ${controller_ip}    ${first}    ${last}    ${field bases}
+    [Documentation]    Creates cars with record IDs of specified range using POST.
+    ...    If first and last are equal, only one record is updated.
+    ...    Field bases are a dictionary of datastore record field values onto which is appended
+    ...    an incremental value to uniquely identify the record from which it came.
+    ...    Typically, you will use the Create Dictionary keyword on an argument which looks like this:
+    ...    id=${EMPTY} category=coupe model=model manufacturer=mfg year=2
+    ${node}=    Set Variable    car:cars
+    ${prefix}=    Set Variable    {"car-entry":[{
+    ${postfix}=    Set Variable    }]}
+    Create Records    ${controller_ip}    ${node}    ${first}    ${last}    ${prefix}    ${field bases}    ${postfix}
+
+Update Cars
+    [Arguments]    ${controller_ip}    ${first}    ${last}    ${field bases}
+    [Documentation]    Updates cars with record IDs of the specified using PUT.
+    ...    If first and last are equal, only one record is updated.
+    ...    Field bases are a dictionary of datastore record field values onto which is appended
+    ...    an incremental value to uniquely identify the record from which it came.
+    ...    Typically, you will use the Create Dictionary keyword on arguments which look like this:
+    ...    id=${EMPTY} category=coupe model=model manufacturer=mfg year=2
+    ${node}=    Set Variable    car:cars/car-entry
+    ${prefix}=    Set Variable    {"car-entry":[{
+    ${postfix}=    Set Variable    }]}
+    Update Records    ${controller_ip}    ${node}    ${first}    ${last}    ${prefix}    ${field bases}    ${postfix}
+
+Read All Cars
+    [Arguments]    ${controller_ip}
+    [Documentation]    Returns all records from the cars shard in JSON format.
+    ${node}=    Set Variable    car:cars
+    ${result}=    Read Records    ${controller_ip}    ${node}
+    [Return]    ${result}
+
+Read One Car
+    [Arguments]    ${controller_ip}    ${id}
+    [Documentation]    Returns the specified record from the cars shard in JSON format.
+    ${node}=    Set Variable    car:cars/car-entry/${id}
+    ${result}=    Read Records    ${controller_ip}    ${node}
+    [Return]    ${result}
+
+Delete All Cars
+    [Arguments]    ${controller_ip}
+    [Documentation]    Deletes all records from the cars shard.
+    ${node}=    Set Variable    car:cars
+    Delete All Records    ${controller_ip}    ${node}
+
+Delete Cars
+    [Arguments]    ${controller_ip}    ${first}    ${last}
+    [Documentation]    Deletes the specified range of records from the cars shard.
+    ${node}=    Set Variable    car:cars/car-entry
+    Delete Records    ${controller_ip}    ${node}    ${first}    ${last}