Commit fad873f9 authored by Ken Zangelin's avatar Ken Zangelin
Browse files

fix(041_03/04): use NGSI-LD offset pagination, not non-spec ?page=

parent 14011f3a
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
*** Settings ***
Documentation       Check that one can query context source registration subscriptions with providing page and limit parameters for pagination
Documentation       Check that one can query context source registration subscriptions with providing offset and limit parameters for pagination

Resource            ${EXECDIR}/resources/ApiUtils/Common.resource
Resource            ${EXECDIR}/resources/ApiUtils/ContextSourceRegistrationSubscription.resource
@@ -8,7 +8,7 @@ Resource ${EXECDIR}/resources/JsonUtils.resource

Test Setup          Setup Initial Context Source Registration Subscriptions
Test Teardown       Delete Created Context Source Registration Subscriptions
Test Template       Query Context Source Registration Subscriptions With Limit And Page Parameters
Test Template       Query Context Source Registration Subscriptions With Limit And Offset Parameters


*** Variables ***
@@ -17,26 +17,26 @@ ${second_subscription_payload_file_path}= csourceSubscriptions/subscriptio
${third_subscription_payload_file_path}=        csourceSubscriptions/subscription-geoQ.jsonld


*** Test Cases ***    LIMIT    PAGE    EXPECTED_SUBSCRIPTION_NUMBER    PREV_LINK    NEXT_LINK
*** Test Cases ***    LIMIT    OFFSET    EXPECTED_SUBSCRIPTION_NUMBER    PREV_LINK    NEXT_LINK
041_03_01 Query Second Subscription
    [Tags]    csrsub-query    5_11_5
    ${1}    ${2}    ${1}    </ngsi-ld/v1/csourceSubscriptions?limit=1&page=1>;rel="prev";type="application/ld+json"    </ngsi-ld/v1/csourceSubscriptions?limit=1&page=3>;rel="next";type="application/ld+json"
    ${1}    ${1}    ${1}    </ngsi-ld/v1/csourceSubscriptions?limit=1&offset=0>;rel="prev";type="application/ld+json"    </ngsi-ld/v1/csourceSubscriptions?limit=1&offset=2>;rel="next";type="application/ld+json"
041_03_02 Query Last Subscription
    [Tags]    csrsub-query    5_11_5
    ${2}    ${2}    ${1}    </ngsi-ld/v1/csourceSubscriptions?limit=2&page=1>;rel="prev";type="application/ld+json"    ${EMPTY}
    ${2}    ${2}    ${1}    </ngsi-ld/v1/csourceSubscriptions?limit=2&offset=0>;rel="prev";type="application/ld+json"    ${EMPTY}
041_03_03 Query All Subscriptions
    [Tags]    csrsub-query    5_11_5
    ${15}    ${1}    ${3}    ${EMPTY}    ${EMPTY}
    ${15}    ${0}    ${3}    ${EMPTY}    ${EMPTY}


*** Keywords ***
Query Context Source Registration Subscriptions With Limit And Page Parameters
    [Documentation]    Check that one can query context source registration subscriptions with providing page and limit parameters for pagination
    [Arguments]    ${limit}    ${page}    ${expected_subscription_number}    ${prev_link}    ${next_link}
Query Context Source Registration Subscriptions With Limit And Offset Parameters
    [Documentation]    Check that one can query context source registration subscriptions with providing offset and limit parameters for pagination
    [Arguments]    ${limit}    ${offset}    ${expected_subscription_number}    ${prev_link}    ${next_link}
    ${response}=    Query Context Source Registration Subscriptions
    ...    context=${ngsild_test_suite_context}
    ...    limit=${limit}
    ...    page=${page}
    ...    offset=${offset}
    Check Response Status Code    200    ${response.status_code}
    Check Response Body Containing Number Of Entities
    ...    Subscription
+10 −10
Original line number Diff line number Diff line
*** Settings ***
Documentation       Check that one cannot query context source registration subscriptions with invalid page and limit parameters
Documentation       Check that one cannot query context source registration subscriptions with invalid offset and limit parameters

Resource            ${EXECDIR}/resources/ApiUtils/ContextSourceRegistrationSubscription.resource
Resource            ${EXECDIR}/resources/AssertionUtils.resource
Resource            ${EXECDIR}/resources/JsonUtils.resource

Test Template       Query Context Source Registration Subscriptions With Invalid Limit And Page Parameters
Test Template       Query Context Source Registration Subscriptions With Invalid Limit And Offset Parameters


*** Test Cases ***    LIMIT    PAGE
*** Test Cases ***    LIMIT    OFFSET
041_04_01 Invalid Limit
    [Tags]    csrsub-query    5_11_5
    ${-5}    ${2}
041_04_02 Invalid Page
041_04_02 Invalid Offset
    [Tags]    csrsub-query    5_11_5
    ${2}    ${-3}
041_04_03 Invalid Limit And Page
041_04_03 Invalid Limit And Offset
    [Tags]    csrsub-query    5_11_5
    ${0}    ${0}
    ${0}    ${-1}


*** Keywords ***
Query Context Source Registration Subscriptions With Invalid Limit And Page Parameters
    [Documentation]    Check that one cannot query context source registration subscriptions with invalid page and limit parameters
    [Arguments]    ${limit}    ${page}
    ${response}=    Query Context Source Registration Subscriptions    limit=${limit}    page=${page}
Query Context Source Registration Subscriptions With Invalid Limit And Offset Parameters
    [Documentation]    Check that one cannot query context source registration subscriptions with invalid offset and limit parameters
    [Arguments]    ${limit}    ${offset}
    ${response}=    Query Context Source Registration Subscriptions    limit=${limit}    offset=${offset}
    Check Response Status Code    400    ${response.status_code}
    Check Response Body Containing ProblemDetails Element Containing Type Element set to
    ...    ${response.json()}
+4 −0
Original line number Diff line number Diff line
@@ -47,6 +47,10 @@ Create initial ImplicitlyCreated @context

    ${data}=    Get From List    ${response.json()}    0
    ${implicit_id}=    Get From Dictionary    ${data}    URL
    # Take only the localId (last path segment). The URL field is a full
    # broker URL (http://host/ngsi-ld/v1/jsonldContexts/<id>) and TS 104-175
    # § 13.5.3 says the DELETE path takes the locally unique id, not the URL.
    ${implicit_id}=    Evaluate    '${implicit_id}'.split('/')[-1]

    Set Global Variable    ${implicit_id}
    Set Suite Variable    ${subscription_id}
+2 −2
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ Delete Context Source Registration Subscription

Query Context Source Registration Subscriptions
    [Tags]    actor_context-subscriber
    [Arguments]    ${context}=${EMPTY}    ${limit}=${EMPTY}    ${page}=${EMPTY}    ${accept}=${EMPTY}
    [Arguments]    ${context}=${EMPTY}    ${limit}=${EMPTY}    ${offset}=${EMPTY}    ${accept}=${EMPTY}

    &{headers}=    Create Dictionary
    &{params}=    Create Dictionary
@@ -61,7 +61,7 @@ Query Context Source Registration Subscriptions
        ...    Link=${context_link}
    END
    IF    '${limit}'!=''    Set To Dictionary    ${params}    limit=${limit}
    IF    '${page}'!=''    Set To Dictionary    ${params}    page=${page}
    IF    '${offset}'!=''    Set To Dictionary    ${params}    offset=${offset}

    ${response}=    GET
    ...    url=${url}/${CONTEXT_SOURCE_REGISTRATION_SUBSCRIPTION_ENDPOINT_PATH}
+5 −0
Original line number Diff line number Diff line
@@ -61,6 +61,11 @@ Serve a @context
Delete a @context
    [Tags]    actor_context-producer
    [Arguments]    ${contextId}    ${reload}=${EMPTY}
    # Strip an absolute broker URL (http(s)://host/ngsi-ld/v1/jsonldContexts/<id>)
    # or the path prefix alone, leaving only the localId. Anchoring on the
    # absolute form prevents a leftover "http://host" prefix in front of the
    # localId when callers pass a fully-qualified URL.
    ${contextId}=    Remove String Using Regexp    ${contextId}    ^https?://[^/]+/ngsi-ld/v1/${JSONLDCONTEXTS_ENDPOINT_PATH}/
    ${contextId}=    Replace String    ${contextId}    /ngsi-ld/v1/${JSONLDCONTEXTS_ENDPOINT_PATH}/    ${EMPTY}
    ${contextId}=    Evaluate    urllib.parse.quote("${contextId}", safe='')    modules=urllib
    IF    '${reload}'!=''
Loading