diff --git a/.gitignore b/.gitignore index 6f70c11376c37ee4ff8d9b888e9e2b48b1a75fec..a1d9ee9769a42e2659eaa1a33d30ebfb2e4dff50 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,8 @@ node_modules/ # Vim swap files *.swp + +# backbone-adapter-testsuite + +test/features/*.feature +test/fixtures/*.json \ No newline at end of file diff --git a/features/adapter_auth.feature b/features/adapter_auth.feature deleted file mode 100644 index c55e27199db07f4ca6145afc63ed0ddf36cad4a9..0000000000000000000000000000000000000000 --- a/features/adapter_auth.feature +++ /dev/null @@ -1,13 +0,0 @@ -Feature: Does the adapter authenticate? - When an adapter instance is created it authenticates and receives a token - - Scenario: A token is granted with valid config - Given valid config - When the adapter instance is created - When the auth method is called - Then the adapter credentials are populated - - Scenario: Auth fails with invalid config - Given invalid config - When the adapter instance is created - Then the adapter auth fails \ No newline at end of file diff --git a/features/adapter_broadcast.feature b/features/adapter_broadcast.feature deleted file mode 100644 index e37344afab59cc9f6cea2ce9be74ba7bcf8ba9de..0000000000000000000000000000000000000000 --- a/features/adapter_broadcast.feature +++ /dev/null @@ -1,18 +0,0 @@ -Feature: Can the adapter broadcast messages? - The adapter publish method works as expected - - Scenario: A message can be published successfully - Given valid config - When the adapter instance is created - When the auth method is called - When a mock notify API response is configured to return success - When the broadcast method is called - Then a successful response is returned with status 200 - - Scenario: A failed publish returns a 403 - Given valid config - When the adapter instance is created - When the auth method is called - When a mock notify API response is configured to return an error - When the broadcast method is called - Then an error response is returned with status 403 \ No newline at end of file diff --git a/features/adapter_get-authorization-header.feature b/features/adapter_get-authorization-header.feature deleted file mode 100644 index 554acdf0378c917328ca72921843c39315a1f580..0000000000000000000000000000000000000000 --- a/features/adapter_get-authorization-header.feature +++ /dev/null @@ -1,21 +0,0 @@ -Feature: Can the adapter create an authorization header? - The adapter getAuthorizationHeader method works as expected - - Scenario: getAuthorizationHeader returns a bearer token - Given valid config - When the adapter instance is created - When the auth method is called - When the getAuthorizationHeader method is called - Then a headers object is returned containing a bearer token authorization header - - Scenario: getAuthorizationHeader implicitly calls auth if required - Given valid config - When the adapter instance is created - When the getAuthorizationHeader method is called - Then a headers object is returned containing a bearer token authorization header - - Scenario: getAuthorizationHeader implicitly calls auth if required - Given invalid config - When the adapter instance is created - When the getAuthorizationHeader method is called - Then an error response is returned with status 403 \ No newline at end of file diff --git a/features/adapter_poll.feature b/features/adapter_poll.feature deleted file mode 100644 index 9ecc9e9553dd86c54bda7aa66d36950eed619741..0000000000000000000000000000000000000000 --- a/features/adapter_poll.feature +++ /dev/null @@ -1,42 +0,0 @@ -# When the queue contains x messages -# only mocks the API response -# Testing how the API behaves with a full queue are defined in the API - -Feature: Can the adapter receive messages? - The adapter poll method works as expected - - Scenario: No messages are received succecssfully if the queue is empty - Given valid config - When the adapter instance is created - When the auth method is called - When a mock receive API response is configured to return 0 messages - When the poll method is called - Then a successful response is returned with 0 messages - - Scenario: 2 messages are received succecssfully if the queue contains 2 messages - Given valid config - When the adapter instance is created - When the auth method is called - When a mock receive API response is configured to return 2 messages - When the poll method is called - Then a successful response is returned with 2 messages - Then the protocol "validate" method is called 2 times - Then the protocol "decode" method is called 2 times - - Scenario: 10 messages are received succecssfully if the queue contains 10 messages - Given valid config - When the adapter instance is created - When the auth method is called - When a mock receive API response is configured to return 10 messages - When the poll method is called - Then a successful response is returned with 10 messages - Then the protocol "validate" method is called 10 times - Then the protocol "decode" method is called 10 times - - Scenario: An invalid token returns a forbidden response - Given valid config - When the adapter instance is created - When the auth method is called - When a mock receive API response is configured to return an error - When the poll method is called - Then an error response is returned with status 403 diff --git a/features/adapter_publish.feature b/features/adapter_publish.feature deleted file mode 100644 index 7e7e7de1681a3220f61b829b457e7e35904ca7c4..0000000000000000000000000000000000000000 --- a/features/adapter_publish.feature +++ /dev/null @@ -1,18 +0,0 @@ -Feature: Can the adapter publish messages? - The adapter publish method works as expected - - Scenario: A message can be published successfully - Given valid config - When the adapter instance is created - When the auth method is called - When a mock send API response is configured to return success - When the publish method is called - Then a successful response is returned with status 200 - - Scenario: A failed publish returns a 403 - Given valid config - When the adapter instance is created - When the auth method is called - When a mock send API response is configured to return an error - When the publish method is called - Then an error response is returned with status 403 diff --git a/features/adapter_token-valid.feature b/features/adapter_token-valid.feature deleted file mode 100644 index 53fe89de568f2878e113434c1d260930911bf1d7..0000000000000000000000000000000000000000 --- a/features/adapter_token-valid.feature +++ /dev/null @@ -1,21 +0,0 @@ -Feature: Is the token valid? - The adapter tokenValid method works as expected - - Scenario: If adapter has not authed token is invalid - Given valid config - When the adapter instance is created - Then tokenValid returns false - - Scenario: If credentials.expiry is in the future token is valid - Given valid config - When the adapter instance is created - When the auth method is called - When the token expiry is in the future - Then tokenValid returns true - - Scenario: If credentials.expiry is in the past token is invalid - Given valid config - When the adapter instance is created - When the auth method is called - When the token expiry is in the past - Then tokenValid returns false diff --git a/features/adapter_validate.feature b/features/adapter_validate.feature deleted file mode 100644 index c2af9f1ed21550495bc96952abc6793f436f236a..0000000000000000000000000000000000000000 --- a/features/adapter_validate.feature +++ /dev/null @@ -1,16 +0,0 @@ -Feature: Can the adapter validate messages? - The adapter validate method works as expected - - Scenario: A valid message is successfully validated against the protocol schema - Given valid config - Given a valid message - When the adapter instance is created - When the validate method is called - Then the message is validated successfully - - Scenario: An invalid message fails to validate against the protocol schema - Given valid config - Given an invalid message - When the adapter instance is created - When the validate method is called - Then the message fails to validate \ No newline at end of file diff --git a/features/protocol_decode.feature b/features/protocol_decode.feature deleted file mode 100644 index ab2a50fe616062fa715253515d6b8f5480407721..0000000000000000000000000000000000000000 --- a/features/protocol_decode.feature +++ /dev/null @@ -1,11 +0,0 @@ -# Decode and encode are provided as stubs which are intended to be overridden -# These can be used to translate the message or to invoke other functions -# to take action based on the type and content of messages - -Feature: Decode stubs passthru message unchanged - The protocol decode method works as expected - - Scenario: Decode passes the message through unaltered - Given a valid message - When the protocol.decode method is called - Then the message is returned unaltered diff --git a/features/protocol_encode.feature b/features/protocol_encode.feature deleted file mode 100644 index 41bb57c287ba6b3981a97399c424e2257672d3b5..0000000000000000000000000000000000000000 --- a/features/protocol_encode.feature +++ /dev/null @@ -1,11 +0,0 @@ -# Decode and encode are provided as stubs which are intended to be overridden -# These can be used to translate the message or to invoke other functions -# to take action based on the type and content of messages - -Feature: Encode stubs passthru message unchanged - The protocol encode method works as expected - - Scenario: Encode passes the message through unaltered - Given a valid message - When the protocol.encode method is called - Then the message is returned unaltered \ No newline at end of file diff --git a/features/protocol_get-type.feature b/features/protocol_get-type.feature deleted file mode 100644 index 829ae6da8dfa6ed632a90007a0c11f3496e4449b..0000000000000000000000000000000000000000 --- a/features/protocol_get-type.feature +++ /dev/null @@ -1,12 +0,0 @@ -Feature: Can the protocol determine message type - The protocol getType method works as expected - - Scenario: A valid message is successfully typed - Given a valid message - When protocol getType is called - Then getType returns message.payload.message_type if present - - Scenario: An invalid message returns type:null - Given an invalid message - When protocol getType is called - Then getType returns null if message.payload.message_type is not present diff --git a/features/protocol_validate.feature b/features/protocol_validate.feature deleted file mode 100644 index a5293c46dc081a864a4e5ec3fd059175b65340a7..0000000000000000000000000000000000000000 --- a/features/protocol_validate.feature +++ /dev/null @@ -1,12 +0,0 @@ -Feature: Can the protocol validate messages? - The adapter validate method works as expected - - Scenario: A valid message is successfully validated against the protocol schema - Given a valid message - When the protocol.validate method is called - Then the message is validated successfully - - Scenario: An invalid message fails to validate against the protocol schema - Given an invalid message - When the protocol.validate method is called - Then the message fails to validate \ No newline at end of file diff --git a/features/schema_validate.feature b/features/schema_validate.feature deleted file mode 100644 index 34f457a2543f1bf91948a4e367945e6565a985a9..0000000000000000000000000000000000000000 --- a/features/schema_validate.feature +++ /dev/null @@ -1,10 +0,0 @@ -# If the mock schema fixture fails to validate -# it can cause invalid messages to show as valid - -Feature: Is the mock schema valid? - The mock schema must validate in order for the adapter test to work - - Scenario: The schema matches the OpenAPI specification - Given the test schema - When it is validated - Then it matches the OpenAPI specification \ No newline at end of file diff --git a/test/fixtures/config-invalid.json b/test/fixtures/config-invalid.json deleted file mode 100644 index 82625f6ebf737eb84933aa05088f3047bcebbd62..0000000000000000000000000000000000000000 --- a/test/fixtures/config-invalid.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "api": "https://example.backbone.com/api", - "client_id": "invalid-client-id", - "client_name": "InvalidClientName", - "subscription": "dot.delimited.topic.subscription.#", - "secret": "TheCollaredDoveCoosInTheChimneyPot" -} \ No newline at end of file diff --git a/test/fixtures/config-valid.json b/test/fixtures/config-valid.json deleted file mode 100644 index 8b765ecfafaa8867795121d123534b56a58e8d43..0000000000000000000000000000000000000000 --- a/test/fixtures/config-valid.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "api": "https://example.backbone.com/api", - "client_id": "unique-client-id", - "client_name": "UniqueClientName", - "subscription": "dot.delimited.topic.subscription.#", - "secret": "TheGeeseFlySouthInWinter" -} \ No newline at end of file diff --git a/test/fixtures/message-vehicle-status-invalid.json b/test/fixtures/message-vehicle-status-invalid.json deleted file mode 100644 index c59f56d02636abfa7d3b52a7b028126d0f25d2fc..0000000000000000000000000000000000000000 --- a/test/fixtures/message-vehicle-status-invalid.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "metadata": { - "source": "ae", - "destination": "soar.po.ecosub.eco1", - "delivery_type": "publish", - "message_id": "test" - }, - "payload": { - "messagetype": "VehicleStatus", - "operatorID": 1, - "vehicleID": 12, - "coordinates": { - "latitude": "monkeys", - "longitude": "janvier", - "depth": "twenty five metres please", - "projection": 4326 - }, - "battery_percentage": "plenty" - } -} \ No newline at end of file diff --git a/test/fixtures/message-vehicle-status.json b/test/fixtures/message-vehicle-status.json deleted file mode 100644 index 55cdd818781ab404ebf70d3087a7f6c83396cc3a..0000000000000000000000000000000000000000 --- a/test/fixtures/message-vehicle-status.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "metadata": { - "source": "ae", - "destination": "soar.po.ecosub.eco1", - "delivery_type": "publish", - "message_id": "test" - }, - "payload": { - "message_type": "VehicleStatus", - "operator_id": "po", - "vehicle_id": "eco1", - "coordinates": { - "latitude": 57.234, - "longitude": -8.432, - "depth": 50, - "projection": 4326 - }, - "battery_percentage": 64 - } -} \ No newline at end of file diff --git a/test/fixtures/response-denied-token.json b/test/fixtures/response-denied-token.json deleted file mode 100644 index d5fb311657bbafe5d89d35d1a24313c0ad784feb..0000000000000000000000000000000000000000 --- a/test/fixtures/response-denied-token.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "message": "Invalid client credentials" -} \ No newline at end of file diff --git a/test/fixtures/response-valid-token.json b/test/fixtures/response-valid-token.json deleted file mode 100644 index 87306ff195913ce9ba866065ede968128439d3fa..0000000000000000000000000000000000000000 --- a/test/fixtures/response-valid-token.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "token": "gAAAAABjwB-vxtER44M2en6xYyt7G1WXp8QwfsiHw-ijCqNBZpQPwxxrBHzUU1fQ9lfPPo4QHj50p-yh203dV6zLLoTzuiReqGzE2InqAxOwv4gddlQWNFJKyrmg4mVVMX2VZe2cCAljmHxEo66BHgt_T24AieedMnI4VR2kw4SFiooFv5nr2W8=", - "expiry": "2030-12-31T23:59:59.000000" -} \ No newline at end of file