Jump to: navigation, search

Difference between revisions of "MagnetoDB/QA/Test statistics"

Line 1: Line 1:
=KVSaaS Test Cases and Ideas=
+
=By features=
 
 
'''Notes:'''
 
 
 
* Test Case ''status'':
 
** R - ready (test scenario exists and works fine - passes)
 
** P - in progress (test scenario exists but fails due to not-ready functionality)
 
** N - not implemented (test scenario is incomplete)
 
** <empty> - TC has not been analysed yet
 
 
 
 
 
 
 
=DDL and DML statements=
 
 
 
==BatchGetItem==
 
 
 
 
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 23: Line 7:
  
 
|
 
|
<center>'''Description'''</center>
+
<center>'''Feature'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
 
|
 
<center>'''T'''</center>
 
  
 
|
 
|
Line 39: Line 17:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>1</center>
  
 
|
 
|
'''General'''
+
'''Async table creation'''
 
 
|
 
 
 
  
 
|
 
|
Line 52: Line 27:
 
|
 
|
 
<center></center>
 
<center></center>
 
|
 
 
  
 
|-
 
|-
 
|
 
|
<center>BGI-1</center>
+
<center></center>
  
 
|
 
|
BatchGetItem contains all the correct mandatory parameters
+
Test design for "Async table creation" functionality
  
 
|
 
|
 
+
<center>Done</center>
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
 +
Implementing tests for "Async table creation"
  
 
|-
 
 
|
 
|
<center>BGI-2</center>
+
<center>In progress</center>
  
 
|
 
|
BatchGetItem contains all the correct parameters
+
<center></center>
  
 +
|-
 
|
 
|
 
+
<center>2</center>
  
 
|
 
|
<center>P</center>
+
'''Batch Write/Read API'''
  
 
|
 
|
Line 92: Line 65:
  
 
|
 
|
 
+
<center></center>
  
 
|-
 
|-
Line 99: Line 72:
  
 
|
 
|
'''TableName'''
+
Test design for batch processing
  
 
|
 
|
 
+
<center>Done</center>
  
 
|
 
|
 
<center></center>
 
<center></center>
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
 +
Implementation tests for batch processing
  
 
|-
 
 
|
 
|
<center>BGI-</center>
+
<center>In progress</center>
  
 
|
 
|
The only table name (existing) specified
+
<center></center>
  
 +
|-
 
|
 
|
 
+
<center>3</center>
  
 
|
 
|
<center>P</center>
+
'''Indexing'''
  
 
|
 
|
Line 130: Line 104:
  
 
|
 
|
 
+
<center></center>
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 
|
 
|
Several existing table names specified
+
Test design for "Indexes" functionality
  
 
|
 
|
 
+
<center>Done</center>
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
 +
Implementing tests for "Indexes" functionality
  
 
|-
 
 
|
 
|
<center>BGI-</center>
+
<center>In progress</center>
  
 
|
 
|
3 symbols long
+
<center></center>
  
 +
|-
 
|
 
|
 
+
<center>4</center>
  
 
|
 
|
<center>P</center>
+
'''Big data import #1'''
  
 
|
 
|
Line 168: Line 143:
  
 
|
 
|
 
+
<center></center>
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 
|
 
|
255 symbols long
+
POC based Tests design for "BigData import" functionality
  
 
|
 
|
 
+
<center>Done</center>
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
 +
Implementation of tests for "BigData import"
  
 
|-
 
 
|
 
|
<center>BGI-</center>
+
<center>In progress</center>
  
 
|
 
|
Less than 3 symbols long
+
<center></center>
  
 +
|-
 
|
 
|
 
+
<center>5</center>
  
 
|
 
|
<center>N</center>
+
'''Error messages'''
  
 
|
 
|
Line 206: Line 182:
  
 
|
 
|
 
+
<center></center>
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 
|
 
|
More than 255 symbols long
+
Design tests for clear error messages
  
 
|
 
|
 
+
<center>Done</center>
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
 +
Implementation of tests for clear error messages
  
 
|-
 
 
|
 
|
<center>BGI-</center>
+
<center>In progress</center>
  
 
|
 
|
Non-existent name
+
<center></center>
  
 +
|-
 
|
 
|
 
+
<center>6</center>
  
 
|
 
|
<center>N</center>
+
'''Other QA activities'''
  
 
|
 
|
Line 244: Line 221:
  
 
|
 
|
 
+
<center></center>
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 
|
 
|
Empty (like =)
+
Preparing QA environment for external usage
  
 
|
 
|
 
+
<center>Done</center>
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
 +
Preparing workable set of scripts for external triggering and running
  
 +
|
 +
<center>Done</center>
  
|-
 
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 +
|-
 
|
 
|
<nowiki>= ""</nowiki>
+
<center></center>
  
 
|
 
|
 
+
Creating documentation on running tests by external users
  
 
|
 
|
<center>N</center>
+
<center>Done</center>
  
 
|
 
|
 
<center></center>
 
<center></center>
 
|
 
 
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 
|
 
|
Mixed case letters in the name
+
Create a wiki page for tracing coverage and status of QA activities
  
 
|
 
|
 
+
<center>Done</center>
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
 +
Tests running, results analysis, working with defects
  
 +
|
 +
<center>In progress</center>
  
|-
 
 
|
 
|
 
<center></center>
 
<center></center>
  
 +
|-
 
|
 
|
'''RequestItems'''
+
<center></center>
 
 
|
 
 
 
  
 
|
 
|
<center></center>
+
Test results documenting, keeping actual status and publicising
  
 
|
 
|
<center></center>
+
<center>In progress</center>
  
 
|
 
|
Line 327: Line 306:
  
 
|
 
|
'''(AttributesToGet)'''
+
Complete with implementing Positive tests for BatchWrite, PutItem, Query statements
 +
 
 +
|
 +
<center>Done</center>
  
 
|
 
|
  
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
<center></center>
+
(Complete with implementing Negative tests for all implemented statements)
  
 
|
 
|
 +
<center>In progress</center>
  
 
|-
 
 
|
 
|
<center>BGI-</center>
 
  
|
 
Option not specified (by default)
 
  
 +
|-
 
|
 
|
All attrs are returned
+
<center></center>
  
 
|
 
|
<center>P</center>
+
Create TCs design (both Pos and Neg) for ListTables
  
 
|
 
|
<center></center>
+
<center>Done</center>
  
 
|
 
|
Line 362: Line 342:
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 
|
 
|
All existing attrs
+
(Finalize Master Test Plan)
  
 
|
 
|
 +
<center>In progress</center>
  
 +
|
  
|
 
<center>P</center>
 
  
 +
|-
 
|
 
|
 
<center></center>
 
<center></center>
Line 379: Line 360:
  
  
|-
 
 
|
 
|
<center>BGI-</center>
+
<center></center>
  
 
|
 
|
Some existing attrs
 
  
|
+
 
 +
|}
  
  
|
+
=Automation=
<center>P</center>
 
  
 +
{| class="wikitable"
 +
|-
 
|
 
|
<center></center>
+
<center>'''<nowiki>#</nowiki>'''</center>
  
 
|
 
|
 +
<center>'''Test Type'''</center>
  
 
|-
 
 
|
 
|
<center>BGI-</center>
+
<center>'''Successful
  
|
+
'''(Stable)</center>
Only non-existing attributes
 
  
 
|
 
|
 +
<center>'''Pending
  
 +
'''(In progress +
  
|
+
Not ready)</center>
<center>N</center>
 
  
 
|
 
|
<center></center>
+
<center>'''Stories Covered'''</center>
  
 
|
 
|
 
+
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center>1</center>
  
 
|
 
|
No attrs specified (whereas the Option exists)
+
Integration
 +
 
 +
(MagnetoDB API)
  
 
|
 
|
 
+
<center></center>
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 434: Line 416:
  
 
|
 
|
 
+
<center></center>
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center>2</center>
  
 
|
 
|
Some existing and some non-existent attrs specified
+
Performance/Load
  
 
|
 
|
 
+
<center></center>
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 453: Line 435:
  
 
|
 
|
 
+
<center></center>
  
 
|-
 
|-
 
|
 
|
<center>BGI-</center>
+
<center>3</center>
 
 
|
 
Attrs list looks strange like "" or "//', 123, abc##, etc
 
  
 
|
 
|
Line 466: Line 445:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 472: Line 451:
  
 
|
 
|
 +
<center></center>
  
 
|-
 
 
|
 
|
 
<center></center>
 
<center></center>
 
|
 
'''(Keys)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Single "B" key specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
"B" and "N" keys specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Single "SS" key specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
"SS" and "NS" keys specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
"B", "S", "SS" and "NS" keys specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Incorrect key name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Incorrect key type
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Key type omitted
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Key name omitted
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Empty key name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Empty key type
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(ConsistentRead)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
By default (if not specified)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= TRUE</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= FALSE</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= ""</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Just = symbol
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= "Another_value"</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnConsumedCapasity'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
By default (if not specified)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= "INDEXES"</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= "TOTAL"</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= "NONE"</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= ""</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Just "="
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
<nowiki>= "Another_value"</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Exceptions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
InternalServerError
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
ProvisionedThroughputExceededException
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
ResourceNotFoundException
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Limitations'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(Data volume)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Specify BatchGet to retrieve less than 1MB of data
 
 
|
 
"UnprocessedKeys" contains no items
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Specify BatchGet to retrieve exactly 1MB of data
 
 
|
 
"UnprocessedKeys" contains no items
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Specify BatchGet to retrieve more than 1MB (and &lt; 2MB) of data
 
 
|
 
"UnprocessedKeys" contains items exceeding 1MB limit
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Specify BatchGet to retrieve more than 2MB of data
 
 
|
 
"UnprocessedKeys" contains items exceeding first 1MB limit AND
 
 
(after the next Request, in the next Response) "UnprocessedKeys" contains items exceeding the 2MB limit
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(Items number)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Specify less than 100 items in the Request
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Specify exactly 100 items in the Request
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Specify more than 100 items in the Request
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Response'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Contains "GlobalSecondaryIndexes" section if there is (are) such for the table
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Contains "LocalSecondaryIndexes" section if there is (are) such for the table
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Contains both GSI and LSI sections if there are such for the table
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
Result contains:
 
 
* "ConsumedCapacity":
 
** CapacityUnits
 
** GSI
 
** LSI
 
** Table
 
** TableName
 
* "Responses"
 
* "UnprocessedKeys"
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BGI-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==BatchWriteItem==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-1</center>
 
 
|
 
Complete set of correct mandatory options
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-2</center>
 
 
|
 
Complete set of correct all options
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''PutRequest'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-10</center>
 
 
|
 
Correct Item string AND
 
 
"N" : "string" value
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-11</center>
 
 
|
 
Non-existent Item string AND
 
 
"N" : "string" value
 
 
|
 
Error + UnprocessedItems contains unprocessed PutRequest Items
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-12</center>
 
 
|
 
EMPTY Item string AND
 
 
"N" : "string"
 
 
|
 
Error + UnprocessedItems contains unprocessed PutRequest Items
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-13</center>
 
 
|
 
Correct Item string and
 
 
<nowiki>"NS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-14</center>
 
 
|
 
Correct Item string and
 
 
"B" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-15</center>
 
 
|
 
Correct Item string and
 
 
"<nowiki>BS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-16</center>
 
 
|
 
Correct Item string and
 
 
"S" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-17</center>
 
 
|
 
Correct Item string and
 
 
"N" : EMPTY value
 
 
|
 
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-18</center>
 
 
|
 
Correct Item string and
 
 
"&lt;SOME_STRANGE_OR_EMPTY_VALUE&gt;" : "string" value
 
 
|
 
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-19</center>
 
 
|
 
Correct Item string and
 
 
"NS" : "non-existent_string" value
 
 
|
 
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-20</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''DeleteRequest'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-30</center>
 
 
|
 
Correct Key string and
 
 
"N" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-31</center>
 
 
|
 
Non-existent Key string and
 
 
"N" : "string" value
 
 
|
 
Error + UnprocessedItems contains unprocessed DeleteRequest Items
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-32</center>
 
 
|
 
EMPTY Key string and
 
 
"N" : "string" value
 
 
|
 
Error + UnprocessedItems contains unprocessed DeleteRequest Items
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-33</center>
 
 
|
 
correct Key string and
 
 
<nowiki>"NS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-34</center>
 
 
|
 
correct Key string and
 
 
"B" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-35</center>
 
 
|
 
correct Key string and
 
 
<nowiki>"BS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-36</center>
 
 
|
 
correct Key string and
 
 
"S" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-37</center>
 
 
|
 
Correct Key string and
 
 
<nowiki>"SS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''CombinedRequest'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-40</center>
 
 
|
 
Specify in one statement:
 
 
correct Key string for
 
 
DeleteRequest "N" : "string" value AND
 
 
correct Item string for
 
 
PutRequest "N" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-41</center>
 
 
|
 
Specify in one statement:
 
 
correct Key string for
 
 
DeleteRequest "B" : "string" value AND
 
 
correct Key string for
 
 
DeleteRequest "SS" : "string" values AND
 
 
correct Item string for
 
 
PutRequest "NS" : "string" values AND
 
 
(!!!) INcorrect Item string for
 
 
PutRequest "S" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-42</center>
 
 
|
 
Specify in one statement:
 
 
correct Item string for
 
 
PutRequest "N" : "string_A" value
 
 
correct Key string for
 
 
DeleteRequest "N" : "string_A" value
 
 
|
 
An error: you can't put and delete the same item in the same BatchWriteItem request
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''RequestItems (TableName)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-50</center>
 
 
|
 
correct table name and
 
 
correct PutRequest parameters for the Item
 
 
|
 
Line(s) added correctly
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-51</center>
 
 
|
 
Specify 25 correct table names and
 
 
correct PutRequest parameters for the Items
 
 
|
 
Line(s) added correctly into all 25 tables
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-52</center>
 
 
|
 
Specify 26 correct table names and
 
 
correct PutRequest parameters for the Items
 
 
|
 
error/exception (?)
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-53</center>
 
 
|
 
correct table name and
 
 
correct DeleteRequest parameters for the Key
 
 
|
 
Line(s) deleted correctly
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-54</center>
 
 
|
 
INcorrect table name
 
 
correct PutRequest parameters for an Item
 
 
Check that ''UnprocessedItems'' contains unprocessed PutRequest Items:
 
 
* TableName &lt; 3 symbols
 
* TableName &gt; 255 symbols
 
* Non-existent table name
 
 
|
 
Exception
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-55</center>
 
 
|
 
Correct table name and
 
 
correct PutRequest parameters for the Item
 
 
Make total request size more than 1 MB (how to?)
 
 
|
 
error
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-56</center>
 
 
|
 
correct table name and
 
 
correct PutRequest parameters for the Item
 
 
Any individual item in a batch exceeds 64 KB (how to?)
 
 
|
 
error
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnItemCollectionMetrics'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-60</center>
 
 
|
 
is NONE (by default)
 
 
|
 
no statistics returned
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-61</center>
 
 
|
 
is SIZE
 
 
|
 
statistics about item collections, if any, that were modified during the operation are returned in the response
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-62</center>
 
 
|
 
is &lt;Something_else&gt;
 
 
|
 
error/exception
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnConsumedCapacity'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-63</center>
 
 
|
 
is NONE (by default)
 
 
 
 
|
 
ConsumedCapacity is not included in the response
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-64</center>
 
 
|
 
is TOTAL
 
 
|
 
the response includes ConsumedCapacity data for tables and indexes
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-65</center>
 
 
|
 
is INDEXES
 
 
|
 
the response includes ConsumedCapacity for indexes only
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-66</center>
 
 
|
 
is &lt;Something_else&gt; (and empty)
 
 
|
 
error/exception
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Exceptions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-70</center>
 
 
|
 
Simulate InternalServerError
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-71</center>
 
 
|
 
Simulate ItemCollectionSizeLimitExceededException
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-72</center>
 
 
|
 
Simulate ProvisionedThroughputExceededException
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-73</center>
 
 
|
 
Simulate ResourceNotFoundException
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>BWI-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==CreateTable==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-1</center>
 
 
|
 
Create table without any optional attributes, only all mandatory
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-2</center>
 
 
|
 
Create a table specifying ALL (including mandatory) the correct parameters
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-3</center>
 
 
|
 
Try to create two tables with the same name in the same region
 
 
|
 
ResourceInUseException expected.
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to create two tables with the same name in two different regions.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Verify first status is CREATING, then ACTIVE
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
What happens if read/write to/from table in CREATING state? Possible to reproduce?
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create one table with sec. indexes and then try to create one more table while the first one is in CREATING state.
 
 
- Possible to reproduce?
 
 
- How much time the table should be in CREATING state?
 
 
- Can I manage this time anyhow?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to create table w/o some mandatory attribute: AttributeDefinitions, KeySchema, ProvisionedThroughput, TableName.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''AttributeDefinitions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''''Number of attributes'''''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
create table with 1 attr
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
What is upper limit? Try max and max+1
 
 
"Individual items in an DynamoDB table can have any number of attributes,  although there is a limit of 64 KB on the item size. An item size is the  sum of lengths of its attribute names and values (binary and UTF-8 lengths)."
 
 
So, number of attr is limited only by item size. Can be tested only via PutItem?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create a table with key and non-key (and non-index also) attributes. It should fail. Non-key attrs are unacceptable.
 
 
'''Note:'''
 
 
'''''Test for PutItem:''' PutItem not containing values for non-key/non-indexed attributes of the table to ensure these attrs are not required. ''
 
 
|
 
Error/exception ?
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''''AttrName'''''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try length of 1 symbol, 255 (upper limit) - these limits are applicable only for key attrs and index projections. Other attrs can have longer names, without explicit limits (just size of the whole item).
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try lengh 255+1 for key and indexes attr.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Check size of non-key / non-index-projected attr names
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to send attr names without attr types.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create table with attrs of each type: S, N, B. Ensure the data types are applied on put/get operations (it could be covered in Put/Get tests).
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
AWS says regarding local indexes creation: “You can project attributes of any data type, including scalar data types and multi-valued sets.” But how to define projection of Set types if they cannot be assigned to the attributes on table creation stage?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to create a table with attribute of some SET type. It should not be allowed.
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''KeySchema'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create table with a key of HASH type.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create table with a key of HASH and RANGE type.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to enumerate key attrs in wrong order: RANGE and then HASH attrs in the KeySchema list
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to create a table only with RANGE key
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to leave the list empty
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to add more than one HASH and/or RANGE attr. In general, add more than 2 attrs to the list.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try keytype different from HASH and RANGE.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try not to mention key attr in Definitions but only in KeySchema.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to mention attr names not defined in AttrDefinitions.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ProvisionedThroughput
 
 
'''''(for now, MagnetoDB ignores these values.)''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Set positive values.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to mention not all mandatory attrs
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to pass non-number, negative number
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''TableName'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Name length is 3
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Name length is 255
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Name length &lt; 3
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Name length &gt; 255
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
What are the limitations regarding lower and upper case, hyphen and other symbols? Do they correspond to DynamoDB rules?
 
 
AWS says: “For table and secondary index names, allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' (dot). Names can be between 3 and 255 characters long.”
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Provide an empty table name.
 
 
|
 
exception ?
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''LocalSecondaryIndexes'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create index without some of mandatory attributes.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''''Number of indexes'''''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create 1 index for a table
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create 5 indexes for the table
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create 6 indexes for the table
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Set LSI attribute as an empty list
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
“There is a 10 GB size limit per hash key” - how to evaluate it? Generate so many items that size of all hash key value is about 10 GB?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''''IndexName'''''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create an index having 3 characters long name
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create an index having 255 characters long name
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create an index having 2 characters long name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create an index having 256 characters long name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
TO BE CLARIFIED: Is it case-sensitive? non-letters?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create 2 tables with similar index names.
 
 
|
 
successful
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Try to create 2 indexes with the same name in one table
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''KeySchema'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create LSI with Hash different from table hash key (table should have H+R key).
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create LSI for table with HASH w/o RANGE. Should fail. But will work for global indexes.
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create similar indexes with different names (the same keys, etc)
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
create an index just with HASH key, w/o RANGE
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
‘Repeat’ key schema of the table. “For a local secondary index, the hash key must be the same as the table's hash key, and the range key must be a non-key table attribute.”
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
'''''Test for PutItem:''' Ensure range key of LSI is not a mandatory attribute.''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Projection'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Check usage of all projection types: KEYS_ONLY, INCLUDE, ALL. Query tests verify that it works as expected.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Use NonKeyAttributes but skip ProjectionType
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Use NonKeyAttributes list with one attribute in it
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Use key attrs in the NonKeyAttributes list
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Make NonKeyAttributes list empty
 
 
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Insert some non-key attrs in NonKeyAttributes list when Pr.Type is KEYS_ONLY. Then - similar but with ALL case.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create a table with 20 non-key attrs in one LSI.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create a table with 21 non-key attrs in one LSI.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create a table with 20 non-key attrs in multiple LSIs.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create a table with 21 non-key attrs in diff. LSIs, without repetitions of attr names.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create a table with 21 non-key attrs in diff. LSIs, with repetitions of attr names between LSI’s.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''GlobalSecondaryIndexes'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
(out of scope now)
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Response'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Most of key-values in TableDescription are equal to data from Request
 
 
|
 
Check and verify:
 
 
* AttributeDefinitions
 
* KeySchema
 
* LocalSecondaryIndexes (also new attrs appear: IndexSizeBytes, IndexStatus, ItemCount)
 
* ProvisionedThroughput (also new attrs appear: LastDecreaseDateTime, LastIncreaseDateTime - these two should be absent on creation, NumberOfDecreasesToday - should be 0 on creation)
 
* TableName
 
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Attrs not present in Request but should be present in Response
 
 
|
 
* CreationDateTime
 
* ItemCount (should be 0 just after table creation)
 
* TableSizeBytes (should be 0 on creation)
 
* TableStatus (should be CREATING, then ACTIVE)
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
If LSI are not created, should this attr be present in response as empty list?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Think how to check TableSizeBytes value.
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
CreationDateTime verification: Find a way to get current time from the target system
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Exceptions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
LimitExceededException:
 
 
Is related to in-progress states. Not possible to reproduce for now.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
ResourceInUseException:
 
 
Recreate existing table ''(the case was mentioned above)''
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
InternalServerError:
 
 
<nowiki>When this error [500] is expected and when some other error should appear?</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Additional'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
Create more than 255 tables
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center>CreT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==DeleteItem==
 
 
==DeleteTable==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-1</center>
 
 
|
 
Delete an existing table. Check if all the Response’s fields (see Table Description object) are equal to the appropriate table parameters
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Delete a non-existent table
 
 
|
 
''ResourceNotFoundException''
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Delete a table specifying “” as a name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Delete a table specifying ''NULL'' as a name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Delete a table w/o specifying any parameters
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Delete a table having a name that contains only 2 or 1 symbol
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Delete a table specifying a name that contains more than 255 symbols
 
 
|
 
''ResourceNotFoundException ?''
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Delete an existing table and, while the status is ''DELETING'', run DeleteTable operation for the same table once again
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Results Verification'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Exceptions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Simulate ''InternalServerError'' exception. Ideas?
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Simulate ''LimitExceededException'' exception. Ideas?
 
 
Delete more than 10 tables in the same time
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Simulate ''ResourceInUseException'' exception. Ideas?
 
 
Delete a table while it is in use by some other operation
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
Simulate ''ResourceNotFoundException'' exception. Other ideas?
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DelT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
 
 
==DescribeTable==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-1</center>
 
 
|
 
Run ''DescribeTable'' against the existing table. Check that all the required params are described correctly (see “Response Syntax” for DescribeTable statement)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
Run ''DescribeTable'' against the non-existent table (''ResourceNotFoundException'' exception)
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
Run ''DescribeTable'' specifying “” as a table name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
Run ''DescribeTable'' specifying ''NULL'' as a name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
Run ''DescribeTable'' w/o specifying any parameters
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
Run ''DescribeTable'' specifying a name that contains only 2 or 1 symbol (causes an exception?)
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
Run ''DescribeTable'' specifying a name that contains more than 255 symbols
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
Simulate ''InternalServerError'' exception
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>DesT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==GetItem==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-1</center>
 
 
|
 
Get an item specifying correct mandatory attributes
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Get an item specifying all the correct mandatory and optional ttributes
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''TableName'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Valid (existing) table name
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Existing table name of 3 symbols
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Existing table name of 255 symbols
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
From non-existent table name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Empty name (“”)
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Less than 3 symbols long
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
More than 255 symbols long
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''AttributesToGet:'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Specified, correct items in the list
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Section not specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
“AttributesToGet” term not specified, but there is a list of items in the section
 
 
|
 
Exception/error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Section AttributesToGet is specified, but there is just an empty list (no items)
 
 
|
 
Exception/error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Specified more attributes than exist in the table
 
 
|
 
Exception/error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Incorrect attributes: Wrong names
 
 
|
 
Exception/error
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Incorrect attributes: Empty values like ""
 
 
|
 
Exception/error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Key'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
One Key specified: “B”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
One Key specified: “N”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
One Key specified: “S”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
One key: “BS”
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
One key: “NS”
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
One key: “SS”
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Combination of "B", "N", "S" types
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Combination of "B", "N", "S", "BS", "NS", "SS" types
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Combination of “B”, “B”, "N", "N", “S”, “S”,  “BS”, “BS”, "NS", "NS", “SS”, “SS” types
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
The whole section “Key” not specified
 
 
|
 
Exception/error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Section “Key” specified, but the section content is empty
 
 
|
 
Exception/error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")
 
 
|
 
Exception/error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
In section “Key” there is a key of type “N” but a non-existent value specified for it
 
 
|
 
No items returned in Response
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ConsistentRead'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
<nowiki>= True</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
<nowiki>= False</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Not specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
<nowiki>= &lt;Something_else&gt;</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnConsumedCapacity'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
<nowiki>= INDEXES</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
<nowiki>= TOTAL</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
<nowiki>= NONE</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
<nowiki>= &lt;Something_else&gt;</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Exceptions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Simulate ConditionalCheckFailedException
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Simulate InternalServerError
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Simulate ItemCollectionSizeLimitExceededException
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Simulate ProvisionedThroughputExceededException
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
Simulate ResourceNotFoundException
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>GI-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==ListTables==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-1</center>
 
 
|
 
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
 
 
Empty result (if there are no tables in this Tenant and Datacenter were created)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-2</center>
 
 
|
 
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
 
 
A list of existing tables in this Tenant and Datacenter (if there are some in this Tenant and Datacenter tables)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-3</center>
 
 
|
 
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
 
 
The List does not contain the tables having “CREATING” status
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-4</center>
 
 
|
 
Incorrect spelling of ListTables specified like: LisTables or Listables or ListTable, etc
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
There is no “{” or “}” in the statement
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Limit'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
The limit option is not specified and
 
 
The number of existing tables is 5
 
 
|
 
1 page containing all 5 tables
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
The limit option is not specified and
 
 
The number of tables is 100
 
 
|
 
1 page containing all 100 tables
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Limit = 3 and
 
 
number of existing tables is 100
 
 
|
 
The number of tables on the page is 3 and
 
 
"LastEvaluatedTableName" parameter in Response contains the 3rd (last displayed on the 1st page) table name and
 
 
There are 34 result pages in total
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Limit = 3 and
 
 
"LastEvaluatedTableName" = &lt;3d_table_name_in_the_table_list_of_the_previous_TC&gt; and
 
 
number of existing tables is 100
 
 
|
 
The number of tables on the second page is 3 and
 
 
"LastEvaluatedTableName" parameter in Response contains the 3d (last on the second page) table name and
 
 
There are 32 yet other pages able to be displayed
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Limit = 0
 
 
|
 
Error/exception
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Limit = -2
 
 
|
 
Error/exception
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Limit = "Some_strange_string"
 
 
|
 
Error/exception
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Limit = ""
 
 
|
 
Error/exception
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Limit = &lt;nothing&gt;
 
 
|
 
Error/exception
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Case sensitivity (?)
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ExclusiveStartTableName'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
The "ExclusiveStartTableName" option not specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
An existing "ExclusiveStartTableName" specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
An existing "ExclusiveStartTableName" specified when:
 
 
There were no previous runs of ListTables statement
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
An existing "ExclusiveStartTableName" specified when:
 
 
Previous run of ListTables statement returned just one page
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
"ExclusiveStartTableName" is 3 symbols long
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Table name is 255 symbols long
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Table name is 1 or 2 symbols long
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Table name is 256 or more symbols long
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
A non-existent table name specified
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
No table names specified
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
An empty (like "ExclusiveStartTableName" :) table name specified
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Tenant'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Switch to another tenant and
 
 
Perform ListTables operations:
 
 
The "ExclusiveStartTableName" option not specified
 
 
|
 
A unique (pertinent to this specific Tenant) list of tables returned
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
Switch to another tenant and
 
 
Perform ListTables operations:
 
 
An existing table name specified in "ExclusiveStartTableName"
 
 
|
 
A unique (pertinent to this specific Tenant) list of tables returned starting from the specified table name
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''DataCenter (endpoint)'''
 
 
Switch to another Datacenter and
 
 
Perform ListTables operations:
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
The "ExclusiveStartTableName" option not specified
 
 
|
 
A unique (pertinent to this specific Datacenter) list of tables returned
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
An existing table name specified in "ExclusiveStartTableName"
 
 
|
 
A unique (pertinent to this specific Datacenter) list of tables returned starting from the specified table name
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>LisT-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==PutItem==
 
 
'''Note:''' For each test, check the ''ResponseValue'' for required options and values
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(Correct names of required fields)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-1</center>
 
 
|
 
put item to '''''INSERT 1''''' '''''attribute''''' (an existing table, 1 correct attribute “S”)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
put item to '''''INSERT  N attributes''''' (an existing table, 1 correct attribute “S”)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
put item to '''''UPDATE 1''''' '''''attribute''''' (an existing table, 1 correct attribute “S”), ''Exists = true''
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
put item to '''''UPDATE N''''' '''''attributes''''' (an existing table, 1 correct attribute “S”), ''Exists = true''
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
put item to '''''UPDATE N''''' '''''attributes''''' (an existing table, '''''N''''' correct attributes “S”), no “''Exists''” option specified (should be ''True'' by default)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(Put item to ''UPDATE N'' ''attributes)'''''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
an existing table, '''''N''''' correct attributes of type “B”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
an existing table, '''''N''''' correct attributes of type “BS”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
an existing table, '''''N''''' correct attributes of type “N”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
an existing table, '''''N''''' correct attributes of type “NS”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
an existing table, '''''N''''' correct attributes of type “SS”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
an existing table, '''''N''''' correct attributes of types “B”, “BS”, “N”, “NS”, “S”, “SS”
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
Put item to '''''UPDATE N''''' '''''attributes''''' (an existing table, '''''N''''' correct attributes “SS”)
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
'''(''Expected'' conditions (all combinations))'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
CORRECT field name and "N" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
NON-EXISTENT field name and "N" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
EMPTY field name and "N" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>CORRECT field name and "NS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
CORRECT field name and "B" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>CORRECT field name and "BS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
CORRECT field name and "S" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>CORRECT field name and "SS" : ["string"] values</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
CORRECT field name and "N" : EMPTY value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
CORRECT field name and "&lt;SOME_STRANGE_OR_EMPTY_VALUE&gt;" : "string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
CORRECT field name and "NS" : "NON-EXISTENT_string" value
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(''Exists'' value)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Option omitted (by default)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= True</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= False</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “”</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “something else”</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= &lt;something_else&gt;</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnConsumedCapacity''':
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= INDEXES </nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= TOTAL </nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= NONE</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “something_else”</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “”</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
&lt;no_value&gt;
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
incorrect spelling of RCC
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnItemCollectionMetrics'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= SIZE</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= NONE</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “something_else”</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “”</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
&lt;no_value&gt;
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
incorrect spelling of RCM
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnValues'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= NONE</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= ALL_OLD </nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= UPDATED_OLD </nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= ALL_NEW </nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>=s UPDATED_NEW</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “”</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= “something_else”</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
<nowiki>= empty</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
&lt;empty&gt;
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
incorrect spelling of  “ReturnValues”
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Others'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Update an existing line while the key-value to be updated is in UPDATING status
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Update a non-existent table
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Update a table titled as “”
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Update a table by specifying only 2 letters of its title
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Update a table by specifying more than 256 letters of its title
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Update a table having no name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(Insert an item)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Specifying PrimaryKey as equal to the already existing line (this scenario update existing line)
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Specifying strange data type (not in B, BS, S, SS, N, NS) for a Value to be inserted
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Specifying two equal Key values in one operation (if we specified two attributes with equal names - in table put only value of the last attribute)
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Specifying no values for a Key
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Specifying non-existent Keys in “Expected” option
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Exceptions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Simulate: ''ConditionalCheckFailedException'' exception
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Simulate: ''ItemCollectionSizeLimitExceededException'' exception 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Simulate: ''ProvisionedThroughputExceededException'' exception
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
Simulate: ''ResourceNotFoundException'' exception (implements in "Update a non-existent table")
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''TTL parameter tests'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>PI-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==Query==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-1</center>
 
 
|
 
Query statement contains the correct mandatory parameters only
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Query statement contains ALL the correct parameters
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''TableName'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Valid name specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Non-existent name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Empty name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Less than 3 symbols long
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
More than 255 symbols long
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Exactly 3 and 255 symbols long
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Upper and lower cases
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''AttributesToGet'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Specified correct attributes
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Not specified
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Specified more attributes than exist in the table
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
It’s positive
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Specified incorrect attributes: wrong names
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
It’s positive
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Specified incorrect attributes: empty values like ""
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Exact correct list:
 
 
Select = SPECIFIC_ATTRIBUTES
 
 
|
 
Correct result
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Exact correct list:
 
 
Select = ALL_ATTRIBUTES
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Exact correct list:
 
 
Select = ALL_PROJECTED_ATTRIBUTES
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Exact correct list:
 
 
Select = COUNT
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Exact correct list:
 
 
Select = “”
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Exact correct list:
 
 
Select = “something_else”
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
The option is not specified
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Completely incorrect list
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
It’s positive
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Some correct and some incorrect names in the list
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
It’s positive
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Empty list
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Not specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''KeyConditions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Key "B" specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Key "N" specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Key "S" specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Key "BS" specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Key "NS" specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Key "SS" specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Combination of "B" + "N" + "S"
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Combination of all 6 types ("B" + "N" + "S" + "BS" + "NS" + "SS")
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Not specified
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ConsistentRead'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= True</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Option not specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= “Something else”</nowiki>
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnConsumedCapacity'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= "</nowiki>INDEXES"
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= "TOTAL"</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= "NONE"</nowiki>
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= “Something_else”</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= “”</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= &lt;Empty value&gt;</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ExclusiveStartKey'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
is String
 
 
|
 
Records are taken starting by LastKeyValue of the previous operation
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
is Number
 
 
|
 
Records are taken starting by LastKeyValue of the previous operation
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
is Binary
 
 
|
 
Records are taken starting by LastKeyValue of the previous operation
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
is S or N or B, but there was no previous operations
 
 
|
 
What’s the content of ExclusiveStartKey?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
is Set of S or N or B
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Not specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Incorrect ExclusiveStartKey
 
 
|
 
Error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''IndexName'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
correct Local SI (Secondary Index)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
correct Global SI
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
non-existent LSI
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
non-existent GSI
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Not specified
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Name length &lt; 3 symbols
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Name length &gt; 255 symbols
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Empty index name
 
 
|
 
error
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Upper case index name
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Lower case index name
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Mix of Upper/lower case letters in index name
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Limit'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Valid statement that returns &gt; 10 lines,
 
 
Limit = 5
 
 
|
 
5 lines returned and LastEvaluatedKey points to the last returned line
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Valid statement that returns N lines
 
 
Limit = N*2
 
 
|
 
N lines returned and LastEvaluatedKey points to the last returned line
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Valid statement that returns N (&lt; 5) lines
 
 
Limit = 5
 
 
|
 
N lines returned and LastEvaluatedKey points to the last returned line
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Valid statement that returns N (&lt; 5) lines
 
 
Limit = 0
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
Valid statement that returns data size &gt; 1 MB
 
 
Limit = 100 000 (that is more than 1 MB data size)
 
 
|
 
Check that obtained data size is not more than 1 MB and LastEvaluatedKey points to the last returned line that does not exceed 1 MB
 
 
|
 
<center></center>
 
 
|
 
<center>N</center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ScanIndexForward'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= TRUE (by default)</nowiki>
 
 
|
 
data are sorted by ascending of the index key
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= FALSE</nowiki>
 
 
|
 
data are sorted by descending of the index key
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= “Another value”</nowiki>
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= &lt;empty value&gt;</nowiki>
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Select'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= ALL_ATTRIBUTES</nowiki>
 
 
|
 
Returns all of the item attributes from the specified table or index
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= ALL_PROJECTED_ATTRIBUTES</nowiki>
 
 
|
 
Retrieves all attributes which have been projected into the index
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= COUNT </nowiki>
 
 
|
 
Returns the number of matching items, rather than the matching items themselves
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= SPECIFIC_ATTRIBUTES</nowiki>
 
 
|
 
Returns only the attributes listed in AttributesToGet
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= &lt;empty value&gt;</nowiki>
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= “”</nowiki>
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
<nowiki>= “Something else”</nowiki>
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''KeyConditions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "EQ"
 
 
|
 
Existing record should be returned (STRING, NUMBER, BOOLEAN)
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "EQ"
 
 
AttributeValue is SET of Number or String or Boolean
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "EQ"
 
 
Two AttributeValues specified (NUMBER and STRING)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name (BINARY)
 
 
ComparisonOperator = "EQ"
 
 
AttributeValue is of type NUMBER or STRING
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One INcorrect field name
 
 
ComparisonOperator = "EQ"
 
 
Valid comparison value
 
 
|
 
error ?
 
 
|
 
<center>N</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "EQ"
 
 
Comparison expression represents a combination that does not exist in the actual table
 
 
|
 
No records returned
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
INVALID ComparisonOperator
 
 
Valid comparison value
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name (Number or String or Boolean)
 
 
ComparisonOperator = "LE"
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
 
|
 
ok
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "LE"
 
 
Two AttributeValues specified
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "LE"
 
 
AttributeValue is SET of Number or String or Boolean
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name (Number or String or Boolean)
 
 
ComparisonOperator = "LT"
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
 
|
 
ok
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "LT"
 
 
Two AttributeValues specified
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name (a set)
 
 
ComparisonOperator = "LT"
 
 
AttributeValue is SET of the same type
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "GE"
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
 
|
 
ok
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name (N type)
 
 
ComparisonOperator = "GE"
 
 
Two (N and S) AttributeValues specified
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "GE"
 
 
AttributeValue is SET of Number or String or Boolean
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name (Number or String or Boolean)
 
 
ComparisonOperator = "GT"
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
 
|
 
ok
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "GT"
 
 
Two AttributeValues specified
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name (Number or String or Boolean)
 
 
ComparisonOperator = "GT"
 
 
AttributeValue is SET of Number or String or Boolean
 
 
|
 
ok
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "BEGINS_WITH"
 
 
Valid comparison value (STRING, BOOLEAN)
 
 
|
 
ok
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One non-existent field name
 
 
ComparisonOperator = "BEGINS_WITH"
 
 
Valid comparison value (STRING, BOOLEAN)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "BEGINS_WITH"
 
 
Two AttributeValues specified
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "BEGINS_WITH"
 
 
AttributeValue is SET of Number or String or Boolean
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "BETWEEN"
 
 
Two valid comparison values
 
 
|
 
ok
 
 
|
 
<center>P</center>
 
 
|
 
<center>R</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One non-existent field name
 
 
ComparisonOperator = "BETWEEN"
 
 
Two valid comparison values
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "BETWEEN"
 
 
Only one AttributeValue specified
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = "BETWEEN"
 
 
AttributeValue is SET of Number or String or Boolean
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = ""
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = &lt;empty_value&gt;
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
One correct field name
 
 
ComparisonOperator = “something_else”
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center>P</center>
 
 
|
 
 
 
|-
 
|
 
<center>Q-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==Scan==
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Imp'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''General'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-1</center>
 
 
|
 
scan stops and returns results if processed data size exceeds 1 MB
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Reproduce: Scan result is empty
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Parallel scan topic - '''out of scope for now'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''TableName'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
scan with only required parameter (table name)
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
scan if name length is 3
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
scan if name length is 255
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
scan with name length &lt; 3
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
scan with name length is &gt; 255
 
 
|
 
error?
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
upper-lower case in <nowiki>t.name</nowiki>
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
non-existent table name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
diff. symbols in t. name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
scan request without required parameter - table name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''AttributesToGet'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Skip it: all attrs should be returned
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
include all params
 
 
|
 
?
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
empty list of attrs
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
the only attr in the list is non-key attr
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
the only attr in the list is attr that does not participate in a filter
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
try nonexistent attrs
 
 
|
 
should not be displayed in results?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Filter can find items, but selected attrs are not present in those items:
 
 
selected attrs are present in some other items
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Filter can find items, but selected attrs are not present in those items:
 
 
selected attrs are not present in any items
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
<nowiki>Repeat the same attr[s] in this list</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''[http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html ExclusiveStartKey''']
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Use LastEvaluatedKey from the previous scan. '''How to ensure that the scan really starts from this item?'''
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
What if assign some existing key but scan operation was not executed before? No difference I think.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Assign nonexistent value of key attr.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Assign non-key attributes and their values. Try attrs of SET type?
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Limit'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Verify just the Limit number of items was scanned and LastEvaluatedKey is present in response
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Set Limit value so that scan processes more than 1 Mb of data before Limit value exceeds. Ensure it stops due to 1 Mb but not continue till Limit items processed
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try empty, negative value, zero.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ReturnConsumedCapacity'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure response does not contain ConsumedCapacity (neither for table nor index(es)) if ReturnConsumedCapacity not present or equal to None in request
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure response contains Capacity for table and indexes if TOTAL in request
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure response contains Capacity for indexes only (not table) if INDEXES in request
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try empty, invalid values.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''ScanFilter'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure ScanFilter really filters?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure multiple conditions are treated as "AND" operations
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try nonexistent attribute name (let’s assume it will be added with some item later)
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try empty line instead of attribute name
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Assign empty line, None to ScanFilter
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(AttributeValueList)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Use single value for appropriate comparison
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Use 2-element list for BETWEEN and IN
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try to use 2+ element for IN
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try to use 2-element-list for operation like EQ
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try empty list
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try to skip this parameter at all
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try data type different from attribute data type. For example,
 
 
{"S":"6"} vs {"N":"6"}.
 
 
|
 
does-not-match expected.
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
About SETs: most of operators do not support SET types:
 
 
Try to insert SET value for operator that does not support SET
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
About SETs: most of operators do not support SET types:
 
 
Ensure appropriate operators really support SETs.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(ComparisonOperator)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
For every comparison operator, verify it correctly compares values of each type it supports (in most cases string, number, binary). ''Rewrite here tests enumerated above, for AttributeValueList.''
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Verify each comparison operator is supported and compares correctly.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try invalid value for comp. operator (like EQINVALID)
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Select'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure ALL_ATTRIBUTES return all attributes, especially if different items have different attributes.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure COUNT return just count, not items themselves.
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Ensure ALL_PROJECTED_ATTRIBUTES returns all attrs projected to the index. Should I request table or index?
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Set Select=SPECIFIC_ATTRIBUTES and enumerate attributes in AttributesToGet. Ensure it returns only the attributes listed in AttributesToGet (i.e. the same as without Select at all).
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Try to set Select=SPECIFIC_ATTRIBUTES if AttributesToGet was not set.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
How ALL_PROJECTED_ATTRIBUTES should work?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Set Select to empty line or other invalid value.
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Use AttributesToGet together with Select equal to ALL_ATTRIBUTES or COUNT. What about ALL_PROJECTED_ATTRIBUTES?
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Segment '''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
'''parallel scan is out of scope for now. Should be ignored by MagnetoDB?'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''TotalSegments'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
'''parallel scan is out of scope for now. Should be ignored by MagnetoDB?'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Response'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
ConsumedCapacity: is returned only if requested and corresponds to requested data
 
 
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
ConsumedCapacity: is empty if provisioned throughput is ignored now?
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Count: Ensure the value is correct
 
 
|
 
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Items: its length correspond to Count
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Items: should it be present if Select=COUNT?
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Items: ensure the items are correct
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
LastEvaluatedKey:
 
 
Ensure it’s present if limit was used and/or reached
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
LastEvaluatedKey:
 
 
Ensure this item is present in the current results and will not be present in the next results (if it passes filter, of course)
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
ScannedCount: Ensure the value is correct.
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Exceptions'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
Simulate ProvisionedThroughputExceededException
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
ProvisionedThroughputExceededException: unable to reproduce w/o ProvisionedThroughput
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
ResourceNotFoundException: request nonexistent table
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
ResourceNotFoundException:
 
 
request nonexistent index
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
ResourceNotFoundException:
 
 
request table in non Active state
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
==UpdateItem==
 
 
==UpdateTable==
 
 
==
 
 
=Indexing=
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Status'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''CreateTable'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(LocalSecondaryIndexes)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-1</center>
 
 
|
 
No LSIs specified for a table
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-2</center>
 
 
|
 
5 LSI specified for a table
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-3</center>
 
 
|
 
6 LSIs specified for a table
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(IndexName)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-10</center>
 
 
|
 
Some correct name specified
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-11</center>
 
 
|
 
Name is 3 symbols long
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-12</center>
 
 
|
 
Name is 255 symbols long
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-13</center>
 
 
|
 
Empty name
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-14</center>
 
 
|
 
Option not specified
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-15</center>
 
 
|
 
Name is 2 symbols long
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-16</center>
 
 
|
 
Name is 256 symbols long
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(KeySchema)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-20</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (just 1 HASH key)
 
 
- No projection
 
 
|
 
error (REGION key not specified)
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-21</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (just 1 REGION key)
 
 
- No projection
 
 
|
 
error (HASH key not specified)
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-22</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (neither HASH nor REGION keys specified)
 
 
- No projection
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-23</center>
 
 
|
 
Non-existent (in the table declaration) attribute specified as a HASH key
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-24</center>
 
 
|
 
Non-existant (in the table declaration) attribute specified as REGION key
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-25</center>
 
 
|
 
The same attribute specified as both HASH and REGION keys
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-26</center>
 
 
|
 
Option not specified
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-27</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- No projection
 
 
|
 
DescribeTable reports the same 1 LSI structure
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-28</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: 1 non-key attribute mentioned
 
 
|
 
DescribeTable reports the same 1 LSI structure
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-29</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: several non-key attributes mentioned
 
 
|
 
DescribeTable reports the same 1 LSI structure
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-30</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: one KEY (HASH) attribute mentioned
 
 
|
 
error
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-31</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: several KEY (HASH, REGION) and non-key attributes mentioned
 
 
|
 
DescribeTable reports the same 1 LSI structure
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-32</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: one KEY (REGION) attribute mentioned
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-33</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: several non-key attributes mentioned
 
 
|
 
DescribeTable reports the same 1 LSI structure
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-34</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: 20 non-key attributes mentioned
 
 
|
 
DescribeTable reports the same 1 LSI structure
 
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-35</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: 21 non-key attributes mentioned
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-36</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: 1 NON-EXISTENT non-key attribute mentioned
 
 
|
 
error (?)
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-37</center>
 
 
|
 
Create 1 LSI for a table:
 
 
- KeySchema (1 HASH key, 1 REGION key)
 
 
- Projection: several NON-EXISTENT non-key attributes mentioned
 
 
|
 
error (?)
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''(ProjectionType)'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-40</center>
 
 
|
 
Option not specified (omitted)
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-41</center>
 
 
|
 
<nowiki>= KEYS_ONLY</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-42</center>
 
 
|
 
<nowiki>= INCLUDE</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-43</center>
 
 
|
 
<nowiki>= ALL</nowiki>
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-44</center>
 
 
|
 
<nowiki>= &lt;</nowiki>empty value&gt;
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-45</center>
 
 
|
 
<nowiki>= ""</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-46</center>
 
 
|
 
<nowiki>= "Something else"</nowiki>
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Query'''
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-47</center>
 
 
|
 
No indexes specified (option "IndexName" omitted)
 
 
|
 
Result data are not ordered
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-48</center>
 
 
|
 
Existing index (LSI) specified
 
 
|
 
Result data are in the order described by the index
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-49</center>
 
 
|
 
More than one existing index (LSI) specified
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-50</center>
 
 
|
 
Non-existent index (LSI) specified
 
 
|
 
?
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-51</center>
 
 
|
 
Empty index name specified
 
 
|
 
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-52</center>
 
 
|
 
Specified index does not contain the attribute that is used in KeyConditions
 
 
|
 
?
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>I-53</center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|}
 
 
 
=Asynchronous Operations=
 
 
'''Preconditions:''' while the just created table is in CREATING status…
 
 
 
 
{| class="wikitable"
 
|-
 
|
 
<center>'''<nowiki>#</nowiki>'''</center>
 
 
|
 
<center>'''Description'''</center>
 
 
|
 
<center>'''Results'''</center>
 
 
|
 
<center>'''T'''</center>
 
 
|
 
<center>'''Status'''</center>
 
 
|
 
<center>'''Notes'''</center>
 
 
|-
 
|
 
<center>AsO-1</center>
 
 
|
 
Create table
 
 
|
 
While the table is being created, its status is “CREATING”
 
 
|
 
<center>P</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
'''Precondition:''' while the just created table is in CREATING status…
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>AsO-10</center>
 
 
|
 
Try reading data from this table
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>AsO-11</center>
 
 
|
 
Create table with the same name
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>AsO-12</center>
 
 
|
 
Delete the table
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>AsO-13</center>
 
 
|
 
Run DescribeTable for this table
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center>AsO-14</center>
 
 
|
 
Read/Update/Remove items from the table
 
 
|
 
error
 
 
|
 
<center>N</center>
 
 
|
 
<center></center>
 
 
|
 
 
 
|-
 
|
 
<center></center>
 
 
|
 
 
 
|
 
 
 
|
 
<center></center>
 
 
|
 
<center></center>
 
 
|
 
 
  
 
|}
 
|}

Revision as of 12:15, 4 April 2014

By features

#
Feature
Status
Notes
1

Async table creation

Test design for "Async table creation" functionality

Done

Implementing tests for "Async table creation"

In progress
2

Batch Write/Read API

Test design for batch processing

Done

Implementation tests for batch processing

In progress
3

Indexing

Test design for "Indexes" functionality

Done

Implementing tests for "Indexes" functionality

In progress
4

Big data import #1

POC based Tests design for "BigData import" functionality

Done

Implementation of tests for "BigData import"

In progress
5

Error messages

Design tests for clear error messages

Done

Implementation of tests for clear error messages

In progress
6

Other QA activities

Preparing QA environment for external usage

Done

Preparing workable set of scripts for external triggering and running

Done

Creating documentation on running tests by external users

Done

Create a wiki page for tracing coverage and status of QA activities

Done

Tests running, results analysis, working with defects

In progress

Test results documenting, keeping actual status and publicising

In progress


Complete with implementing Positive tests for BatchWrite, PutItem, Query statements

Done


(Complete with implementing Negative tests for all implemented statements)

In progress


Create TCs design (both Pos and Neg) for ListTables

Done


(Finalize Master Test Plan)

In progress





Automation

#
Test Type
Successful (Stable)
Pending

(In progress +

Not ready)
Stories Covered
Notes
1

Integration

(MagnetoDB API)

2

Performance/Load

3