Commit 89ffd168 authored by Giacomo Bernini's avatar Giacomo Bernini
Browse files

TD doc for SOL003 VNF indicator APIs

parent 0eefb061
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -34,7 +34,7 @@ Get VNF Indicators with attribute-based filter
    Check HTTP Response Body Json Schema Is   vnfIndicators
    Check HTTP Response Body Json Schema Is   vnfIndicators
    Check HTTP Response Body vnfIndicators Matches the requested attribute-based filter
    Check HTTP Response Body vnfIndicators Matches the requested attribute-based filter


Get all VNF Indicators with invalid attribute-based filter
Get VNF Indicators with invalid attribute-based filter
    [Documentation]    Test ID: 6.3.2.1.3
    [Documentation]    Test ID: 6.3.2.1.3
    ...    Test title: Get VNF Indicators with invalid attribute-based filter
    ...    Test title: Get VNF Indicators with invalid attribute-based filter
    ...    Test objective: The objective is to test that the retrieval of VNF indicators fails when using invalid attribute-based filters, and perform the JSON schema validation of the failed operation HTTP response. 
    ...    Test objective: The objective is to test that the retrieval of VNF indicators fails when using invalid attribute-based filters, and perform the JSON schema validation of the failed operation HTTP response. 
@@ -121,7 +121,7 @@ PUT all VNF Indicators - Method not implemented


PATCH all VNF Indicators - Method not implemented
PATCH all VNF Indicators - Method not implemented
     [Documentation]    Test ID: 6.3.2.1.10
     [Documentation]    Test ID: 6.3.2.1.10
    ...    Test title: POST all VNF Indicators - Method not implemented
    ...    Test title: PATCH all VNF Indicators - Method not implemented
    ...    Test objective: The objective is to test that PATCH method is not allowed to update VNF indicators
    ...    Test objective: The objective is to test that PATCH method is not allowed to update VNF indicators
    ...    Pre-conditions: A VNF instance is instantiated. One or more measures of VNF performance indicators are available in the VNF
    ...    Pre-conditions: A VNF instance is instantiated. One or more measures of VNF performance indicators are available in the VNF
    ...    Reference: section 8.4.2.3.4 - SOL002 v2.4.1
    ...    Reference: section 8.4.2.3.4 - SOL002 v2.4.1
@@ -133,7 +133,7 @@ PATCH all VNF Indicators - Method not implemented


DELETE all VNF Indicators - Method not implemented
DELETE all VNF Indicators - Method not implemented
    [Documentation]    Test ID: 6.3.2.1.11
    [Documentation]    Test ID: 6.3.2.1.11
    ...    Test title: POST all VNF Indicators - Method not implemented
    ...    Test title: DELETE all VNF Indicators - Method not implemented
    ...    Test objective: The objective is to test that DELETE method is not allowed to delete VNF indicators
    ...    Test objective: The objective is to test that DELETE method is not allowed to delete VNF indicators
    ...    Pre-conditions: A VNF instance is instantiated. One or more measures of VNF performance indicators are available in the VNF
    ...    Pre-conditions: A VNF instance is instantiated. One or more measures of VNF performance indicators are available in the VNF
    ...    Reference: section 8.4.2.3.5 - SOL002 v2.4.1
    ...    Reference: section 8.4.2.3.5 - SOL002 v2.4.1
+83 −81
Original line number Original line Diff line number Diff line
@@ -2,94 +2,96 @@
Library           JSONSchemaLibrary    schemas/
Library           JSONSchemaLibrary    schemas/
Resource          environment/variables.txt    # Generic Parameters
Resource          environment/variables.txt    # Generic Parameters
Resource          environment/individualSubscription.txt
Resource          environment/individualSubscription.txt
Resource          VNFIndicatorsKeywords.robot
Library           OperatingSystem
Library           OperatingSystem
Library           REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}
Library           REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}


*** Test Cases ***
*** Test Cases ***
GET Individual Subscription
GET Individual VNF Indicator Subscription
    Log    Trying to get a given subscription identified by subscriptionId
    [Documentation]    Test ID: 7.3.6.5.1
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: GET Individual VNF Indicator Subscription
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test the retrieval of individual VNF indicator subscription and perform a JSON schema validation of the returned subscription data structure
    GET    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one VNF indicator subscription is available in the VNFM.
    Integer    response status    200
    ...    Reference:  section 8.4.6.3.2 - SOL003 v2.4.1
    Log    Received a 200 OK as expected
    ...    Config ID: Config_prod_VNFM
    ${contentType}=    Output    response headers Content-Type
    ...    Applicability: none
    Should Contain    ${contentType}    application/json
    ...    Post-Conditions: none
    ${result}=    Output    response body
    Get Individual VNF Indicator Subscription
    Log    Trying to validate result with VnfIndicatorSubscription schema
    Check HTTP Response Status Code Is    200
    Validate Json    VnfIndicatorSubscription.schema.json    ${result}
    Check HTTP Response Body Json Schema Is   VnfIndicatorSubscription
    Log    Validated VnfIndicatorSubscription schema


GET Subscription - Negative (Not Found)
GET Individual VNF Indicator Subscription with invalid resource identifier
    Log    Trying to perform a request on a subscriptionID which doesn't exist
    [Documentation]    Test ID: 7.3.6.5.2
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: GET Individual VNF Indicator Subscription with invalid resource identifier
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that the retrieval of individual VNF indicator subscription fails when using an invalid resource identifier.
    GET    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one VNF indicator subscription is available in the VNFM.
    Integer    response status    404
    ...    Reference:  section 8.4.6.3.2 - SOL003 v2.4.1
    Log    Received 404 Not Found as expected
    ...    Config ID: Config_prod_VNFM
    ${contentType}=    Output    response headers Content-Type
    ...    Applicability: none
    Should Contain    ${contentType}    application/json
    ...    Post-Conditions: none
    ${problemDetails}=    Output    response body
    GET Individual VNF Indicator Subscription with invalid resource identifier
    Log    Trying to validate ProblemDetails
    Check HTTP Response Status Code Is    404
    Validate Json    ProblemDetails.schema.json    ${problemDetails}
    Log    Validation OK


GET Subscription - Negative (Unauthorized: Wrong Token)
DELETE Individual VNF Indicator Subscription
    Log    Trying to perform a negative get, using wrong authorization bearer
    [Documentation]    Test ID: 7.3.6.5.3
    Pass Execution If    ${AUTH_USAGE} == 0    Skipping test as VNFM is not supporting authentication
    ...    Test title: DELETE Individual VNF Indicator Subscription
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test objective: The objective is to test the deletion of an individual VNF indicator subscription.
    GET    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one VNF indicator subscription is available in the VNFM.
    Integer    response status    401
    ...    Reference:  section 8.4.6.3.5 - SOL003 v2.4.1
    Log    Received 401 Unauthorized as expected
    ...    Config ID: Config_prod_VNFM
    ${contentType}=    Output    response headers Content-Type
    ...    Applicability: none
    Should Contain    ${contentType}    application/json
    ...    Post-Conditions: The subscription to VNF indicators is deleted
    Log    Trying to validate ProblemDetails
    Send Delete Request for Individual VNF Indicator Subscription
    ${problemDetails}=    Output    response body
    Check HTTP Response Status Code Is    204
    Validate Json    ProblemDetails.schema.json    ${problemDetails}
    Check Postcondition Individual VNF Indicator Subscription is Deleted
    Log    Validation OK


DELETE Subscription
DELETE Individual VNF Indicator Subscription with invalid resource identifier
    Log    Trying to perform a DELETE on a subscriptionId
    [Documentation]    Test ID: 7.3.6.5.4
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: DELETE Individual VNF Indicator Subscription with invalid resource identifier
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that the deletion of an individual VNF indicator subscription fails when using an invalid resource identifier.
    DELETE    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one VNF indicator subscription is available in the VNFM.
    Integer    response status    204
    ...    Reference:  section 8.4.6.3.5 - SOL003 v2.4.1
    Log    Received 204 No Content as expected
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: none
    ...    Post-Conditions: none   
    Send Delete Request for Individual VNF Indicator Subscription with invalid resource identifier
    Check HTTP Response Status Code Is    404


DELETE Subscription - Negative (Not Found)
PUT Individual VNF Indicator Subscription - Method not implemented
    Log    Trying to perform a DELETE on a subscriptionId which doesn't exist
    [Documentation]    Test ID: 7.3.6.5.5
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: PUT Individual VNF Indicator Subscription - Method not implemented
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that PUT method is not allowed to modify an individual VNF indicator subscription
    DELETE    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one VNF indicator subscription is available in the VNFM.
    Integer    response status    404
    ...    Reference: section 8.4.6.3.3 - SOL003 v2.4.1
    Log    The subscriptionId is not present in database
    ...    Config ID: Config_prod_VNFM
    ${contentType}=    Output    response headers Content-Type
    ...    Applicability: none
    Should Contain    ${contentType}    application/json
    ...    Post-Conditions: The individual VNF indicator subscription is not modified by the operation
    ${problemDetails}=    Output
    Send Put Request for Individual VNF Indicator Subscription
    Log    Trying to validate ProblemDetails
    Check HTTP Response Status Code Is    405
    Validate Json    ProblemDetails.schema.json    ${problemDetails}
    Check Postcondition VNF indicator subscription Unmodified (Implicit)
    Log    Validation OK


PUT Subscription - (Method not implemented)
PATCH Individual VNF Indicator Subscription - Method not implemented
    Log    Trying to perform a PUT. This method should not be implemented
    [Documentation]    Test ID: 7.3.6.5.6
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: PATCH Individual VNF Indicator Subscription - Method not implemented
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that PATCH method is not allowed to update an individual VNF indicator subscription
    PUT    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one VNF indicator subscription is available in the VNFM.
    Integer    response status    405
    ...    Reference: section 8.4.6.3.4 - SOL003 v2.4.1
    Log    Received 405 Method not implemented as expected
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: none
    ...    Post-Conditions: The individual VNF indicator subscription is not modified by the operation
    Send Patch Request for Individual VNF Indicator Subscription
    Check HTTP Response Status Code Is    405
    Check Postcondition VNF indicator subscription Unmodified (Implicit) 


PATCH Subscription - (Method not implemented)
POST Individual VNF Indicator Subscription - Method not implemented
    Log    Trying to perform a PATCH. This method should not be implemented
    [Documentation]    Test ID: 7.3.6.5.7
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: POST Individual VNF Indicator Subscription - Method not implemented
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that POST method is not allowed to create a new VNF indicator subscription
    PATCH    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
    ...    Pre-conditions: A VNF instance is instantiated.
    Integer    response status    405
    ...    Reference: section 8.4.6.3.1 - SOL003 v2.4.1
    Log    Received 405 Method not implemented as expected
    ...    Config ID: Config_prod_VNFM

    ...    Applicability: none
POST Subscription - (Method not implemented)
    ...    Post-Conditions: The individual VNF indicator subscription is not created by the operation
    Log    Trying to perform a POST. This method should not be implemented
    Send Post Request for Individual VNF Indicator Subscription
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Check HTTP Response Status Code Is    405
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    Check Postcondition VNF indicator subscription is not created  
    POST    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
 No newline at end of file
    Integer    response status    405
    Log    Received 405 Method not implemented as expected
+71 −82
Original line number Original line Diff line number Diff line
@@ -2,93 +2,82 @@
Library           JSONSchemaLibrary    schemas/
Library           JSONSchemaLibrary    schemas/
Resource          environment/variables.txt    # Generic Parameters
Resource          environment/variables.txt    # Generic Parameters
Resource          environment/individualVnfIndicator.txt
Resource          environment/individualVnfIndicator.txt
Resource          VNFIndicatorsKeywords.robot
Library           REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}
Library           REST    ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}


*** Test Cases ***
*** Test Cases ***
GET Individual VNF Indicator
Get Individual Indicator for VNF Instance
    Log    The GET method reads a VNF indicator.
    [Documentation]    Test ID: 7.3.6.3.1
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: Get Individual Indicator for VNF Instance
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test the retrieval of an indicator for a given VNF instance and perform a JSON schema validation of the returned indicator data structure
    GET    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one measure of VNF indicator is available in the VNFM.
    Integer    response status    200
    ...    Reference:  section 8.4.4.3.2 - SOL003 v2.4.1
    ${contentType}=    Output     response headers Content-Type
    ...    Config ID: Config_prod_VNFM
    Should Contain    ${contentType}    application/json
    ...    Applicability: none
    Log    Trying to validate response
    ...    Post-Conditions: none
    ${result}=    Output    response body
    Get Individual Indicator for a VNF instance
    Validate Json    vnfIndicator.schema.json    ${result}
    Check HTTP Response Status Code Is    200
    Log    Validation OK
    Check HTTP Response Body Json Schema Is   vnfIndicator
    Check HTTP Response Body Includes Requested VNF Instance ID
    Check HTTP Response Body Includes Requested Indicator ID


GET Individual VNF Indicator - Negative (Not Found)
Get Individual Indicator for VNF Instance with invalid indicator identifier
    Log    Trying to perform a negative get, using an erroneous package ID
    [Documentation]    Test ID: 7.3.6.3.2
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: Get Individual Indicator for VNF Instance with invalid indicator identifier
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that the retrieval of an indicator for a given VNF instance fails when using an invalid resource identifier. The test also checks the JSON schema of the unsuccessful operation HTTP response.
    GET    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${erroneousIndicatorId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one measure of VNF indicator is available in the VNFM.
    Integer    response status    404
    ...    Reference: section 8.4.4.3.2 - SOL003 v2.4.1
    Log    Received 404 Not Found as expected
    ...    Config ID: Config_prod_VNFM
    ${contentType}=    Output     response headers Content-Type
    ...    Applicability: none
    Should Contain    ${contentType}    application/json
    ...    Post-Conditions: none
    Log    Trying to validate ProblemDetails
    Get Individual Indicator for a VNF instance with invalid indicator identifier
    ${problemDetails}=    Output    response body
    Check HTTP Response Status Code Is    404
    Validate Json    ProblemDetails.schema.json    ${problemDetails}
    Log    Validation OK


GET Individual VNF Indicator - Negative (Unauthorized: Wrong Token)
POST Individual VNF Indicator for VNF Instance - Method not implemented
    Log    Trying to perform a negative get, using wrong authorization bearer
    [Documentation]    Test ID: 7.3.6.3.3
    Pass Execution If    ${AUTH_USAGE} == 0    Skipping test as VNFM is not supporting authentication
    ...    Test title: POST Individual VNF Indicator for VNF Instance - Method not implemented
    Set Headers    {"Accept" : "${ACCEPT_JSON}"}
    ...    Test objective: The objective is to test that POST method is not allowed to create a new VNF indicator in the VNFM
    Set Headers    {"Authorization": "${NEG_AUTHORIZATION}"}
    ...    Pre-conditions: A VNF instance is instantiated.
    GET    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
    ...    Reference: section 8.4.4.3.1 - SOL003 v2.4.1
    Integer    response status    401
    ...    Config ID: Config_prod_VNFM
    Log    Received 401 Unauthorized as expected
    ...    Applicability: none
    ${contentType}=    Output     response headers Content-Type
    ...    Post-Conditions: none
    Should Contain    ${contentType}    application/json
    Send POST Request for individual indicator in VNF instance
    Log    Trying to validate ProblemDetails
    Check HTTP Response Status Code Is    405
    ${problemDetails}=    Output    response body
    Validate Json    ProblemDetails.schema.json    ${problemDetails}
    Log    Validation OK


GET Individual VNF Indicator - Negative (Unauthorized: No Token)
PUT Individual VNF Indicator for VNF Instance - Method not implemented
    Log    Trying to perform a negative get, without authentication token.
    [Documentation]    Test ID: 7.3.6.3.4
    Pass Execution If    ${AUTH_USAGE} == 0    Skipping test as VNFM is not supporting authentication
    ...    Test title: PUT Individual VNF Indicator for VNF Instance - Method not implemented
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test objective: The objective is to test that PUT method is not allowed to modify an existing indicator for a VNF instance
    GET    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one measure of VNF indicator is available in the VNFM
    Integer    response status    401
    ...    Reference: section 8.4.4.3.3 - SOL003 v2.4.1
    Log    Received 401 Unauthozired as expected
    ...    Config ID: Config_prod_VNFM
    ${contentType}=    Output     response headers Content-Type
    ...    Applicability: none
    Should Contain    ${contentType}    application/json
    ...    Post-Conditions: none
    Log    Trying to validate ProblemDetails
    Send PUT Request for individual indicator in VNF instance
    ${problemDetails}=    Output    response body
    Check HTTP Response Status Code Is    405
    Validate Json    ProblemDetails.schema.json    ${problemDetails}
    Log    Validation OK


POST Individual VNF Indicator (Method not implemented)
PATCH Individual VNF Indicator for VNF Instance - Method not implemented
    Log    Trying to perform a POST (method should not be implemented)
    [Documentation]    Test ID: 7.3.6.3.5
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: PATCH Individual VNF Indicator for VNF Instance - Method not implemented
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that PATCH method is not allowed to update an existing indicator for a VNF instance
    POST    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one measure of VNF indicator is available for the given VNF instance.
    Integer    response status    405
    ...    Reference: section 8.4.4.3.4 - SOL003 v2.4.1
    Log    Received 405 Method not implemented as expected
    ...    Config ID: Config_prod_VNFM
    ...    Applicability: none
    ...    Post-Conditions: none
    Send PATCH Request for individual indicator in VNF instance
    Check HTTP Response Status Code Is    405


PUT Individual VNF Indicator (Method not implemented)
DELETE Individual VNF Indicator for VNF Instance - Method not implemented
    Log    Trying to perform a PUT. This method should not be implemented
    [Documentation]    Test ID: 7.3.6.3.6
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    ...    Test title: DELETE Individual VNF Indicator for VNF Instance - Method not implemented
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    ...    Test objective: The objective is to test that DELETE method is not allowed to delete an existing indicator for a VNF instance
    PUT    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
    ...    Pre-conditions: A VNF instance is instantiated. At least one measure of VNF indicator is available in the VNFM
    Integer    response status    405
    ...    Reference: section 8.4.3.3.5 - SOL003 v2.4.1
    Log    Received 405 Method not implemented as expected
    ...    Config ID: Config_prod_VNFM

    ...    Applicability: none
PATCH Individual VNF Indicator (Method not implemented)
    ...    Post-Conditions: The individual indicator for the VNF instance is not deleted by the unsuccessful operation
    Log    Trying to perform a PATCH. This method should not be implemented
    Send DELETE Request for individual indicator in VNF instance
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Check HTTP Response Status Code Is    405
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    Check Postcondition Indicator for VNF instance Exist
    PATCH    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
 No newline at end of file
    Integer    response status    405
    Log    Received 405 Method not implemented as expected

DELETE Individual VNF Indicator (Method not implemented)
    Log    Trying to perform a DELETE. This method should not be implemented
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    DELETE    ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
    Integer    response status    405
    Log    Received 405 Method not implemented as expected
+91 −29

File changed.

Preview size limit exceeded, changes collapsed.

+128 −107

File changed.

Preview size limit exceeded, changes collapsed.

Loading