Interoperability Test Description |
Identifier: |
TD_COAP_CORE_01
|
Objective: |
Perform GET transaction (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 1.2, 2.1, 2.2, 3.1
|
Pre-test conditions: |
Server offers the resource /test with resource content is not empty that handles GET with an arbitrary payload
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a GET request with:- Type = 0 (CON)
- Code = 1 (GET)
|
|
2
|
Check
|
The request sent by the client contains:- Type=0 and Code=1
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Content-format option
- Non-empty Payload
|
|
4
|
Verify
|
Client displays the received information
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_02
|
Objective: |
Perform DELETE transaction (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.4, 1.2, 2.1, 2.2, 3.1
|
Pre-test conditions: |
Server offers a /test resource that handles DELETE
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a DELETE request with:- Type = 0 (CON)
- Code = 4 (DELETE)
|
|
2
|
Check
|
The request sent by the client contains:- Type=0 and Code=4
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
|
|
3
|
Check
|
Server sends response containing:- Code = 2.02 (Deleted)
- Message ID = CMID, Token = CTOK
- Content-format option if payload non-empty
- Empty or non-empty Payload
|
|
4
|
Verify
|
Client displays the received information
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_03
|
Objective: |
Perform PUT transaction (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.3, 1.2, 2.1, 2.2, 3.1
|
Pre-test conditions: |
Server offers already available resource /test or accepts creation of new resource on /test that handles PUT
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a PUT request with:- Type = 0 (CON)
- Code = 3 (PUT)
- Content-format option
- Empty or non-empty Payload
|
|
2
|
Check
|
The request sent by the client contains:- Type=0 and Code=3
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
|
|
3
|
Verify
|
Server displays received information
|
|
4
|
Check
|
Server sends response containing:- Code = 2.04 (Changed) or 2.01 (Created)
- Message ID = CMID, Token = CTOK
- Content-format option if payload non-empty
- Empty or non-empty Payload
|
|
5
|
Verify
|
Client displays the received response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_04
|
Objective: |
Perform POST transaction (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.2, 1.2, 2.1, 2.2, 3.1
|
Pre-test conditions: |
Server accepts POST request on /test
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a POST request with:- Type = 0 (CON)
- Code = 2(POST)
- Content-format option
- Empty or non-empty Payload
|
|
2
|
Check
|
The request sent by the client contains:- Type=0 and Code=2
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
|
|
3
|
Verify
|
Server displays received information
|
|
4
|
Check
|
Server sends response containing:- Code = 2.01 (Created) or 2.04 (Changed)
- Message ID = CMID, Token = CTOK
- Content-format option if payload non-empty
- Zero or more Location-path options
- Empty or non-empty Payload
|
|
5
|
Verify
|
Client displays the received response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_07
|
Objective: |
Perform PUT transaction (NON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.3, 5.2.3
|
Pre-test conditions: |
Server offers a /test resource that handles PUT
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a PUT request with:- Type = 1 (NON)
- Code = 3 (PUT)
- An arbitrary payload
- Content-format option
|
|
2
|
Check
|
The request sent by the client contains:- Type=1 and Code=3
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
|
|
3
|
Verify
|
Server displays the received information
|
|
4
|
Check
|
Server sends response containing:- Type = 1 (NON)
- Code = 2.04 (Changed) or 2.01 (Created)
- Server-generated Message ID (➔ SMID)
- Token = CTOK
- Content-format option if payload non-empty
- Empty or non-empty Payload
|
|
5
|
Verify
|
Client displays the received response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_08
|
Objective: |
Perform POST transaction (NON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.2, 5.2.3
|
Pre-test conditions: |
Server accepts POST request on /test
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a POST request with:- Type = 1 (NON)
- Code = 2(POST)
- An arbitrary payload
- Content-format option
|
|
2
|
Check
|
The request sent by the client contains:- Type=1 and Code=2
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
|
|
3
|
Verify
|
Server displays the received information
|
|
4
|
Check
|
Server sends response containing:- Type = 1 (NON)
- Code = 2.01 (Created) or 2.04 (Changed)
- Server-generated Message ID (➔ SMID)
- Token = CTOK
- Zero or more Location-path options
- Content-format option if payload non-empty
- Empty or non-empty Payload
|
|
5
|
Verify
|
Client displays the received response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_09
|
Objective: |
Perform GET transaction with separate response (CON mode, no piggyback)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 5.2.2
|
Pre-test conditions: |
Server offers a resource /separate which is not served immediately and which therefore is not acknowledged in a piggybacked way.
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Uri-Path option "separate"
- Client-generated Token (➔ CTOK)
|
|
3
|
Check
|
Server sends response containing:- Type = 2 (ACK)
- Code = 0
- Message ID = CMID
- Empty Payload
|
Some time (a couple of seconds) elapses.
|
|
4
|
Check
|
Server sends response containing:- Type = 0 (CON)
- Code = 2.05 (Content)
- Server-generated Message ID (➔ SMID)
- Token = CTOK
- Content-format option
- Non-empty Payload
|
|
5
|
Check
|
Client sends response containing:- Type = 2 (ACK)
- Code = 0
- Message ID = SMID
- Empty Payload
|
|
6
|
Verify
|
Client displays the response
|
Notes:
|
Steps 3 and 4 may occur out-of-order
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_10
|
Objective: |
Perform GET transaction containing non-empty Token (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 2.2, 5.8.1, 5.10.1
|
Pre-test conditions: |
Server offers a /test resource with resource content is not empty that handles GET
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a GET request to server’s resource with non-empty Token option
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Length of the token should be between 1 to 8 Bytes
- Uri-Path option "test"
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Content-format option
- Non-empty Payload
|
|
4
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_11
|
Objective: |
Perform GET transaction containing non-empty Token with a separate response (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 2.2, 5.2.2, 5.8.1
|
Pre-test conditions: |
Server offers a resource /separate which is not served immediately and which therefore is not acknowledged in a piggybacked way.
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a GET request to server’s resource including Token option
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Length of the token should be between 1 to 8 Bytes
- Uri-Path option "separate"
|
|
3
|
Check
|
Server sends response containing:- Type = 2 (ACK)
- Code = 0
- Message ID = CMID
- Empty Payload
|
Some time (a couple of seconds) elapses.
|
|
4
|
Check
|
Server sends response containing:- Type = 0 (CON)
- Code = 2.05 (Content)
- Server-generated Message ID (➔ SMID)
- Token = CTOK
- Non-empty Payload
|
|
5
|
Check
|
Client sends response containing:- Type = 2 (ACK)
- Code = 0
- Message ID = SMID
- Empty Payload
|
|
6
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_12
|
Objective: |
Perform GET transaction using empty Token (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 2.2, 5.8.1, 5.10.1
|
Pre-test conditions: |
Server offers the resource /test with resource content is not empty that handles GET with an arbitrary payload
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request using zero-length Token to server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Zero-Length Token ➔ CTOK
- Uri-Path option "test"
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Content-format option
- Non-empty Payload
|
|
4
|
Verify
|
Client displays the response
|
Notes:
|
Not all clients may be able to send a zero-length Token
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_13
|
Objective: |
Perform GET transaction containing several URI-Path options (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.4.5, 5.10.2, 6.5
|
Pre-test conditions: |
Server offers a /seg1/seg2/seg3 resource with resource content is not empty
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
and three options of type Uri-Path, with the values:
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Content-format option
- Non-empty Payload
|
|
4
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_14
|
Objective: |
Perform GET transaction containing several URI-Query options (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.4.5, 5.10.2, 6.5
|
Pre-test conditions: |
Server offers a /query resource with resource content is not empty
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request with three Query parameters (e.g. ?first=1&second=2&third=3) to the server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "query"
and two options of Uri-Query, with values such as:
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Content-format option
- Non-empty Payload
|
|
4
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_15
|
Objective: |
Perform GET transaction (CON mode, piggybacked response) in a lossy context
|
Configuration: |
CoAP_CFG_LOSSY
|
References: |
[COAP] 4.4.1, 5.2.1, 5.8.1
|
Pre-test conditions: |
- Gateway is introduced and configured to produce packet losses
- Server offers a /test resource with resource content is not empty that can handle GET
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
2
|
Check
|
Sent request must contain:- Type = 0
- Code = 1
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "test"
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Content-format option
- Non-empty Payload
|
|
4
|
Verify
|
Client displays the response
|
|
5
|
Check
|
Repeat steps 1-4 until at least one of the following actions has been observed:- One dropped request
- One dropped response
|
|
6
|
Verify
|
- For each case mentioned in step 5:
- Observe that retransmission is launched
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_16
|
Objective: |
Perform GET transaction (CON mode, delayed response) in a lossy context
|
Configuration: |
CoAP_CFG_LOSSY
|
References: |
[COAP] 4.4.1, 5.2.2, 5.8.1
|
Pre-test conditions: |
- Gateway is introduced and configured to produce packet losses
- Server offers a resource /separate which is not served immediately and which therefore is not acknowledged in a piggybacked way.
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
2
|
Check
|
The requested sent by the client contains:- Type = 0
- Code = 1
- Client-generated Message ID (➔ CMID)
- Uri-Path option "separate"
|
|
3
|
Check
|
Server sends response containing:- Type = 2 (ACK)
- Code = 0
- Message ID = CMID
- Empty Payload
|
|
4
|
Check
|
Server sends response containing:- Type = 0 (CON)
- Code = 2.05 (Content)
- Server-generated Message ID (➔ SMID)
- Non-empty Payload
- Content-format option
|
|
5
|
Check
|
Client sends response containing:- Type = 2 (ACK)
- Code = 0
- Message ID = SMID
- Empty Payload
|
|
6
|
Verify
|
Client displays the response
|
|
7
|
Check
|
Repeat steps 1-6 until at least one of the following actions has been observed:- One dropped request
- One dropped request ACK
- One dropped response
- One dropped response ACK and its retransmission
|
|
8
|
Check
|
- For each case mentioned in step 7:
- Observe that retransmission is launched
|
|
9
|
Check
|
- For the dropped request ACK case:
- Check that retransmission is also stopped by the arrival of the CON response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_17
|
Objective: |
Perform GET transaction with a separate response (NON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 2.2, 5.2.2, 5.8.1
|
Pre-test conditions: |
Server offers a resource /separate which is not served immediately and which therefore is not acknowledged in a piggybacked way.
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a non-confirmable GET request to server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 1 (NON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Uri-Path option "separate"
|
|
3
|
Check
|
Server DOES NOT send response containing:- Type = 2 (ACK)
- Same message ID as in the request in step 2
- Empty Payload
|
Some time (a couple of seconds) elapses.
|
|
4
|
Check
|
Server sends response containing:- Type = 1 (NON)
- Code = 2.05 (Content)
- Server-generated Message ID (➔ SMID)
- Content-format option
- Non-empty Payload
|
|
5
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_18
|
Objective: |
Perform POST transaction with responses containing several Location-Path options (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 5.10.8, 5.9.1.1
|
Pre-test conditions: |
Server accepts creation of new resource on /test and the created resource is located at /location1/location2/location3 (resource does not exist yet)
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable POST request to server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON
- Code = 2 (POST)
- An arbitrary payload
- Content-format option
- Uri-Path option "test"
|
|
3
|
Check
|
Server sends response containing:and three options of type Location-Path, with the values (none of which contains a "/"):- location1
- location2
- location3
|
|
4
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_19
|
Objective: |
Perform POST transaction with responses containing several Location-Query options (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 5.10.8, 5.9.1.1
|
Pre-test conditions: |
Server accepts creation of new resource on uri /location-query, the location of the created resource contains two query parameters ?first=1&second=2
|
Test Sequence: |
Step |
Type |
Description |
|
1
|
Stimulus
|
Client is requested to send a confirmable POST request to server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 2 (POST)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Content-format option
- Empty or non-empty Payload
- Uri-Path option "location-query"
|
|
3
|
Check
|
Server sends response containing:- Code = 2.01 (Created)
- Message ID = CMID, Token = CTOK
- Content-format option if payload non-empty
- Zero or more Location-path options
- Empty or non-empty Payload
and two options of type Location-Query, with the values (none of which contains a "?" or "&"):
|
|
4
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_20
|
Objective: |
Perform GET transaction containing the Accept option (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 5.10.5, 5.10.4
|
Pre-test conditions: |
Server should provide a resource /multi-format which exists in two formats: - text/plain;charset=utf-8
- application/xml
|
Test Sequence: |
Step |
Type |
Description |
client requests a resource in text format
|
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
2
|
Check
|
The request sent request by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Option type = Accept, value = 0 (text/plain;charset=utf-8)
- Uri-Path option "multi-format"
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Option type = Content-Format, value = 0 (text/plain;charset=utf-8)
- Payload = Content of the requested resource in text/plain;charset=utf-8 format
|
|
4
|
Verify
|
Client displays the response
|
client requests a resource in xml format
|
|
5
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
6
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Another client-generated Message ID ≠ CMID (➔ CMID2)
- Client-generated Token which may or may not be ≠ CTOK (➔ CTOK2)
- Option type = Accept, value = 41 (application/xml)
|
|
7
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID2, Token = CTOK2
- Option type = Content-Format, value = 41 (application/xml)
Payload = Content of the requested resource in application/xml format
|
|
8
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_21
|
Objective: |
Perform GET transaction containing the ETag option (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 5.10.7, 5.10.10, 12.1.12
|
Pre-test conditions: |
- Server should offer a /validate resource which may be made to vary over time
- Client & server supports ETag option
- The Client’s cache must be purged
|
Test Sequence: |
Step |
Type |
Description |
Verifying that client cache is empty
|
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
2
|
Check
|
The request sent request by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "validate"
- No ETag option
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Option type = ETag, value = a value chosen by the server (➔ ETAG1)
- Non-empty Payload
|
|
4
|
Verify
|
Client displays the response
|
Verifying client cache entry is still valid
|
|
5
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource so as to check if the resource was updated
|
|
6
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Another client-generated Message ID ≠ CMID (➔ CMID2)
- Client-generated Token which may or may not be ≠ CTOK (➔ CTOK2)
- Uri-Path option "validate"
- Option Type = ETag, value = ETAG1 (the ETag value received in step 3)
|
|
7
|
Check
|
Server sends response containing:- Code = 2.03 (Valid)
- Message ID = CMID2, Token = CTOK2
- Option type = ETag, value = ETAG1
- Empty Payload
|
|
8
|
Verify
|
Client displays the response
|
Verifying that client cache entry is no longer valid
|
|
9
|
Stimulus
|
Update the content of the server’s resource from a CoAP client (either another client, or the testing client in a separate transaction)
|
|
10
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource so as to check if the resource was updated
|
|
11
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Another client-generated Message ID ≠ CMID and ≠ CMID2 (➔ CMID3)
- Client-generated Token which may or may not be ≠ CTOK or CTOK2 (➔ CTOK3)
- Uri-Path option "validate"
- Option Type = ETag, value = ETAG1 (the ETag value received in step 3)
|
|
12
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID3, Token = CTOK3
- Option type = ETag, value = another ETag value ≠ ETAG1
- The payload of the requested resource, which should be different from the payload in step 3
|
|
13
|
Verify
|
Client displays the response
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_22
|
Objective: |
Perform GET transaction with responses containing the ETag option and requests containing the If-Match option (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 5.10.7, 5.10.9, 12.1.12
|
Pre-test conditions: |
- Server offers a /validate resource
- Client & server supports ETag and If-Match option
- The Client ‘s cache must be purged
|
Test Sequence: |
Step |
Type |
Description |
client gets the resource
|
|
1
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Uri-Path option "validate"
- No ETag option
|
|
3
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID, Token = CTOK
- Option type = ETag, value = a value chosen by the server (➔ ETAG1)
- Non-empty Payload
|
single update
|
|
4
|
Stimulus
|
Client is requested to send a confirmable PUT request to server’s resource so as to perform an atomic update
|
|
5
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 3 (PUT)
- Another client-generated Message ID ≠ CMID (➔ CMID2)
- Client-generated Token which may or may not be ≠ CTOK (➔ CTOK2)
- Content-format option
- Uri-Path option "validate"
- Option type = If-Match, value = ETAG1 (ETag value received in step 3)
- An arbitrary payload (which differs from the payload received in step 3)
|
|
6
|
Check
|
Server sends response containing:- Code = 2.04 (Changed)
- Message ID = CMID2, Token = CTOK2
- Content-format option if payload non-empty
- Empty or non-empty Payload
|
|
7
|
Verify
|
Client displays the response and the server changed its resource
|
concurrent updates
|
|
8
|
Stimulus
|
Client is requested to send a confirmable GET request to server’s resource
|
|
9
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 1 (GET)
- Another client-generated Message ID ≠ CMID and ≠ CMID2 (➔ CMID3)
- Client-generated Token which may or may not be ≠ CTOK or CTOK2 (➔ CTOK3)
- Uri-Path option "validate"
|
|
10
|
Check
|
Server sends response containing:- Code = 2.05 (Content)
- Message ID = CMID3, Token = CTOK3
- Option type = ETag, value = a value ≠ ETAG1 chosen by the server (➔ ETAG2)
- The Payload sent in step 5
|
|
11
|
Verify
|
Client displays the response
|
|
12
|
Stimulus
|
Update the content of the server’s resource from a CoAP client once more
|
|
13
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 3 (PUT)
- Another client-generated Message ID ≠ CMID, CMID2, CMID3 (➔ CMID4)
- Client-generated Token which may or may not be ≠ CTOK, CTOK2, CTOK3 (➔ CTOK4)
- Content-format option
- Uri-Path option "validate"
- An arbitrary payload (which differs from the payloads received in steps 3 and 10)
|
|
14
|
Check
|
Server sends response containing:- Code = 2.04 (Changed)
- Message ID = CMID4, Token = CTOK4
- Content-format option if payload non-empty
- Empty or non-empty Payload
|
|
15
|
Verify
|
Client displays the response and the server changed its resource
|
|
16
|
Stimulus
|
Client is requested to send a confirmable PUT request to server’s resource so as to perform an atomic update, assuming it is still unchanged from step 10
|
|
17
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 3 (PUT)
- Another client-generated Message ID ≠ CMID, CMID2, CMID3 (➔ CMID4)
- Client-generated Token which may or may not be ≠ CTOK, CTOK2, CTOK3 (➔ CTOK4)
- Content-format option
- Uri-Path option "validate"
- Option type = If-Match, value = ETAG2 (ETag value received in step 10)
- An arbitrary payload (which differs from the previous payloads)
|
|
18
|
Check
|
Server sends response containing:- Code = 4.12 (Precondition Failed)
- Message ID = CMID4, Token = CTOK4
- Optional Content-format option
- Empty or non-empty Payload
|
|
19
|
Verify
|
Client displays the response and the server did not update the content of the resource
|
Interoperability Test Description |
Identifier: |
TD_COAP_CORE_23
|
Objective: |
Perform PUT transaction containing the If-None-Match option (CON mode)
|
Configuration: |
CoAP_CFG_BASIC
|
References: |
[COAP] 5.8.1, 5.10.7, 5.10.10, 12.1.12
|
Pre-test conditions: |
- Server offers a /create1 resource, which does not exist and can be created by the client
- Client & server support If-Non-Match
|
Test Sequence: |
Step |
Type |
Description |
single creation
|
|
1
|
Stimulus
|
Client is requested to send a confirmable PUT request to server’s resource so as to atomically create the resource.
|
|
2
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 3 (PUT)
- Client-generated Message ID (➔ CMID)
- Client-generated Token (➔ CTOK)
- Content-format option
- Uri-Path option "create1"
- Option Type=If-None-Match
- An arbitrary payload
|
|
3
|
Check
|
Server sends response containing:- Code = 2.01 (Created)
- Message ID = CMID, Token = CTOK
- Content-format option if payload non-empty
- Empty or non-empty Payload
|
|
4
|
Verify
|
Client displays the response and the server created a new resource
|
concurrent creations
|
|
5
|
Stimulus
|
Client is requested to send a confirmable PUT request to server’s resource so as to atomically create the resource.
|
|
6
|
Check
|
The request sent by the client contains:- Type = 0 (CON)
- Code = 3 (PUT)
- Another client-generated Message ID ≠ CMID (➔ CMID2)
- Client-generated Token which may or may not be ≠ CTOK (➔ CTOK2)
- Content-format option
- Uri-Path option "create1"
- Option Type=If-None-Match
- An arbitrary payload
|
|
7
|
Check
|
Server sends response containing:- Code = 4.12 (Precondition Failed)
- Message ID = CMID2, Token = CTOK2
- Optional Content-format option
- Empty or non-empty Payload
|
|
8
|
Verify
|
Client displays the response
|