Jump to: navigation, search

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

Line 2: Line 2:
  
 
=BatchGetItem=
 
=BatchGetItem=
 
=BatchWriteItem=
 
  
  
Line 48: Line 46:
 
|-
 
|-
 
|
 
|
<center>BWI-1</center>
+
<center>BGI-1</center>
  
 
|
 
|
Complete set of correct options
+
BatchGetItem contains all the correct mandatory parameters
  
 
|
 
|
Line 67: Line 65:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-2</center>
  
 
|
 
|
'''PutRequest'''
+
BatchGetItem contains all the correct parameters
  
 
|
 
|
Line 76: Line 74:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 86: Line 84:
 
|-
 
|-
 
|
 
|
<center>BWI-10</center>
+
<center></center>
  
 
|
 
|
Correct Item string AND
+
'''TableName'''
 
 
"N" : "string" value
 
  
 
|
 
|
Line 97: Line 93:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 107: Line 103:
 
|-
 
|-
 
|
 
|
<center>BWI-11</center>
+
<center>BGI-</center>
  
 
|
 
|
Non-existent Item string AND
+
The only table name (existing) specified
  
"N" : "string" value
+
|
  
|
 
Error + UnprocessedItems contains unprocessed PutRequest Items
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 128: Line 122:
 
|-
 
|-
 
|
 
|
<center>BWI-12</center>
+
<center>BGI-</center>
  
 
|
 
|
EMPTY Item string AND
+
Several existing table names specified
  
"N" : "string"
+
|
  
|
 
Error + UnprocessedItems contains unprocessed PutRequest Items
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 149: Line 141:
 
|-
 
|-
 
|
 
|
<center>BWI-13</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Item string and
+
3 symbols long
 
 
<nowiki>"NS" : ["string"] values</nowiki>
 
  
 
|
 
|
Line 160: Line 150:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 170: Line 160:
 
|-
 
|-
 
|
 
|
<center>BWI-14</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Item string and
+
255 symbols long
 
 
"B" : "string" value
 
  
 
|
 
|
Line 181: Line 169:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 191: Line 179:
 
|-
 
|-
 
|
 
|
<center>BWI-15</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Item string and
+
Less than 3 symbols long
 
 
<nowiki>"BS" : ["string"] values</nowiki>
 
  
 
|
 
|
Line 202: Line 188:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 212: Line 198:
 
|-
 
|-
 
|
 
|
<center>BWI-16</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Item string and
+
More than 255 symbols long
 
 
"S" : "string" value
 
  
 
|
 
|
Line 223: Line 207:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 233: Line 217:
 
|-
 
|-
 
|
 
|
<center>BWI-17</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Item string and
+
Non-existent name
  
"N" : EMPTY value
+
|
  
|
 
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 254: Line 236:
 
|-
 
|-
 
|
 
|
<center>BWI-18</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Item string and
+
Empty (like =)
  
"&lt;SOME_STRANGE_OR_EMPTY_VALUE&gt;" : "string" value
+
|
  
|
 
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 275: Line 255:
 
|-
 
|-
 
|
 
|
<center>BWI-19</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Item string and
+
<nowiki>= ""</nowiki>
  
"NS" : "non-existent_string" value
+
|
  
|
 
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 296: Line 274:
 
|-
 
|-
 
|
 
|
<center>BWI-20</center>
+
<center>BGI-</center>
  
 
|
 
|
 
+
Mixed case letters in the name
  
 
|
 
|
Line 305: Line 283:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 318: Line 296:
  
 
|
 
|
'''DeleteRequest'''
+
'''RequestItems'''
  
 
|
 
|
Line 334: Line 312:
 
|-
 
|-
 
|
 
|
<center>BWI-30</center>
+
<center></center>
  
 
|
 
|
Correct Key string and
+
'''(AttributesToGet)'''
 
 
"N" : "string" value
 
  
 
|
 
|
Line 355: Line 331:
 
|-
 
|-
 
|
 
|
<center>BWI-31</center>
+
<center>BGI-</center>
  
 
|
 
|
Non-existent Key string and
+
Option not specified (by default)
 
 
"N" : "string" value
 
  
 
|
 
|
Error + UnprocessedItems contains unprocessed DeleteRequest Items
+
All attrs are returned
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 376: Line 350:
 
|-
 
|-
 
|
 
|
<center>BWI-32</center>
+
<center>BGI-</center>
  
 
|
 
|
EMPTY Key string and
+
All existing attrs
  
"N" : "string" value
+
|
  
|
 
Error + UnprocessedItems contains unprocessed DeleteRequest Items
 
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 397: Line 369:
 
|-
 
|-
 
|
 
|
<center>BWI-33</center>
+
<center>BGI-</center>
  
 
|
 
|
correct Key string and
+
Some existing attrs
 
 
<nowiki>"NS" : ["string"] values</nowiki>
 
  
 
|
 
|
Line 408: Line 378:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 418: Line 388:
 
|-
 
|-
 
|
 
|
<center>BWI-34</center>
+
<center>BGI-</center>
  
 
|
 
|
correct Key string and
+
Only non-existing attributes
 
 
"B" : "string" value
 
  
 
|
 
|
Line 429: Line 397:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 439: Line 407:
 
|-
 
|-
 
|
 
|
<center>BWI-35</center>
+
<center>BGI-</center>
  
 
|
 
|
correct Key string and
+
No attrs specified (whereas the Option exists)
 
 
<nowiki>"BS" : ["string"] values</nowiki>
 
  
 
|
 
|
Line 450: Line 416:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 460: Line 426:
 
|-
 
|-
 
|
 
|
<center>BWI-36</center>
+
<center>BGI-</center>
  
 
|
 
|
correct Key string and
+
Some existing and some non-existent attrs specified
 
 
"S" : "string" value
 
  
 
|
 
|
Line 471: Line 435:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 481: Line 445:
 
|-
 
|-
 
|
 
|
<center>BWI-37</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct Key string and
+
Attrs list looks strange like "" or "//', 123, abc##, etc
 
 
<nowiki>"SS" : ["string"] values</nowiki>
 
  
 
|
 
|
Line 492: Line 454:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 505: Line 467:
  
 
|
 
|
'''CombinedRequest'''
+
'''(Keys)'''
  
 
|
 
|
Line 521: Line 483:
 
|-
 
|-
 
|
 
|
<center>BWI-40</center>
+
<center>BGI-</center>
  
 
|
 
|
Specify in one statement:
+
Single "B" key specified
 
 
correct Key string for
 
 
 
DeleteRequest "N" : "string" value AND
 
 
 
correct Item string for
 
 
 
PutRequest "N" : "string" value
 
  
 
|
 
|
Line 538: Line 492:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 548: Line 502:
 
|-
 
|-
 
|
 
|
<center>BWI-41</center>
+
<center>BGI-</center>
  
 
|
 
|
Specify in one statement:
+
"B" and "N" keys specified
  
correct Key string for
+
|
  
DeleteRequest "B" : "string" value AND
 
  
correct Key string for
+
|
 +
<center>P</center>
  
DeleteRequest "SS" : "string" values AND
+
|
 +
<center></center>
  
correct Item string for
+
|
  
PutRequest "NS" : "string" values AND
 
  
(!!!) INcorrect Item string for
+
|-
 +
|
 +
<center>BGI-</center>
  
PutRequest "S" : "string" value
+
|
 +
Single "SS" key specified
  
 
|
 
|
Line 573: Line 530:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 583: Line 540:
 
|-
 
|-
 
|
 
|
<center>BWI-42</center>
+
<center>BGI-</center>
  
 
|
 
|
Specify in one statement:
+
"SS" and "NS" keys specified
  
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>P</center>
 
 
|
 
<center></center>
 
  
 
|
 
|
Line 610: Line 559:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''RequestItems (TableName)'''
+
"B", "S", "SS" and "NS" keys specified
  
 
|
 
|
Line 619: Line 568:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 629: Line 578:
 
|-
 
|-
 
|
 
|
<center>BWI-50</center>
+
<center>BGI-</center>
  
 
|
 
|
correct table name and
+
Incorrect key name
  
correct PutRequest parameters for the Item
+
|
  
|
 
Line(s) added correctly
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 650: Line 597:
 
|-
 
|-
 
|
 
|
<center>BWI-51</center>
+
<center>BGI-</center>
  
 
|
 
|
Specify 25 correct table names and
+
Incorrect key type
  
correct PutRequest parameters for the Items
+
|
  
|
 
Line(s) added correctly into all 25 tables
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 671: Line 616:
 
|-
 
|-
 
|
 
|
<center>BWI-52</center>
+
<center>BGI-</center>
  
 
|
 
|
Specify 26 correct table names and
+
Key type omitted
  
correct PutRequest parameters for the Items
+
|
  
|
 
error/exception (?)
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 692: Line 635:
 
|-
 
|-
 
|
 
|
<center>BWI-53</center>
+
<center>BGI-</center>
  
 
|
 
|
correct table name and
+
Key name omitted
  
correct DeleteRequest parameters for the Key
+
|
  
|
 
Line(s) deleted correctly
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 713: Line 654:
 
|-
 
|-
 
|
 
|
<center>BWI-54</center>
+
<center>BGI-</center>
  
 
|
 
|
INcorrect table name
+
Empty key 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>N</center>
 
 
|
 
<center></center>
 
  
 
|
 
|
Line 740: Line 673:
 
|-
 
|-
 
|
 
|
<center>BWI-55</center>
+
<center>BGI-</center>
  
 
|
 
|
Correct table name and
+
Empty key type
  
correct PutRequest parameters for the Item
+
|
  
Make total request size more than 1 MB (how to?)
 
  
 
|
 
|
error
+
<center>N</center>
 
 
|
 
<center></center>
 
  
 
|
 
|
Line 763: Line 692:
 
|-
 
|-
 
|
 
|
<center>BWI-56</center>
+
<center></center>
  
 
|
 
|
correct table name and
+
'''(ConsistentRead)'''
  
correct PutRequest parameters for the Item
+
|
 
 
Any individual item in a batch exceeds 64 KB (how to?)
 
  
|
 
error
 
  
 
|
 
|
Line 786: Line 711:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''ReturnItemCollectionMetrics'''
+
By default (if not specified)
  
 
|
 
|
Line 795: Line 720:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 805: Line 730:
 
|-
 
|-
 
|
 
|
<center>BWI-60</center>
+
<center>BGI-</center>
  
 
|
 
|
is NONE (by default)
+
<nowiki>= TRUE</nowiki>
  
 
|
 
|
no statistics returned
+
 
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 824: Line 749:
 
|-
 
|-
 
|
 
|
<center>BWI-61</center>
+
<center>BGI-</center>
  
 
|
 
|
is SIZE
+
<nowiki>= FALSE</nowiki>
  
 
|
 
|
statistics about item collections, if any, that were modified during the operation are returned in the response
+
 
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 843: Line 768:
 
|-
 
|-
 
|
 
|
<center>BWI-62</center>
+
<center>BGI-</center>
  
 
|
 
|
is &lt;Something_else&gt;
+
<nowiki>= ""</nowiki>
  
 
|
 
|
error/exception
+
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 862: Line 787:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''ReturnConsumedCapacity'''
+
Just = symbol
  
 
|
 
|
Line 871: Line 796:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 881: Line 806:
 
|-
 
|-
 
|
 
|
<center>BWI-63</center>
+
<center>BGI-</center>
  
 
|
 
|
is NONE (by default)
+
<nowiki>= "</nowiki>Another_value"
  
 +
|
  
  
 
|
 
|
ConsumedCapacity is not included in the response
+
<center>N</center>
 
 
|
 
<center></center>
 
  
 
|
 
|
Line 902: Line 825:
 
|-
 
|-
 
|
 
|
<center>BWI-64</center>
+
<center></center>
  
 
|
 
|
is TOTAL
+
'''ReturnConsumedCapasity'''
  
 
|
 
|
the response includes ConsumedCapacity data for tables and indexes
+
 
  
 
|
 
|
Line 921: Line 844:
 
|-
 
|-
 
|
 
|
<center>BWI-65</center>
+
<center>BGI-</center>
  
 
|
 
|
is INDEXES
+
By default (if not specified)
  
 
|
 
|
the response includes ConsumedCapacity for indexes only
+
 
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 940: Line 863:
 
|-
 
|-
 
|
 
|
<center>BWI-66</center>
+
<center>BGI-</center>
  
 
|
 
|
is &lt;Something_else&gt; (and empty)
+
<nowiki>= "INDEXES"</nowiki>
  
 
|
 
|
error/exception
+
 
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 959: Line 882:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''Exceptions'''
+
<nowiki>= "TOTAL"</nowiki>
  
 
|
 
|
Line 968: Line 891:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 978: Line 901:
 
|-
 
|-
 
|
 
|
<center>BWI-70</center>
+
<center>BGI-</center>
  
 
|
 
|
Simulate InternalServerError
+
<nowiki>= "NONE"</nowiki>
  
 
|
 
|
Line 987: Line 910:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 997: Line 920:
 
|-
 
|-
 
|
 
|
<center>BWI-71</center>
+
<center>BGI-</center>
  
 
|
 
|
Simulate ItemCollectionSizeLimitExceededException
+
<nowiki>= ""</nowiki>
  
 
|
 
|
Line 1,006: Line 929:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 1,016: Line 939:
 
|-
 
|-
 
|
 
|
<center>BWI-72</center>
+
<center>BGI-</center>
  
 
|
 
|
Simulate ProvisionedThroughputExceededException
+
Just "="
  
 
|
 
|
Line 1,025: Line 948:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 1,035: Line 958:
 
|-
 
|-
 
|
 
|
<center>BWI-73</center>
+
<center>BGI-</center>
  
 
|
 
|
Simulate ResourceNotFoundException
+
<nowiki>= "Another_value"</nowiki>
  
 
|
 
|
Line 1,044: Line 967:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 1,054: Line 977:
 
|-
 
|-
 
|
 
|
<center>BWI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''Exceptions'''
  
 
|
 
|
Line 1,071: Line 994:
  
  
|}
 
 
 
=CreateTable=
 
 
 
 
{| class="wikitable"
 
 
|-
 
|-
 
|
 
|
<center>'''<nowiki>#</nowiki>'''</center>
+
<center>BGI-</center>
  
 
|
 
|
<center>'''Description'''</center>
+
InternalServerError
  
 
|
 
|
<center>'''Results'''</center>
+
 
  
 
|
 
|
<center>'''T'''</center>
+
<center>N</center>
  
 
|
 
|
<center>'''Imp'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Notes'''</center>
+
 
  
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''General'''
+
ProvisionedThroughputExceededException
  
 
|
 
|
Line 1,109: Line 1,024:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 1,119: Line 1,034:
 
|-
 
|-
 
|
 
|
<center>CreT-1</center>
+
<center>BGI-</center>
  
 
|
 
|
Create table without any optional attributes, only all mandatory
+
ResourceNotFoundException
  
 
|
 
|
Line 1,128: Line 1,043:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 1,138: Line 1,053:
 
|-
 
|-
 
|
 
|
<center>CreT-2</center>
+
<center></center>
  
 
|
 
|
Create a table specifying ALL (including mandatory) the correct parameters
+
'''Limitations'''
  
 
|
 
|
Line 1,147: Line 1,062:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 1,157: Line 1,072:
 
|-
 
|-
 
|
 
|
<center>CreT-3</center>
+
<center></center>
  
 
|
 
|
Try to create two tables with the same name in the same region
+
'''(Data volume)'''
  
 
|
 
|
ResourceInUseException expected.
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,176: Line 1,091:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
Try to create two tables with the same name in two different regions.
+
Specify BatchGet to retrieve less than 1MB of data
  
 
|
 
|
 
+
"UnprocessedKeys" contains no items
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 1,195: Line 1,110:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
Verify first status is CREATING, then ACTIVE
+
Specify BatchGet to retrieve exactly 1MB of data
  
 
|
 
|
 
+
"UnprocessedKeys" contains no items
  
 
|
 
|
Line 1,214: Line 1,129:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
What happens if read/write to/from table in CREATING state? Possible to reproduce?
+
Specify BatchGet to retrieve more than 1MB (and &lt; 2MB) of data
  
 
|
 
|
 
+
"UnprocessedKeys" contains items exceeding 1MB limit
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 1,233: Line 1,148:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
Create one table with sec. indexes and then try to create one more table while the first one is in CREATING state.
+
Specify BatchGet to retrieve more than 2MB of data
 
 
- Possible to reproduce?
 
 
 
- How much time the table should be in CREATING state?
 
 
 
- Can I manage this time anyhow?
 
  
 
|
 
|
 +
"UnprocessedKeys" contains items exceeding first 1MB limit AND
  
 +
(after the next Request, in the next Response) "UnprocessedKeys" contains items exceeding the 2MB limit
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 1,258: Line 1,169:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
Try to create table w/o some mandatory attribute: AttributeDefinitions, KeySchema, ProvisionedThroughput, TableName.
+
'''(Items number)'''
  
 
|
 
|
Line 1,267: Line 1,178:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,277: Line 1,188:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''AttributeDefinitions'''
+
Specify less than 100 items in the Request
  
 
|
 
|
Line 1,286: Line 1,197:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 1,296: Line 1,207:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''''Number of attributes'''''
+
Specify exactly 100 items in the Request
  
 
|
 
|
Line 1,305: Line 1,216:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 1,315: Line 1,226:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
create table with 1 attr
+
Specify more than 100 items in the Request
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 1,334: Line 1,245:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
What is upper limit? Try max and max+1
+
'''Response'''
 
 
"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?
 
  
 
|
 
|
Line 1,357: Line 1,264:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
Create a table with key and non-key (and non-index also) attributes. It should fail. Non-key attrs are unacceptable.
+
Contains "GlobalSecondaryIndexes" section if there is (are) such for the table
  
'''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>
  
 
|
 
|
Line 1,380: Line 1,283:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BGI-</center>
  
 
|
 
|
'''''AttrName'''''
+
Contains "LocalSecondaryIndexes" section if there is (are) such for the table
  
 
|
 
|
Line 1,389: Line 1,292:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 1,399: Line 1,302:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</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).
+
Contains both GSI and LSI sections if there are such for the table
  
 
|
 
|
Line 1,418: Line 1,321:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
Try lengh 255+1 for key and indexes attr.
+
Result contains:
 +
 
 +
* "ConsumedCapacity":
 +
** CapacityUnits
 +
** GSI
 +
** LSI
 +
** Table
 +
** TableName
 +
* "Responses"
 +
* "UnprocessedKeys"
  
 
|
 
|
Line 1,427: Line 1,339:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 1,437: Line 1,349:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BGI-</center>
  
 
|
 
|
Check size of non-key / non-index-projected attr names
+
 
  
 
|
 
|
Line 1,446: Line 1,358:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,454: Line 1,366:
  
  
 +
|}
 +
 +
 +
=BatchWriteItem=
 +
 +
 +
 +
{| class="wikitable"
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>'''<nowiki>#</nowiki>'''</center>
  
 
|
 
|
Try to send attr names without attr types.
+
<center>'''Description'''</center>
  
 
|
 
|
 
+
<center>'''Results'''</center>
  
 
|
 
|
<center>N</center>
+
<center>'''T'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Imp'''</center>
  
 
|
 
|
 
+
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></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).
+
'''General'''
  
 
|
 
|
Line 1,484: Line 1,404:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 1,494: Line 1,414:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-1</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?
+
Complete set of correct mandatory options
  
 
|
 
|
Line 1,503: Line 1,423:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 1,513: Line 1,433:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-2</center>
  
 
|
 
|
Try to create a table with attribute of some SET type. It should not be allowed.
+
Complete set of correct all options
  
 
|
 
|
Line 1,522: Line 1,442:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 1,535: Line 1,455:
  
 
|
 
|
'''KeySchema'''
+
'''PutRequest'''
  
 
|
 
|
Line 1,551: Line 1,471:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-10</center>
  
 
|
 
|
Create table with a key of HASH type.
+
Correct Item string AND
 +
 
 +
"N" : "string" value
  
 
|
 
|
Line 1,570: Line 1,492:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-11</center>
  
 
|
 
|
Create table with a key of HASH and RANGE type.
+
Non-existent Item string AND
 +
 
 +
"N" : "string" value
  
 
|
 
|
 
+
Error + UnprocessedItems contains unprocessed PutRequest Items
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 1,589: Line 1,513:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-12</center>
  
 
|
 
|
Try to enumerate key attrs in wrong order: RANGE and then HASH attrs in the KeySchema list
+
EMPTY Item string AND
 +
 
 +
"N" : "string"
  
 
|
 
|
 
+
Error + UnprocessedItems contains unprocessed PutRequest Items
  
 
|
 
|
Line 1,608: Line 1,534:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-13</center>
  
 
|
 
|
Try to create a table only with RANGE key
+
Correct Item string and
 +
 
 +
<nowiki>"NS" : ["string"] values</nowiki>
  
 
|
 
|
Line 1,617: Line 1,545:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,627: Line 1,555:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-14</center>
  
 
|
 
|
Try to leave the list empty
+
Correct Item string and
 +
 
 +
"B" : "string" value
  
 
|
 
|
Line 1,636: Line 1,566:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,646: Line 1,576:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-15</center>
  
 
|
 
|
Try to add more than one HASH and/or RANGE attr. In general, add more than 2 attrs to the list.
+
Correct Item string and
 +
 
 +
"<nowiki>BS" : ["string"] values</nowiki>
  
 
|
 
|
Line 1,655: Line 1,587:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,665: Line 1,597:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-16</center>
  
 
|
 
|
Try keytype different from HASH and RANGE.
+
Correct Item string and
 +
 
 +
"S" : "string" value
  
 
|
 
|
Line 1,674: Line 1,608:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,684: Line 1,618:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-17</center>
  
 
|
 
|
Try not to mention key attr in Definitions but only in KeySchema.
+
Correct Item string and
 +
 
 +
"N" : EMPTY value
  
 
|
 
|
 
+
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,703: Line 1,639:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-18</center>
  
 
|
 
|
Try to mention attr names not defined in AttrDefinitions.
+
Correct Item string and
 +
 
 +
"&lt;SOME_STRANGE_OR_EMPTY_VALUE&gt;" : "string" value
  
 
|
 
|
 
+
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,722: Line 1,660:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BWI-19</center>
  
 
|
 
|
'''ProvisionedThroughput
+
Correct Item string and
  
'''''(for now, MagnetoDB ignores these values.)''
+
"NS" : "non-existent_string" value
  
 
|
 
|
 
+
ValidationException + UnprocessedItems contains unprocessed PutRequest Items
  
 
|
 
|
Line 1,743: Line 1,681:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-20</center>
  
 
|
 
|
Set positive values.
+
 
  
 
|
 
|
Line 1,752: Line 1,690:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 1,762: Line 1,700:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
Try to mention not all mandatory attrs
+
'''DeleteRequest'''
  
 
|
 
|
Line 1,771: Line 1,709:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,781: Line 1,719:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-30</center>
  
 
|
 
|
Try to pass non-number, negative number
+
Correct Key string and
 +
 
 +
"N" : "string" value
  
 
|
 
|
Line 1,790: Line 1,730:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,800: Line 1,740:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BWI-31</center>
  
 
|
 
|
'''TableName'''
+
Non-existent Key string and
 +
 
 +
"N" : "string" value
  
 
|
 
|
 
+
Error + UnprocessedItems contains unprocessed DeleteRequest Items
  
 
|
 
|
Line 1,819: Line 1,761:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-32</center>
  
 
|
 
|
Name length is 3
+
EMPTY Key string and
 +
 
 +
"N" : "string" value
  
 
|
 
|
 
+
Error + UnprocessedItems contains unprocessed DeleteRequest Items
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 1,838: Line 1,782:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-33</center>
  
 
|
 
|
Name length is 255
+
correct Key string and
 +
 
 +
<nowiki>"NS" : ["string"] values</nowiki>
  
 
|
 
|
Line 1,847: Line 1,793:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 1,857: Line 1,803:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-34</center>
  
 
|
 
|
Name length &lt; 3
+
correct Key string and
 +
 
 +
"B" : "string" value
  
 
|
 
|
Line 1,866: Line 1,814:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,876: Line 1,824:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-35</center>
  
 
|
 
|
Name length &gt; 255
+
correct Key string and
 +
 
 +
<nowiki>"BS" : ["string"] values</nowiki>
  
 
|
 
|
Line 1,885: Line 1,835:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,895: Line 1,845:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-36</center>
  
 
|
 
|
What are the limitations regarding lower and upper case, hyphen and other symbols? Do they correspond to DynamoDB rules?
+
correct Key string and
  
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.”
+
"S" : "string" value
  
 
|
 
|
Line 1,916: Line 1,866:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-37</center>
  
 
|
 
|
Provide an empty table name.
+
Correct Key string and
 +
 
 +
<nowiki>"SS" : ["string"] values</nowiki>
  
 
|
 
|
exception ?
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,938: Line 1,890:
  
 
|
 
|
'''LocalSecondaryIndexes'''
+
'''CombinedRequest'''
  
 
|
 
|
Line 1,954: Line 1,906:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-40</center>
  
 
|
 
|
Create index without some of mandatory attributes.
+
Specify in one statement:
 +
 
 +
correct Key string for
 +
 
 +
DeleteRequest "N" : "string" value AND
 +
 
 +
correct Item string for
 +
 
 +
PutRequest "N" : "string" value
  
 
|
 
|
Line 1,963: Line 1,923:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 1,973: Line 1,933:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BWI-41</center>
  
 
|
 
|
'''''Number of indexes'''''
+
Specify in one statement:
  
|
+
correct Key string for
  
 +
DeleteRequest "B" : "string" value AND
  
|
+
correct Key string for
<center></center>
 
  
|
+
DeleteRequest "SS" : "string" values AND
<center></center>
 
  
|
+
correct Item string for
  
 +
PutRequest "NS" : "string" values AND
  
|-
+
(!!!) INcorrect Item string for
|
 
<center>CreT-</center>
 
  
|
+
PutRequest "S" : "string" value
Create 1 index for a table
 
  
 
|
 
|
Line 2,001: Line 1,958:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 2,011: Line 1,968:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-42</center>
  
 
|
 
|
Create 5 indexes for the table
+
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>P</center>
+
<center></center>
  
 
|
 
|
Line 2,030: Line 1,995:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
Create 6 indexes for the table
+
'''RequestItems (TableName)'''
  
 
|
 
|
Line 2,039: Line 2,004:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 2,049: Line 2,014:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-50</center>
  
 
|
 
|
Set LSI attribute as an empty list
+
correct table name and
 +
 
 +
correct PutRequest parameters for the Item
  
 
|
 
|
 
+
Line(s) added correctly
  
 
|
 
|
Line 2,068: Line 2,035:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-51</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?
+
Specify 25 correct table names and
 +
 
 +
correct PutRequest parameters for the Items
  
 
|
 
|
 
+
Line(s) added correctly into all 25 tables
  
 
|
 
|
Line 2,087: Line 2,056:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BWI-52</center>
  
 
|
 
|
'''''IndexName'''''
+
Specify 26 correct table names and
 +
 
 +
correct PutRequest parameters for the Items
  
 
|
 
|
 
+
error/exception (?)
  
 
|
 
|
Line 2,106: Line 2,077:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-53</center>
  
 
|
 
|
Create an index having 3 characters long name
+
correct table name and
 +
 
 +
correct DeleteRequest parameters for the Key
  
 
|
 
|
 
+
Line(s) deleted correctly
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 2,125: Line 2,098:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-54</center>
  
 
|
 
|
Create an index having 255 characters long name
+
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>P</center>
+
<center></center>
  
 
|
 
|
Line 2,144: Line 2,125:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-55</center>
  
 
|
 
|
Create an index having 2 characters long name
+
Correct table name and
 +
 
 +
correct PutRequest parameters for the Item
 +
 
 +
Make total request size more than 1 MB (how to?)
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 2,163: Line 2,148:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-56</center>
  
 
|
 
|
Create an index having 256 characters long name
+
correct table name and
 +
 
 +
correct PutRequest parameters for the Item
 +
 
 +
Any individual item in a batch exceeds 64 KB (how to?)
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 2,182: Line 2,171:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
TO BE CLARIFIED: Is it case-sensitive? non-letters?
+
'''ReturnItemCollectionMetrics'''
  
 
|
 
|
Line 2,201: Line 2,190:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-60</center>
  
 
|
 
|
Create 2 tables with similar index names.
+
is NONE (by default)
  
 
|
 
|
successful
+
no statistics returned
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 2,220: Line 2,209:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-61</center>
  
 
|
 
|
Try to create 2 indexes with the same name in one table
+
is SIZE
  
 
|
 
|
error
+
statistics about item collections, if any, that were modified during the operation are returned in the response
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 2,239: Line 2,228:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BWI-62</center>
  
 
|
 
|
'''KeySchema'''
+
is &lt;Something_else&gt;
  
 
|
 
|
 
+
error/exception
  
 
|
 
|
Line 2,258: Line 2,247:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
Create LSI with Hash different from table hash key (table should have H+R key).
+
'''ReturnConsumedCapacity'''
  
 
|
 
|
Line 2,277: Line 2,266:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-63</center>
  
 
|
 
|
Create LSI for table with HASH w/o RANGE. Should fail. But will work for global indexes.
+
is NONE (by default)
 +
 
 +
 
  
 
|
 
|
 
+
ConsumedCapacity is not included in the response
  
 
|
 
|
Line 2,296: Line 2,287:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-64</center>
  
 
|
 
|
Create similar indexes with different names (the same keys, etc)
+
is TOTAL
  
 
|
 
|
 
+
the response includes ConsumedCapacity data for tables and indexes
  
 
|
 
|
Line 2,315: Line 2,306:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-65</center>
  
 
|
 
|
create an index just with HASH key, w/o RANGE
+
is INDEXES
  
 
|
 
|
 
+
the response includes ConsumedCapacity for indexes only
  
 
|
 
|
Line 2,334: Line 2,325:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-66</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.”
+
is &lt;Something_else&gt; (and empty)
  
 
|
 
|
 
+
error/exception
  
 
|
 
|
Line 2,353: Line 2,344:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
'''''Test for PutItem:''' Ensure range key of LSI is not a mandatory attribute.''
+
'''Exceptions'''
  
 
|
 
|
Line 2,372: Line 2,363:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>BWI-70</center>
  
 
|
 
|
'''Projection'''
+
Simulate InternalServerError
  
 
|
 
|
Line 2,391: Line 2,382:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-71</center>
  
 
|
 
|
Check usage of all projection types: KEYS_ONLY, INCLUDE, ALL. Query tests verify that it works as expected.
+
Simulate ItemCollectionSizeLimitExceededException
  
 
|
 
|
Line 2,400: Line 2,391:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 2,410: Line 2,401:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-72</center>
  
 
|
 
|
Use NonKeyAttributes but skip ProjectionType
+
Simulate ProvisionedThroughputExceededException
  
 
|
 
|
Line 2,419: Line 2,410:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 2,429: Line 2,420:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-73</center>
  
 
|
 
|
Use NonKeyAttributes list with one attribute in it
+
Simulate ResourceNotFoundException
  
 
|
 
|
Line 2,438: Line 2,429:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 2,448: Line 2,439:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>BWI-</center>
  
 
|
 
|
Use key attrs in the NonKeyAttributes list
+
 
  
 
|
 
|
Line 2,457: Line 2,448:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 2,465: Line 2,456:
  
  
|-
+
|}
|
+
 
<center>CreT-</center>
 
  
|
+
=CreateTable=
Make NonKeyAttributes list empty
 
  
  
  
 +
{| class="wikitable"
 +
|-
 
|
 
|
 +
<center>'''<nowiki>#</nowiki>'''</center>
  
 +
|
 +
<center>'''Description'''</center>
  
 
|
 
|
<center>N</center>
+
<center>'''Results'''</center>
  
 
|
 
|
<center></center>
+
<center>'''T'''</center>
  
 
|
 
|
 +
<center>'''Imp'''</center>
  
 +
|
 +
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
Insert some non-key attrs in NonKeyAttributes list when Pr.Type is KEYS_ONLY. Then - similar but with ALL case.
+
'''General'''
  
 
|
 
|
Line 2,497: Line 2,494:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 2,507: Line 2,504:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>CreT-1</center>
  
 
|
 
|
Create a table with 20 non-key attrs in one LSI.
+
Create table without any optional attributes, only all mandatory
  
 
|
 
|
Line 2,526: Line 2,523:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>CreT-2</center>
  
 
|
 
|
Create a table with 21 non-key attrs in one LSI.
+
Create a table specifying ALL (including mandatory) the correct parameters
  
 
|
 
|
Line 2,535: Line 2,532:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 2,545: Line 2,542:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center>CreT-3</center>
  
 
|
 
|
Create a table with 20 non-key attrs in multiple LSIs.
+
Try to create two tables with the same name in the same region
  
 
|
 
|
 
+
ResourceInUseException expected.
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 2,567: Line 2,564:
  
 
|
 
|
Create a table with 21 non-key attrs in diff. LSIs, without repetitions of attr names.
+
Try to create two tables with the same name in two different regions.
  
 
|
 
|
Line 2,586: Line 2,583:
  
 
|
 
|
Create a table with 21 non-key attrs in diff. LSIs, with repetitions of attr names between LSI’s.
+
Verify first status is CREATING, then ACTIVE
  
 
|
 
|
Line 2,592: Line 2,589:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 2,602: Line 2,599:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''GlobalSecondaryIndexes'''
+
What happens if read/write to/from table in CREATING state? Possible to reproduce?
  
 
|
 
|
Line 2,611: Line 2,608:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 2,621: Line 2,618:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
(out of scope now)
+
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?
  
 
|
 
|
Line 2,640: Line 2,643:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''Response'''
+
Try to create table w/o some mandatory attribute: AttributeDefinitions, KeySchema, ProvisionedThroughput, TableName.
  
 
|
 
|
Line 2,649: Line 2,652:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 2,659: Line 2,662:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
Most of key-values in TableDescription are equal to data from Request
+
'''AttributeDefinitions'''
  
 
|
 
|
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></center>
  
 
|
 
|
Line 2,686: Line 2,681:
 
|-
 
|-
 
|
 
|
<center>CreT-</center>
+
<center></center>
  
 
|
 
|
Attrs not present in Request but should be present in Response
+
'''''Number of attributes'''''
  
 
|
 
|
* 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></center>
  
 
|
 
|
Line 2,711: Line 2,703:
  
 
|
 
|
If LSI are not created, should this attr be present in response as empty list?
+
create table with 1 attr
  
 
|
 
|
Line 2,717: Line 2,709:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 2,730: Line 2,722:
  
 
|
 
|
Think how to check TableSizeBytes value.
+
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?
  
 
|
 
|
Line 2,749: Line 2,745:
  
 
|
 
|
CreationDateTime verification: Find a way to get current time from the target system
+
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 ?
  
 
|
 
|
Line 2,768: Line 2,768:
  
 
|
 
|
'''Exceptions'''
+
'''''AttrName'''''
  
 
|
 
|
Line 2,787: Line 2,787:
  
 
|
 
|
LimitExceededException:
+
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).
 
 
Is related to in-progress states. Not possible to reproduce for now.
 
  
 
|
 
|
Line 2,795: Line 2,793:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 2,808: Line 2,806:
  
 
|
 
|
ResourceInUseException:
+
Try lengh 255+1 for key and indexes attr.
 
 
Recreate existing table ''(the case was mentioned above)''
 
  
 
|
 
|
Line 2,829: Line 2,825:
  
 
|
 
|
InternalServerError:
+
Check size of non-key / non-index-projected attr names
 
 
<nowiki>When this error [500] is expected and when some other error should appear?</nowiki>
 
  
 
|
 
|
Line 2,847: Line 2,841:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''Additional'''
+
Try to send attr names without attr types.
  
 
|
 
|
Line 2,856: Line 2,850:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 2,869: Line 2,863:
  
 
|
 
|
Create more than 255 tables
+
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).
  
 
|
 
|
Line 2,875: Line 2,869:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 2,888: Line 2,882:
  
 
|
 
|
 
+
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?
  
 
|
 
|
Line 2,902: Line 2,896:
  
  
|}
 
 
 
=DeleteItem=
 
 
=DeleteTable=
 
 
 
 
{| class="wikitable"
 
 
|-
 
|-
 
|
 
|
<center>'''<nowiki>#</nowiki>'''</center>
+
<center>CreT-</center>
  
 
|
 
|
<center>'''Description'''</center>
+
Try to create a table with attribute of some SET type. It should not be allowed.
  
 
|
 
|
<center>'''Results'''</center>
+
 
  
 
|
 
|
<center>'''T'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Imp'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Notes'''</center>
+
 
  
 
|-
 
|-
Line 2,936: Line 2,920:
  
 
|
 
|
'''General'''
+
'''KeySchema'''
  
 
|
 
|
Line 2,952: Line 2,936:
 
|-
 
|-
 
|
 
|
<center>DelT-1</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete an existing table. Check if all the Response’s fields (see Table Description object) are equal to the appropriate table parameters
+
Create table with a key of HASH type.
  
 
|
 
|
Line 2,971: Line 2,955:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete a non-existent table
+
Create table with a key of HASH and RANGE type.
  
 
|
 
|
''ResourceNotFoundException''
+
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 2,990: Line 2,974:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete a table specifying “” as a name
+
Try to enumerate key attrs in wrong order: RANGE and then HASH attrs in the KeySchema list
  
 
|
 
|
Line 3,009: Line 2,993:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete a table specifying ''NULL'' as a name
+
Try to create a table only with RANGE key
  
 
|
 
|
Line 3,028: Line 3,012:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete a table w/o specifying any parameters
+
Try to leave the list empty
  
 
|
 
|
Line 3,047: Line 3,031:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete a table having a name that contains only 2 or 1 symbol
+
Try to add more than one HASH and/or RANGE attr. In general, add more than 2 attrs to the list.
  
 
|
 
|
Line 3,066: Line 3,050:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete a table specifying a name that contains more than 255 symbols
+
Try keytype different from HASH and RANGE.
  
 
|
 
|
''ResourceNotFoundException ?''
+
 
  
 
|
 
|
Line 3,085: Line 3,069:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Delete an existing table and, while the status is ''DELETING'', run DeleteTable operation for the same table once again
+
Try not to mention key attr in Definitions but only in KeySchema.
  
 
|
 
|
Line 3,094: Line 3,078:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 3,104: Line 3,088:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''Results Verification'''
+
Try to mention attr names not defined in AttrDefinitions.
  
 
|
 
|
Line 3,113: Line 3,097:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 3,123: Line 3,107:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center></center>
  
 
|
 
|
 +
'''ProvisionedThroughput
  
 +
'''''(for now, MagnetoDB ignores these values.)''
  
 
|
 
|
Line 3,142: Line 3,128:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''Exceptions'''
+
Set positive values.
  
 
|
 
|
Line 3,151: Line 3,137:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 3,161: Line 3,147:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Simulate ''InternalServerError'' exception. Ideas?
+
Try to mention not all mandatory attrs
  
 
|
 
|
Line 3,180: Line 3,166:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Simulate ''LimitExceededException'' exception. Ideas?
+
Try to pass non-number, negative number
 
 
Delete more than 10 tables in the same time
 
  
 
|
 
|
Line 3,201: Line 3,185:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center></center>
  
 
|
 
|
Simulate ''ResourceInUseException'' exception. Ideas?
+
'''TableName'''
 
 
Delete a table while it is in use by some other operation
 
  
 
|
 
|
Line 3,212: Line 3,194:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,222: Line 3,204:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Simulate ''ResourceNotFoundException'' exception. Other ideas?
+
Name length is 3
  
 
|
 
|
Line 3,231: Line 3,213:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 3,241: Line 3,223:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
 
+
Name length is 255
  
 
|
 
|
Line 3,250: Line 3,232:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 3,260: Line 3,242:
 
|-
 
|-
 
|
 
|
<center>DelT-</center>
+
<center>CreT-</center>
  
 
|
 
|
 
+
Name length &lt; 3
  
 
|
 
|
Line 3,269: Line 3,251:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 3,277: Line 3,259:
  
  
|}
 
 
 
 
 
=DescribeTable=
 
 
 
 
{| class="wikitable"
 
 
|-
 
|-
 
|
 
|
<center>'''<nowiki>#</nowiki>'''</center>
+
<center>CreT-</center>
  
 
|
 
|
<center>'''Description'''</center>
+
Name length &gt; 255
  
 
|
 
|
<center>'''Results'''</center>
+
 
  
 
|
 
|
<center>'''T'''</center>
+
<center>N</center>
  
 
|
 
|
<center>'''Imp'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Notes'''</center>
+
 
  
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''General'''
+
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.”
  
 
|
 
|
Line 3,327: Line 3,301:
 
|-
 
|-
 
|
 
|
<center>DesT-1</center>
+
<center>CreT-</center>
  
 
|
 
|
Run ''DescribeTable'' against the existing table. Check that all the required params are described correctly (see “Response Syntax” for DescribeTable statement)
+
Provide an empty table name.
  
 
|
 
|
 
+
exception ?
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 3,346: Line 3,320:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center></center>
  
 
|
 
|
Run ''DescribeTable'' against the non-existent table (''ResourceNotFoundException'' exception)
+
'''LocalSecondaryIndexes'''
  
 
|
 
|
Line 3,355: Line 3,329:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,365: Line 3,339:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Run ''DescribeTable'' specifying “” as a table name
+
Create index without some of mandatory attributes.
  
 
|
 
|
Line 3,384: Line 3,358:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center></center>
  
 
|
 
|
Run ''DescribeTable'' specifying ''NULL'' as a name
+
'''''Number of indexes'''''
  
 
|
 
|
Line 3,393: Line 3,367:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,403: Line 3,377:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Run ''DescribeTable'' w/o specifying any parameters
+
Create 1 index for a table
  
 
|
 
|
Line 3,412: Line 3,386:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 3,422: Line 3,396:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Run ''DescribeTable'' specifying a name that contains only 2 or 1 symbol (causes an exception?)
+
Create 5 indexes for the table
  
 
|
 
|
Line 3,431: Line 3,405:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 3,441: Line 3,415:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Run ''DescribeTable'' specifying a name that contains more than 255 symbols
+
Create 6 indexes for the table
  
 
|
 
|
Line 3,460: Line 3,434:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center>CreT-</center>
  
 
|
 
|
Simulate ''InternalServerError'' exception
+
Set LSI attribute as an empty list
  
 
|
 
|
Line 3,469: Line 3,443:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,479: Line 3,453:
 
|-
 
|-
 
|
 
|
<center>DesT-</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?
  
 
|
 
|
Line 3,498: Line 3,472:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center></center>
  
 
|
 
|
 
+
'''''IndexName'''''
  
 
|
 
|
Line 3,517: Line 3,491:
 
|-
 
|-
 
|
 
|
<center>DesT-</center>
+
<center>CreT-</center>
  
 
|
 
|
 
+
Create an index having 3 characters long name
  
 
|
 
|
Line 3,526: Line 3,500:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 3,534: Line 3,508:
  
  
|}
 
 
 
=GetItem=
 
 
 
 
{| class="wikitable"
 
 
|-
 
|-
 
|
 
|
<center>'''<nowiki>#</nowiki>'''</center>
+
<center>CreT-</center>
  
 
|
 
|
<center>'''Description'''</center>
+
Create an index having 255 characters long name
  
 
|
 
|
<center>'''Results'''</center>
+
 
  
 
|
 
|
<center>'''T'''</center>
+
<center>P</center>
  
 
|
 
|
<center>'''Imp'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Notes'''</center>
+
 
  
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''General'''
+
Create an index having 2 characters long name
  
 
|
 
|
Line 3,572: Line 3,538:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 3,582: Line 3,548:
 
|-
 
|-
 
|
 
|
<center>GI-1</center>
+
<center>CreT-</center>
  
 
|
 
|
Get an item specifying correct mandatory attributes
+
Create an index having 256 characters long name
  
 
|
 
|
Line 3,591: Line 3,557:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 3,601: Line 3,567:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Get an item specifying all the correct mandatory and optional ttributes
+
TO BE CLARIFIED: Is it case-sensitive? non-letters?
  
 
|
 
|
Line 3,610: Line 3,576:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 3,620: Line 3,586:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''TableName'''
+
Create 2 tables with similar index names.
  
 
|
 
|
 
+
successful
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 3,639: Line 3,605:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Valid (existing) table name
+
Try to create 2 indexes with the same name in one table
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 3,658: Line 3,624:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
Existing table name of 3 symbols
+
'''KeySchema'''
  
 
|
 
|
Line 3,667: Line 3,633:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 3,677: Line 3,643:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Existing table name of 255 symbols
+
Create LSI with Hash different from table hash key (table should have H+R key).
  
 
|
 
|
Line 3,686: Line 3,652:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 3,696: Line 3,662:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
From non-existent table name
+
Create LSI for table with HASH w/o RANGE. Should fail. But will work for global indexes.
  
 
|
 
|
Line 3,705: Line 3,671:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,715: Line 3,681:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Empty name (“”)
+
Create similar indexes with different names (the same keys, etc)
  
 
|
 
|
Line 3,724: Line 3,690:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,734: Line 3,700:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Less than 3 symbols long
+
create an index just with HASH key, w/o RANGE
  
 
|
 
|
Line 3,743: Line 3,709:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,753: Line 3,719:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
More than 255 symbols long
+
‘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.”
  
 
|
 
|
Line 3,762: Line 3,728:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 3,772: Line 3,738:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''AttributesToGet:'''
+
'''''Test for PutItem:''' Ensure range key of LSI is not a mandatory attribute.''
  
 
|
 
|
Line 3,791: Line 3,757:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
Specified, correct items in the list
+
'''Projection'''
  
 
|
 
|
Line 3,800: Line 3,766:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 3,810: Line 3,776:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Section not specified
+
Check usage of all projection types: KEYS_ONLY, INCLUDE, ALL. Query tests verify that it works as expected.
  
 
|
 
|
Line 3,822: Line 3,788:
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 3,829: Line 3,795:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
“AttributesToGet” term not specified, but there is a list of items in the section
+
Use NonKeyAttributes but skip ProjectionType
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
Line 3,848: Line 3,814:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Section AttributesToGet is specified, but there is just an empty list (no items)
+
Use NonKeyAttributes list with one attribute in it
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 3,867: Line 3,833:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Specified more attributes than exist in the table
+
Use key attrs in the NonKeyAttributes list
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
Line 3,886: Line 3,852:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Incorrect attributes: Wrong names
+
Make NonKeyAttributes list empty
 +
 
 +
 
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 3,905: Line 3,873:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Incorrect attributes: Empty values like ""
+
Insert some non-key attrs in NonKeyAttributes list when Pr.Type is KEYS_ONLY. Then - similar but with ALL case.
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
Line 3,924: Line 3,892:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''Key'''
+
Create a table with 20 non-key attrs in one LSI.
  
 
|
 
|
Line 3,933: Line 3,901:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 3,943: Line 3,911:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
One Key specified: “B”
+
Create a table with 21 non-key attrs in one LSI.
  
 
|
 
|
Line 3,952: Line 3,920:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 3,962: Line 3,930:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
One Key specified: “N”
+
Create a table with 20 non-key attrs in multiple LSIs.
  
 
|
 
|
Line 3,981: Line 3,949:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
One Key specified: “S”
+
Create a table with 21 non-key attrs in diff. LSIs, without repetitions of attr names.
  
 
|
 
|
Line 3,990: Line 3,958:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 4,000: Line 3,968:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
One key: “BS”
+
Create a table with 21 non-key attrs in diff. LSIs, with repetitions of attr names between LSI’s.
  
 
|
 
|
Line 4,009: Line 3,977:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 4,019: Line 3,987:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
One key: “NS”
+
'''GlobalSecondaryIndexes'''
  
 
|
 
|
Line 4,038: Line 4,006:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
One key: “SS”
+
(out of scope now)
  
 
|
 
|
Line 4,057: Line 4,025:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
Combination of "B", "N", "S" types
+
'''Response'''
  
 
|
 
|
Line 4,076: Line 4,044:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Combination of "B", "N", "S", "BS", "NS", "SS" types
+
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></center>
+
<center>P</center>
  
 
|
 
|
Line 4,095: Line 4,071:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Combination of “B”, “B”, "N", "N", “S”, “S”,  “BS”, “BS”, "NS", "NS", “SS”, “SS” types
+
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></center>
+
<center>P</center>
  
 
|
 
|
Line 4,114: Line 4,093:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
The whole section “Key” not specified
+
If LSI are not created, should this attr be present in response as empty list?
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 4,133: Line 4,112:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
Section “Key” specified, but the section content is empty
+
Think how to check TableSizeBytes value.
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 4,152: Line 4,131:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")
+
CreationDateTime verification: Find a way to get current time from the target system
  
 
|
 
|
Exception/error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 4,171: Line 4,150:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
In section “Key” there is a key of type “N” but a non-existent value specified for it
+
'''Exceptions'''
  
 
|
 
|
No items returned in Response
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 4,190: Line 4,169:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''ConsistentRead'''
+
LimitExceededException:
 +
 
 +
Is related to in-progress states. Not possible to reproduce for now.
  
 
|
 
|
Line 4,199: Line 4,180:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 4,209: Line 4,190:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
<nowiki>= True</nowiki>
+
ResourceInUseException:
 +
 
 +
Recreate existing table ''(the case was mentioned above)''
  
 
|
 
|
Line 4,218: Line 4,201:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 4,228: Line 4,211:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
<nowiki>= False</nowiki>
+
InternalServerError:
 +
 
 +
<nowiki>When this error [500] is expected and when some other error should appear?</nowiki>
  
 
|
 
|
Line 4,237: Line 4,222:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 4,247: Line 4,232:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
Not specified
+
'''Additional'''
  
 
|
 
|
Line 4,256: Line 4,241:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 4,266: Line 4,251:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>CreT-</center>
  
 
|
 
|
<nowiki>= &lt;Something_else&gt;</nowiki>
+
Create more than 255 tables
  
 
|
 
|
Line 4,285: Line 4,270:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>CreT-</center>
  
 
|
 
|
'''ReturnConsumedCapacity'''
+
 
  
 
|
 
|
Line 4,302: Line 4,287:
  
  
|-
+
|}
|
+
 
<center>GI-</center>
+
 
 +
=DeleteItem=
  
|
+
=DeleteTable=
<nowiki>= INDEXES</nowiki>
 
  
|
 
  
  
 +
{| class="wikitable"
 +
|-
 
|
 
|
<center>P</center>
+
<center>'''<nowiki>#</nowiki>'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Description'''</center>
  
 
|
 
|
 +
<center>'''Results'''</center>
  
 +
|
 +
<center>'''T'''</center>
 +
 +
|
 +
<center>'''Imp'''</center>
 +
 +
|
 +
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
<nowiki>= TOTAL</nowiki>
+
'''General'''
  
 
|
 
|
Line 4,332: Line 4,327:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 4,342: Line 4,337:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>DelT-1</center>
  
 
|
 
|
<nowiki>= NONE</nowiki>
+
Delete an existing table. Check if all the Response’s fields (see Table Description object) are equal to the appropriate table parameters
  
 
|
 
|
Line 4,361: Line 4,356:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>DelT-</center>
  
 
|
 
|
<nowiki>= &lt;Something_else&gt;</nowiki>
+
Delete a non-existent table
  
 
|
 
|
 
+
''ResourceNotFoundException''
  
 
|
 
|
Line 4,380: Line 4,375:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>DelT-</center>
  
 
|
 
|
'''Exceptions'''
+
Delete a table specifying “” as a name
  
 
|
 
|
Line 4,389: Line 4,384:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 4,399: Line 4,394:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>DelT-</center>
  
 
|
 
|
Simulate ConditionalCheckFailedException
+
Delete a table specifying ''NULL'' as a name
  
 
|
 
|
Line 4,418: Line 4,413:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>DelT-</center>
  
 
|
 
|
Simulate InternalServerError
+
Delete a table w/o specifying any parameters
  
 
|
 
|
Line 4,437: Line 4,432:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>DelT-</center>
  
 
|
 
|
Simulate ItemCollectionSizeLimitExceededException
+
Delete a table having a name that contains only 2 or 1 symbol
  
 
|
 
|
Line 4,456: Line 4,451:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>DelT-</center>
  
 
|
 
|
Simulate ProvisionedThroughputExceededException
+
Delete a table specifying a name that contains more than 255 symbols
  
 
|
 
|
 
+
''ResourceNotFoundException ?''
  
 
|
 
|
Line 4,475: Line 4,470:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center>DelT-</center>
  
 
|
 
|
Simulate ResourceNotFoundException
+
Delete an existing table and, while the status is ''DELETING'', run DeleteTable operation for the same table once again
  
 
|
 
|
Line 4,484: Line 4,479:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 4,494: Line 4,489:
 
|-
 
|-
 
|
 
|
<center>GI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''Results Verification'''
  
 
|
 
|
Line 4,511: Line 4,506:
  
  
|}
+
|-
 +
|
 +
<center>DelT-</center>
  
 +
|
  
=ListTables=
 
  
 
 
{| class="wikitable"
 
|-
 
 
|
 
|
<center>'''<nowiki>#</nowiki>'''</center>
 
  
|
 
<center>'''Description'''</center>
 
  
 
|
 
|
<center>'''Results'''</center>
+
<center></center>
  
 
|
 
|
<center>'''T'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Imp'''</center>
 
  
|
 
<center>'''Notes'''</center>
 
  
 
|-
 
|-
Line 4,543: Line 4,530:
  
 
|
 
|
'''General'''
+
'''Exceptions'''
  
 
|
 
|
Line 4,559: Line 4,546:
 
|-
 
|-
 
|
 
|
<center>LisT-1</center>
+
<center>DelT-</center>
  
 
|
 
|
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
+
Simulate ''InternalServerError'' exception. Ideas?
 
 
Empty result (if there are no tables in this Tenant and Datacenter were created)
 
  
 
|
 
|
Line 4,570: Line 4,555:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 4,580: Line 4,565:
 
|-
 
|-
 
|
 
|
<center>LisT-2</center>
+
<center>DelT-</center>
  
 
|
 
|
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
+
Simulate ''LimitExceededException'' exception. Ideas?
  
A list of existing tables in this Tenant and Datacenter (if there are some in this Tenant and Datacenter tables)
+
Delete more than 10 tables in the same time
  
 
|
 
|
Line 4,591: Line 4,576:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 4,601: Line 4,586:
 
|-
 
|-
 
|
 
|
<center>LisT-3</center>
+
<center>DelT-</center>
  
 
|
 
|
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
+
Simulate ''ResourceInUseException'' exception. Ideas?
  
The List does not contain the tables having “CREATING” status
+
Delete a table while it is in use by some other operation
  
 
|
 
|
Line 4,612: Line 4,597:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 4,622: Line 4,607:
 
|-
 
|-
 
|
 
|
<center>LisT-4</center>
+
<center>DelT-</center>
  
 
|
 
|
Incorrect spelling of ListTables specified like: LisTables or Listables or ListTable, etc
+
Simulate ''ResourceNotFoundException'' exception. Other ideas?
  
 
|
 
|
Line 4,641: Line 4,626:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DelT-</center>
  
 
|
 
|
There is no “{” or “}” in the statement
+
 
  
 
|
 
|
Line 4,650: Line 4,635:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 4,660: Line 4,645:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>DelT-</center>
  
 
|
 
|
'''Limit'''
+
 
  
 
|
 
|
Line 4,677: Line 4,662:
  
  
|-
+
|}
|
 
<center>LisT-</center>
 
  
|
 
The limit option is not specified and
 
  
The number of existing tables is 5
 
  
|
 
1 page containing all 5 tables
 
  
|
+
=DescribeTable=
<center>P</center>
 
  
|
 
<center></center>
 
 
|
 
  
  
 +
{| class="wikitable"
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>'''<nowiki>#</nowiki>'''</center>
  
 
|
 
|
The limit option is not specified and
+
<center>'''Description'''</center>
 
 
The number of tables is 100
 
  
 
|
 
|
1 page containing all 100 tables
+
<center>'''Results'''</center>
  
 
|
 
|
<center>P</center>
+
<center>'''T'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Imp'''</center>
  
 
|
 
|
 
+
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center></center>
  
 
|
 
|
Limit = 3 and
+
'''General'''
 
 
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></center>
  
 
|
 
|
Line 4,746: Line 4,712:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-1</center>
  
 
|
 
|
Limit = 3 and
+
Run ''DescribeTable'' against the existing table. Check that all the required params are described correctly (see “Response Syntax” for DescribeTable statement)
 
 
"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
 
  
 
|
 
|
Line 4,773: Line 4,731:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
Limit = 0
+
Run ''DescribeTable'' against the non-existent table (''ResourceNotFoundException'' exception)
  
 
|
 
|
Error/exception
+
 
  
 
|
 
|
Line 4,792: Line 4,750:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
Limit = -2
+
Run ''DescribeTable'' specifying “” as a table name
  
 
|
 
|
Error/exception
+
 
  
 
|
 
|
Line 4,811: Line 4,769:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
Limit = "Some_strange_string"
+
Run ''DescribeTable'' specifying ''NULL'' as a name
  
 
|
 
|
Error/exception
+
 
  
 
|
 
|
Line 4,830: Line 4,788:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
Limit = ""
+
Run ''DescribeTable'' w/o specifying any parameters
  
 
|
 
|
Error/exception
+
 
  
 
|
 
|
Line 4,849: Line 4,807:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
Limit = &lt;nothing&gt;
+
Run ''DescribeTable'' specifying a name that contains only 2 or 1 symbol (causes an exception?)
  
 
|
 
|
Error/exception
+
 
  
 
|
 
|
Line 4,868: Line 4,826:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
Case sensitivity (?)
+
Run ''DescribeTable'' specifying a name that contains more than 255 symbols
  
 
|
 
|
Line 4,877: Line 4,835:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 4,887: Line 4,845:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>DesT-</center>
  
 
|
 
|
'''ExclusiveStartTableName'''
+
Simulate ''InternalServerError'' exception
  
 
|
 
|
Line 4,896: Line 4,854:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 4,906: Line 4,864:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
The "ExclusiveStartTableName" option not specified
+
 
  
 
|
 
|
Line 4,915: Line 4,873:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 4,925: Line 4,883:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
An existing "ExclusiveStartTableName" specified
+
 
  
 
|
 
|
Line 4,934: Line 4,892:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 4,944: Line 4,902:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>DesT-</center>
  
 
|
 
|
An existing "ExclusiveStartTableName" specified when:
 
  
There were no previous runs of ListTables statement
 
  
 
|
 
|
Line 4,955: Line 4,911:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 4,963: Line 4,919:
  
  
 +
|}
 +
 +
 +
=GetItem=
 +
 +
 +
 +
{| class="wikitable"
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>'''<nowiki>#</nowiki>'''</center>
  
 
|
 
|
An existing "ExclusiveStartTableName" specified when:
+
<center>'''Description'''</center>
 
 
Previous run of ListTables statement returned just one page
 
  
 
|
 
|
 
+
<center>'''Results'''</center>
  
 
|
 
|
<center>P</center>
+
<center>'''T'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Imp'''</center>
  
 
|
 
|
 
+
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center></center>
  
 
|
 
|
"ExclusiveStartTableName" is 3 symbols long
+
'''General'''
  
 
|
 
|
Line 4,995: Line 4,957:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 5,005: Line 4,967:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-1</center>
  
 
|
 
|
Table name is 255 symbols long
+
Get an item specifying correct mandatory attributes
  
 
|
 
|
Line 5,024: Line 4,986:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
Table name is 1 or 2 symbols long
+
Get an item specifying all the correct mandatory and optional ttributes
  
 
|
 
|
Line 5,033: Line 4,995:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 5,043: Line 5,005:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center></center>
  
 
|
 
|
Table name is 256 or more symbols long
+
'''TableName'''
  
 
|
 
|
Line 5,052: Line 5,014:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 5,062: Line 5,024:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
A non-existent table name specified
+
Valid (existing) table name
  
 
|
 
|
Line 5,071: Line 5,033:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 5,081: Line 5,043:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
No table names specified
+
Existing table name of 3 symbols
  
 
|
 
|
Line 5,090: Line 5,052:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 5,100: Line 5,062:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
An empty (like "ExclusiveStartTableName" :) table name specified
+
Existing table name of 255 symbols
  
 
|
 
|
Line 5,109: Line 5,071:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 5,119: Line 5,081:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>GI-</center>
  
 
|
 
|
'''Tenant'''
+
From non-existent table name
  
 
|
 
|
Line 5,128: Line 5,090:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,138: Line 5,100:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
Switch to another tenant and
+
Empty name (“”)
  
Perform ListTables operations:
+
|
  
The "ExclusiveStartTableName" option not specified
 
  
 
|
 
|
A unique (pertinent to this specific Tenant) list of tables returned
+
<center>N</center>
 
 
|
 
<center>P</center>
 
  
 
|
 
|
Line 5,161: Line 5,119:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
Switch to another tenant and
+
Less than 3 symbols long
  
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>N</center>
 
 
|
 
<center>P</center>
 
  
 
|
 
|
Line 5,184: Line 5,138:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>GI-</center>
  
 
|
 
|
'''DataCenter (endpoint)'''
+
More than 255 symbols long
 
 
Switch to another Datacenter and
 
 
 
Perform ListTables operations:
 
  
 
|
 
|
Line 5,197: Line 5,147:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,207: Line 5,157:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center></center>
  
 
|
 
|
The "ExclusiveStartTableName" option not specified
+
'''AttributesToGet:'''
  
 
|
 
|
A unique (pertinent to this specific Datacenter) list of tables returned
+
 
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 5,226: Line 5,176:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
An existing table name specified in "ExclusiveStartTableName"
+
Specified, correct items in the list
  
 
|
 
|
A unique (pertinent to this specific Datacenter) list of tables returned starting from the specified table name
+
 
  
 
|
 
|
Line 5,238: Line 5,188:
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 5,245: Line 5,195:
 
|-
 
|-
 
|
 
|
<center>LisT-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Section not specified
  
 
|
 
|
Line 5,254: Line 5,204:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
  
  
|}
 
 
 
=PutItem=
 
 
'''Note:''' For each test, check the ''ResponseValue'' for required options and values
 
 
{| class="wikitable"
 
 
|-
 
|-
 
|
 
|
<center>'''<nowiki>#</nowiki>'''</center>
+
<center>GI-</center>
  
 
|
 
|
<center>'''Description'''</center>
+
“AttributesToGet” term not specified, but there is a list of items in the section
  
 
|
 
|
<center>'''Results'''</center>
+
Exception/error
  
 
|
 
|
<center>'''T'''</center>
+
<center>N</center>
  
 
|
 
|
<center>'''Imp'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Notes'''</center>
+
 
  
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>GI-</center>
  
 
|
 
|
'''General'''
+
Section AttributesToGet is specified, but there is just an empty list (no items)
  
 
|
 
|
 
+
Exception/error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,310: Line 5,252:
 
|-
 
|-
 
|
 
|
<center>PI-1</center>
+
<center>GI-</center>
  
 
|
 
|
Specify correct required fields only
+
Specified more attributes than exist in the table
  
 
|
 
|
 
+
Exception/error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 5,329: Line 5,271:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Incorrect attributes: Wrong names
  
 
|
 
|
 
+
Exception/error
  
 
|
 
|
Line 5,348: Line 5,290:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Incorrect attributes: Empty values like ""
  
 
|
 
|
 
+
Exception/error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,367: Line 5,309:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''Key'''
  
 
|
 
|
Line 5,386: Line 5,328:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
One Key specified: “B”
  
 
|
 
|
Line 5,395: Line 5,337:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,405: Line 5,347:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
One Key specified: “N”
  
 
|
 
|
Line 5,414: Line 5,356:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,424: Line 5,366:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
One Key specified: “S”
  
 
|
 
|
Line 5,433: Line 5,375:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,443: Line 5,385:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
One key: “BS”
  
 
|
 
|
Line 5,462: Line 5,404:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
One key: “NS”
  
 
|
 
|
Line 5,481: Line 5,423:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
One key: “SS”
  
 
|
 
|
Line 5,500: Line 5,442:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Combination of "B", "N", "S" types
  
 
|
 
|
Line 5,519: Line 5,461:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Combination of "B", "N", "S", "BS", "NS", "SS" types
  
 
|
 
|
Line 5,538: Line 5,480:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Combination of “B”, “B”, "N", "N", “S”, “S”,  “BS”, “BS”, "NS", "NS", “SS”, “SS” types
  
 
|
 
|
Line 5,557: Line 5,499:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
The whole section “Key” not specified
  
 
|
 
|
 
+
Exception/error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,576: Line 5,518:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Section “Key” specified, but the section content is empty
  
 
|
 
|
 
+
Exception/error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,595: Line 5,537:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")
  
 
|
 
|
 
+
Exception/error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,614: Line 5,556:
 
|-
 
|-
 
|
 
|
<center>PI-</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></center>
+
<center>N</center>
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 5,633: Line 5,575:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''ConsistentRead'''
  
 
|
 
|
Line 5,652: Line 5,594:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
<nowiki>= True</nowiki>
  
 
|
 
|
Line 5,661: Line 5,603:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,671: Line 5,613:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
<nowiki>= False</nowiki>
  
 
|
 
|
Line 5,680: Line 5,622:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,690: Line 5,632:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Not specified
  
 
|
 
|
Line 5,699: Line 5,641:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,709: Line 5,651:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
<nowiki>= &lt;Something_else&gt;</nowiki>
  
 
|
 
|
Line 5,718: Line 5,660:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,728: Line 5,670:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''ReturnConsumedCapacity'''
  
 
|
 
|
Line 5,747: Line 5,689:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
<nowiki>= INDEXES</nowiki>
  
 
|
 
|
Line 5,756: Line 5,698:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,766: Line 5,708:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
<nowiki>= TOTAL</nowiki>
  
 
|
 
|
Line 5,775: Line 5,717:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,785: Line 5,727:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
<nowiki>= NONE</nowiki>
  
 
|
 
|
Line 5,794: Line 5,736:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 5,804: Line 5,746:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
<nowiki>= &lt;Something_else&gt;</nowiki>
  
 
|
 
|
Line 5,813: Line 5,755:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,823: Line 5,765:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''Exceptions'''
  
 
|
 
|
Line 5,842: Line 5,784:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Simulate ConditionalCheckFailedException
  
 
|
 
|
Line 5,851: Line 5,793:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,861: Line 5,803:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Simulate InternalServerError
  
 
|
 
|
Line 5,870: Line 5,812:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,880: Line 5,822:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Simulate ItemCollectionSizeLimitExceededException
  
 
|
 
|
Line 5,889: Line 5,831:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,899: Line 5,841:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Simulate ProvisionedThroughputExceededException
  
 
|
 
|
Line 5,908: Line 5,850:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,918: Line 5,860:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
 
+
Simulate ResourceNotFoundException
  
 
|
 
|
Line 5,927: Line 5,869:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 5,937: Line 5,879:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>GI-</center>
  
 
|
 
|
Line 5,954: Line 5,896:
  
  
|-
+
|}
|
+
 
<center>PI-</center>
+
 
 +
=ListTables=
  
|
 
  
  
 +
{| class="wikitable"
 +
|-
 
|
 
|
 +
<center>'''<nowiki>#</nowiki>'''</center>
  
 +
|
 +
<center>'''Description'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Results'''</center>
  
 
|
 
|
<center></center>
+
<center>'''T'''</center>
  
 
|
 
|
 +
<center>'''Imp'''</center>
  
 +
|
 +
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''General'''
  
 
|
 
|
Line 5,994: Line 5,944:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-1</center>
  
 
|
 
|
 +
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
  
 +
Empty result (if there are no tables in this Tenant and Datacenter were created)
  
 
|
 
|
Line 6,003: Line 5,955:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 6,013: Line 5,965:
 
|-
 
|-
 
|
 
|
<center>PI-</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)
  
 
|
 
|
Line 6,022: Line 5,976:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 6,032: Line 5,986:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-3</center>
  
 
|
 
|
 +
Neither ''Limit'' nor ''ExclusiveStartTableName'' specified:
  
 +
The List does not contain the tables having “CREATING” status
  
 
|
 
|
Line 6,041: Line 5,997:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 6,051: Line 6,007:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-4</center>
  
 
|
 
|
 
+
Incorrect spelling of ListTables specified like: LisTables or Listables or ListTable, etc
  
 
|
 
|
Line 6,060: Line 6,016:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,070: Line 6,026:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-</center>
  
 
|
 
|
 
+
There is no “{” or “}” in the statement
  
 
|
 
|
Line 6,079: Line 6,035:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,089: Line 6,045:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center></center>
  
 
|
 
|
 
+
'''Limit'''
  
 
|
 
|
Line 6,108: Line 6,064:
 
|-
 
|-
 
|
 
|
<center>PI-</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></center>
+
<center>P</center>
  
 
|
 
|
Line 6,127: Line 6,085:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-</center>
  
 
|
 
|
 +
The limit option is not specified and
  
 +
The number of tables is 100
  
 
|
 
|
 
+
1 page containing all 100 tables
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 6,146: Line 6,106:
 
|-
 
|-
 
|
 
|
<center>PI-</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></center>
+
<center>P</center>
  
 
|
 
|
Line 6,165: Line 6,131:
 
|-
 
|-
 
|
 
|
<center>PI-</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></center>
+
<center>P</center>
  
 
|
 
|
Line 6,184: Line 6,158:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-</center>
  
 
|
 
|
 
+
Limit = 0
  
 
|
 
|
 
+
Error/exception
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,203: Line 6,177:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-</center>
  
 
|
 
|
 
+
Limit = -2
  
 
|
 
|
 
+
Error/exception
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,222: Line 6,196:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-</center>
  
 
|
 
|
 
+
Limit = "Some_strange_string"
  
 
|
 
|
 
+
Error/exception
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,241: Line 6,215:
 
|-
 
|-
 
|
 
|
<center>PI-</center>
+
<center>LisT-</center>
  
 
|
 
|
 
+
Limit = ""
  
 
|
 
|
 
+
Error/exception
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,258: Line 6,232:
  
  
|}
+
|-
 +
|
 +
<center>LisT-</center>
  
 +
|
 +
Limit = &lt;nothing&gt;
  
=Query=
+
|
 +
Error/exception
  
 +
|
 +
<center>N</center>
 +
 +
|
 +
<center></center>
 +
 +
|
  
  
{| class="wikitable"
 
 
|-
 
|-
 
|
 
|
<center>'''''''''#'''</center>
+
<center>LisT-</center>
  
 
|
 
|
<center>'''Description'''</center>
+
Case sensitivity (?)
  
 
|
 
|
<center>'''Results'''</center>
+
 
  
 
|
 
|
<center>'''T'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Imp'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Notes'''</center>
+
 
  
 
|-
 
|-
Line 6,290: Line 6,275:
  
 
|
 
|
'''General'''
+
'''ExclusiveStartTableName'''
  
 
|
 
|
Line 6,306: Line 6,291:
 
|-
 
|-
 
|
 
|
<center>Q-1</center>
+
<center>LisT-</center>
  
 
|
 
|
Query statement contains the correct mandatory parameters only
+
The "ExclusiveStartTableName" option not specified
  
 
|
 
|
Line 6,325: Line 6,310:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Query statement contains ALL the correct parameters
+
An existing "ExclusiveStartTableName" specified
  
 
|
 
|
Line 6,344: Line 6,329:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>LisT-</center>
  
 
|
 
|
'''TableName'''
+
An existing "ExclusiveStartTableName" specified when:
 +
 
 +
There were no previous runs of ListTables statement
  
 
|
 
|
Line 6,353: Line 6,340:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 6,363: Line 6,350:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Valid name specified
+
An existing "ExclusiveStartTableName" specified when:
 +
 
 +
Previous run of ListTables statement returned just one page
  
 
|
 
|
Line 6,375: Line 6,364:
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 6,382: Line 6,371:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Non-existent name
+
"ExclusiveStartTableName" is 3 symbols long
  
 
|
 
|
Line 6,391: Line 6,380:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 6,401: Line 6,390:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Empty name
+
Table name is 255 symbols long
  
 
|
 
|
Line 6,410: Line 6,399:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 6,420: Line 6,409:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Less than 3 symbols long
+
Table name is 1 or 2 symbols long
  
 
|
 
|
Line 6,439: Line 6,428:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
More than 255 symbols long
+
Table name is 256 or more symbols long
  
 
|
 
|
Line 6,458: Line 6,447:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Exactly 3 and 255 symbols long
+
A non-existent table name specified
  
 
|
 
|
Line 6,467: Line 6,456:
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 6,477: Line 6,466:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Upper and lower cases
+
No table names specified
  
 
|
 
|
Line 6,486: Line 6,475:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,496: Line 6,485:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>LisT-</center>
  
 
|
 
|
'''AttributesToGet'''
+
An empty (like "ExclusiveStartTableName" :) table name specified
  
 
|
 
|
Line 6,505: Line 6,494:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 6,515: Line 6,504:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
Specified correct attributes
+
'''Tenant'''
  
 
|
 
|
Line 6,524: Line 6,513:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,534: Line 6,523:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Not specified
+
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></center>
+
<center>P</center>
  
 
|
 
|
Line 6,553: Line 6,546:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Specified more attributes than exist in the table
+
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>N</center>
+
<center>P</center>
  
 
|
 
|
Line 6,572: Line 6,569:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
Specified incorrect attributes: wrong names
+
'''DataCenter (endpoint)'''
 +
 
 +
Switch to another Datacenter and
 +
 
 +
Perform ListTables operations:
  
 
|
 
|
Line 6,581: Line 6,582:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 6,591: Line 6,592:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Specified incorrect attributes: empty values like ""
+
The "ExclusiveStartTableName" option not specified
  
 
|
 
|
 
+
A unique (pertinent to this specific Datacenter) list of tables returned
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 6,610: Line 6,611:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Exact correct list:
+
An existing table name specified in "ExclusiveStartTableName"
 
 
Select = SPECIFIC_ATTRIBUTES
 
  
 
|
 
|
Correct result
+
A unique (pertinent to this specific Datacenter) list of tables returned starting from the specified table name
  
 
|
 
|
Line 6,631: Line 6,630:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>LisT-</center>
  
 
|
 
|
Exact correct list:
 
  
Select = ALL_ATTRIBUTES
 
  
 
|
 
|
error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 6,650: Line 6,647:
  
  
 +
|}
 +
 +
 +
=PutItem=
 +
 +
'''Note:''' For each test, check the ''ResponseValue'' for required options and values
 +
 +
{| class="wikitable"
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>'''<nowiki>#</nowiki>'''</center>
  
 
|
 
|
Exact correct list:
+
<center>'''Description'''</center>
 
 
Select = ALL_PROJECTED_ATTRIBUTES
 
  
 
|
 
|
error
+
<center>'''Results'''</center>
  
 
|
 
|
<center>N</center>
+
<center>'''T'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Imp'''</center>
  
 
|
 
|
 
+
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
Exact correct list:
+
'''General'''
  
Select = COUNT
+
|
  
|
 
error
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 6,694: Line 6,695:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
Exact correct list:
 
  
Select = “”
 
  
 
|
 
|
error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 6,715: Line 6,714:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-1</center>
  
 
|
 
|
Exact correct list:
+
Specify correct required fields only
  
Select = “something_else”
+
|
  
|
 
error
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 6,736: Line 6,733:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
The option is not specified
+
 
  
 
|
 
|
Line 6,755: Line 6,752:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Completely incorrect list
+
 
  
 
|
 
|
Line 6,764: Line 6,761:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 6,774: Line 6,771:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Some correct and some incorrect names in the list
+
 
  
 
|
 
|
Line 6,783: Line 6,780:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 6,793: Line 6,790:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Empty list
+
 
  
 
|
 
|
Line 6,802: Line 6,799:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 6,812: Line 6,809:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Not specified
+
 
  
 
|
 
|
Line 6,821: Line 6,818:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,831: Line 6,828:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>PI-</center>
  
 
|
 
|
'''KeyConditions'''
+
 
  
 
|
 
|
Line 6,850: Line 6,847:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Key "B" specified
+
 
  
 
|
 
|
Line 6,859: Line 6,856:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,869: Line 6,866:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Key "N" specified
+
 
  
 
|
 
|
Line 6,878: Line 6,875:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,888: Line 6,885:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Key "S" specified
+
 
  
 
|
 
|
Line 6,897: Line 6,894:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,907: Line 6,904:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Key "BS" specified
+
 
  
 
|
 
|
Line 6,916: Line 6,913:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,926: Line 6,923:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Key "NS" specified
+
 
  
 
|
 
|
Line 6,935: Line 6,932:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,945: Line 6,942:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Key "SS" specified
+
 
  
 
|
 
|
Line 6,954: Line 6,951:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,964: Line 6,961:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Combination of "B" + "N" + "S"
+
 
  
 
|
 
|
Line 6,973: Line 6,970:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 6,983: Line 6,980:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Combination of all 6 types ("B" + "N" + "S" + "BS" + "NS" + "SS")
+
 
  
 
|
 
|
Line 6,992: Line 6,989:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,002: Line 6,999:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Not specified
+
 
  
 
|
 
|
Line 7,011: Line 7,008:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
<center>Y</center>
+
<center></center>
  
 
|
 
|
Line 7,021: Line 7,018:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")
+
 
  
 
|
 
|
Line 7,030: Line 7,027:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,040: Line 7,037:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>PI-</center>
  
 
|
 
|
'''ConsistentRead'''
+
 
  
 
|
 
|
Line 7,059: Line 7,056:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= True</nowiki>
+
 
  
 
|
 
|
Line 7,068: Line 7,065:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,078: Line 7,075:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Option not specified
+
 
  
 
|
 
|
Line 7,087: Line 7,084:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,097: Line 7,094:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= “Something else”</nowiki>
+
 
  
 
|
 
|
error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,116: Line 7,113:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>PI-</center>
  
 
|
 
|
'''ReturnConsumedCapacity'''
+
 
  
 
|
 
|
Line 7,135: Line 7,132:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= "</nowiki>INDEXES"
+
 
  
 
|
 
|
Line 7,144: Line 7,141:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,154: Line 7,151:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= "TOTAL"</nowiki>
+
 
  
 
|
 
|
Line 7,163: Line 7,160:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,173: Line 7,170:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= "NONE"</nowiki>
+
 
  
 
|
 
|
Line 7,182: Line 7,179:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,192: Line 7,189:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= “Something_else”</nowiki>
+
 
  
 
|
 
|
Line 7,201: Line 7,198:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,211: Line 7,208:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= “”</nowiki>
+
 
  
 
|
 
|
Line 7,220: Line 7,217:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,230: Line 7,227:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
<nowiki>= &lt;Empty value&gt;</nowiki>
+
 
  
 
|
 
|
Line 7,239: Line 7,236:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,249: Line 7,246:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>PI-</center>
  
 
|
 
|
'''ExclusiveStartKey'''
+
 
  
 
|
 
|
Line 7,268: Line 7,265:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
is String
+
 
  
 
|
 
|
Records are taken starting by LastKeyValue of the previous operation
+
 
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,287: Line 7,284:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
is Number
+
 
  
 
|
 
|
Records are taken starting by LastKeyValue of the previous operation
+
 
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,306: Line 7,303:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
is Binary
+
 
  
 
|
 
|
Records are taken starting by LastKeyValue of the previous operation
+
 
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,325: Line 7,322:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>PI-</center>
  
 
|
 
|
is S or N or B, but there was no previous operations
+
 
  
 
|
 
|
What’s the content of ExclusiveStartKey?
+
 
  
 
|
 
|
Line 7,344: Line 7,341:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
is Set of S or N or B
+
 
  
 
|
 
|
error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,363: Line 7,360:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Not specified
+
 
  
 
|
 
|
Line 7,372: Line 7,369:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,382: Line 7,379:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Incorrect ExclusiveStartKey
+
 
  
 
|
 
|
Error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,401: Line 7,398:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>PI-</center>
  
 
|
 
|
'''IndexName'''
+
 
  
 
|
 
|
Line 7,420: Line 7,417:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
correct Local SI (Secondary Index)
+
 
  
 
|
 
|
Line 7,429: Line 7,426:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,439: Line 7,436:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
correct Global SI
+
 
  
 
|
 
|
Line 7,448: Line 7,445:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,458: Line 7,455:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
non-existent LSI
+
 
  
 
|
 
|
Line 7,467: Line 7,464:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,477: Line 7,474:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
non-existent GSI
+
 
  
 
|
 
|
Line 7,486: Line 7,483:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,496: Line 7,493:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Not specified
+
 
  
 
|
 
|
Line 7,505: Line 7,502:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,515: Line 7,512:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Name length &lt; 3 symbols
+
 
  
 
|
 
|
error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,534: Line 7,531:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Name length &gt; 255 symbols
+
 
  
 
|
 
|
error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,553: Line 7,550:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Empty index name
+
 
  
 
|
 
|
error
+
 
  
 
|
 
|
Line 7,572: Line 7,569:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Upper case index name
+
 
  
 
|
 
|
?
+
 
  
 
|
 
|
Line 7,591: Line 7,588:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Lower case index name
+
 
  
 
|
 
|
?
+
 
  
 
|
 
|
Line 7,610: Line 7,607:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</center>
  
 
|
 
|
Mix of Upper/lower case letters in index name
+
 
  
 
|
 
|
?
+
 
  
 
|
 
|
Line 7,629: Line 7,626:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>PI-</center>
  
 
|
 
|
'''Limit'''
+
 
  
 
|
 
|
Line 7,648: Line 7,645:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>PI-</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></center>
  
 
|
 
|
Line 7,667: Line 7,662:
  
  
 +
|}
 +
 +
 +
=Query=
 +
 +
 +
 +
{| class="wikitable"
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>'''<nowiki>#</nowiki>'''</center>
  
 
|
 
|
Valid statement that returns N lines
+
<center>'''Description'''</center>
 
 
Limit = N*2
 
  
 
|
 
|
N lines returned and LastEvaluatedKey points to the last returned line
+
<center>'''Results'''</center>
  
 
|
 
|
<center>P</center>
+
<center>'''T'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Imp'''</center>
  
 
|
 
|
 
+
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
Valid statement that returns N (&lt; 5) lines
+
'''General'''
  
Limit = 5
+
|
  
|
 
N lines returned and LastEvaluatedKey points to the last returned line
 
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,711: Line 7,710:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center>Q-1</center>
  
 
|
 
|
Valid statement that returns N (&lt; 5) lines
+
Query statement contains the correct mandatory parameters only
  
Limit = 0
+
|
  
|
 
?
 
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 7,735: Line 7,732:
  
 
|
 
|
Valid statement that returns data size &gt; 1 MB
+
Query statement contains ALL the correct parameters
  
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>P</center>
  
 
|
 
|
Line 7,756: Line 7,751:
  
 
|
 
|
'''ScanIndexForward'''
+
'''TableName'''
  
 
|
 
|
Line 7,775: Line 7,770:
  
 
|
 
|
<nowiki>= TRUE (by default)</nowiki>
+
Valid name specified
  
 
|
 
|
data are sorted by ascending of the index key
+
 
  
 
|
 
|
Line 7,784: Line 7,779:
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 7,794: Line 7,789:
  
 
|
 
|
<nowiki>= FALSE</nowiki>
+
Non-existent name
  
 
|
 
|
data are sorted by descending of the index key
+
 
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 7,813: Line 7,808:
  
 
|
 
|
<nowiki>= “Another value”</nowiki>
+
Empty name
  
 
|
 
|
error
+
 
  
 
|
 
|
Line 7,832: Line 7,827:
  
 
|
 
|
<nowiki>= &lt;empty value&gt;</nowiki>
+
Less than 3 symbols long
  
 
|
 
|
?
+
 
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 7,848: Line 7,843:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''Select'''
+
More than 255 symbols long
  
 
|
 
|
Line 7,857: Line 7,852:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 7,870: Line 7,865:
  
 
|
 
|
<nowiki>= ALL_ATTRIBUTES</nowiki>
+
Exactly 3 and 255 symbols long
  
 
|
 
|
Returns all of the item attributes from the specified table or index
+
 
  
 
|
 
|
Line 7,889: Line 7,884:
  
 
|
 
|
<nowiki>= ALL_PROJECTED_ATTRIBUTES</nowiki>
+
Upper and lower cases
  
 
|
 
|
Retrieves all attributes which have been projected into the index
+
 
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 7,905: Line 7,900:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
<nowiki>= COUNT </nowiki>
+
'''AttributesToGet'''
  
 
|
 
|
Returns the number of matching items, rather than the matching items themselves
+
 
  
 
|
 
|
Line 7,927: Line 7,922:
  
 
|
 
|
<nowiki>= SPECIFIC_ATTRIBUTES</nowiki>
+
Specified correct attributes
  
 
|
 
|
Returns only the attributes listed in AttributesToGet
+
 
  
 
|
 
|
Line 7,946: Line 7,941:
  
 
|
 
|
<nowiki>= &lt;empty value&gt;</nowiki>
+
Not specified
  
 
|
 
|
error
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 7,965: Line 7,960:
  
 
|
 
|
<nowiki>= “”</nowiki>
+
Specified more attributes than exist in the table
  
 
|
 
|
error
+
 
  
 
|
 
|
Line 7,984: Line 7,979:
  
 
|
 
|
<nowiki>= “Something else”</nowiki>
+
Specified incorrect attributes: wrong names
  
 
|
 
|
error
+
 
  
 
|
 
|
Line 8,000: Line 7,995:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''KeyConditions'''
+
Specified incorrect attributes: empty values like ""
  
 
|
 
|
Line 8,009: Line 8,004:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 8,022: Line 8,017:
  
 
|
 
|
One correct field name
+
Exact correct list:
  
ComparisonOperator = "EQ"
+
Select = SPECIFIC_ATTRIBUTES
  
 
|
 
|
Existing record should be returned (STRING, NUMBER, BOOLEAN)
+
Correct result
  
 
|
 
|
Line 8,043: Line 8,038:
  
 
|
 
|
One correct field name
+
Exact correct list:
  
ComparisonOperator = "EQ"
+
Select = ALL_ATTRIBUTES
 
 
AttributeValue is SET of Number or String or Boolean
 
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 8,066: Line 8,059:
  
 
|
 
|
One correct field name
+
Exact correct list:
  
ComparisonOperator = "EQ"
+
Select = ALL_PROJECTED_ATTRIBUTES
 
 
Two AttributeValues specified (NUMBER and STRING)
 
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 8,089: Line 8,080:
  
 
|
 
|
One correct field name (BINARY)
+
Exact correct list:
  
ComparisonOperator = "EQ"
+
Select = COUNT
 
 
AttributeValue is of type NUMBER or STRING
 
  
 
|
 
|
error?
+
error
  
 
|
 
|
Line 8,112: Line 8,101:
  
 
|
 
|
One INcorrect field name
+
Exact correct list:
  
ComparisonOperator = "EQ"
+
Select = “”
 
 
Valid comparison value
 
  
 
|
 
|
error ?
+
error
  
 
|
 
|
Line 8,135: Line 8,122:
  
 
|
 
|
One correct field name
+
Exact correct list:
  
ComparisonOperator = "EQ"
+
Select = “something_else”
 
 
Comparison expression represents a combination thet does not exist in the actual table
 
  
 
|
 
|
No records returned
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 8,158: Line 8,143:
  
 
|
 
|
One correct field name
+
The option is not specified
  
INVALID ComparisonOperator
+
|
  
Valid comparison value
 
  
 
|
 
|
error?
+
<center></center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,181: Line 8,162:
  
 
|
 
|
One correct field name (Number or String or Boolean)
+
Completely incorrect list
  
ComparisonOperator = "LE"
+
|
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
  
|
 
ok
 
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 8,204: Line 8,181:
  
 
|
 
|
One correct field name
+
Some correct and some incorrect names in the list
  
ComparisonOperator = "LE"
+
|
  
Two AttributeValues specified
 
 
|
 
error?
 
  
 
|
 
|
Line 8,227: Line 8,200:
  
 
|
 
|
One correct field name
+
Empty list
  
ComparisonOperator = "LE"
+
|
 
 
AttributeValue is SET of Number or String or Boolean
 
  
|
 
error?
 
  
 
|
 
|
Line 8,250: Line 8,219:
  
 
|
 
|
One correct field name (Number or String or Boolean)
+
Not specified
  
ComparisonOperator = "LT"
+
|
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
  
|
 
ok
 
  
 
|
 
|
Line 8,270: Line 8,235:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
One correct field name
+
'''KeyConditions'''
  
ComparisonOperator = "LT"
+
|
  
Two AttributeValues specified
 
  
 
|
 
|
error?
+
<center></center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,296: Line 8,257:
  
 
|
 
|
One correct field name (a set)
+
Key "B" specified
  
ComparisonOperator = "LT"
+
|
  
AttributeValue is SET of the same type
 
  
 
|
 
|
error?
+
<center>P</center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,319: Line 8,276:
  
 
|
 
|
One correct field name
+
Key "N" specified
  
ComparisonOperator = "GE"
+
|
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
  
|
 
ok
 
  
 
|
 
|
Line 8,342: Line 8,295:
  
 
|
 
|
One correct field name (N type)
+
Key "S" specified
  
ComparisonOperator = "GE"
+
|
  
Two (N and S) AttributeValues specified
 
  
 
|
 
|
error
+
<center>P</center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,365: Line 8,314:
  
 
|
 
|
One correct field name
+
Key "BS" specified
  
ComparisonOperator = "GE"
+
|
  
AttributeValue is SET of Number or String or Boolean
 
  
 
|
 
|
error
+
<center>P</center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,388: Line 8,333:
  
 
|
 
|
One correct field name (Number or String or Boolean)
+
Key "NS" specified
  
ComparisonOperator = "GT"
+
|
 
 
Valid comparison value  (STRING or NUMBER or BOOLEAN)
 
  
|
 
ok
 
  
 
|
 
|
Line 8,411: Line 8,352:
  
 
|
 
|
One correct field name
+
Key "SS" specified
  
ComparisonOperator = "GT"
+
|
  
Two AttributeValues specified
 
  
 
|
 
|
error?
+
<center>P</center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,434: Line 8,371:
  
 
|
 
|
One correct field name (Number or String or Boolean)
+
Combination of "B" + "N" + "S"
  
ComparisonOperator = "GT"
+
|
  
AttributeValue is SET of Number or String or Boolean
 
  
 
|
 
|
ok
+
<center>P</center>
 
 
|
 
<center>P</center>
 
  
 
|
 
|
Line 8,457: Line 8,390:
  
 
|
 
|
One correct field name
+
Combination of all 6 types ("B" + "N" + "S" + "BS" + "NS" + "SS")
  
ComparisonOperator = "BEGINS_WITH"
+
|
  
Valid comparison value (STRING, BOOLEAN)
 
 
|
 
ok
 
  
 
|
 
|
Line 8,480: Line 8,409:
  
 
|
 
|
One non-existent field name
+
Not specified
 
 
ComparisonOperator = "BEGINS_WITH"
 
 
 
Valid comparison value (STRING, BOOLEAN)
 
  
 
|
 
|
Line 8,493: Line 8,418:
  
 
|
 
|
<center></center>
+
<center>Y</center>
  
 
|
 
|
Line 8,503: Line 8,428:
  
 
|
 
|
One correct field name
+
One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")
  
ComparisonOperator = "BEGINS_WITH"
+
|
 
 
Two AttributeValues specified
 
  
|
 
error
 
  
 
|
 
|
Line 8,523: Line 8,444:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
One correct field name
+
'''ConsistentRead'''
  
ComparisonOperator = "BEGINS_WITH"
+
|
  
AttributeValue is SET of Number or String or Boolean
 
  
 
|
 
|
error
+
<center></center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,549: Line 8,466:
  
 
|
 
|
One correct field name
+
<nowiki>= True</nowiki>
  
ComparisonOperator = "BETWEEN"
+
|
 
 
Two valid comparison values
 
  
|
 
ok
 
  
 
|
 
|
Line 8,572: Line 8,485:
  
 
|
 
|
One non-existent field name
+
Option not specified
  
ComparisonOperator = "BETWEEN"
+
|
  
Two valid comparison values
 
  
 
|
 
|
error
+
<center>P</center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,595: Line 8,504:
  
 
|
 
|
One correct field name
+
<nowiki>= “Something else”</nowiki>
 
 
ComparisonOperator = "BETWEEN"
 
 
 
Only one AttributeValue specified
 
  
 
|
 
|
Line 8,615: Line 8,520:
 
|-
 
|-
 
|
 
|
<center>Q-</center>
+
<center></center>
  
 
|
 
|
One correct field name
+
'''ReturnConsumedCapacity'''
  
ComparisonOperator = "BETWEEN"
+
|
  
AttributeValue is SET of Number or String or Boolean
 
  
 
|
 
|
error
+
<center></center>
 
 
|
 
<center>N</center>
 
  
 
|
 
|
Line 8,641: Line 8,542:
  
 
|
 
|
One correct field name
+
<nowiki>= "</nowiki>INDEXES"
  
ComparisonOperator = ""
+
|
  
|
 
error
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 8,662: Line 8,561:
  
 
|
 
|
One correct field name
+
<nowiki>= "TOTAL"</nowiki>
  
ComparisonOperator = &lt;empty_value&gt;
+
|
  
|
 
error
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 8,683: Line 8,580:
  
 
|
 
|
One correct field name
+
<nowiki>= "NONE"</nowiki>
  
ComparisonOperator = “something_else”
+
|
  
|
 
error
 
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 8,704: Line 8,599:
  
 
|
 
|
 
+
<nowiki>= “Something_else”</nowiki>
  
 
|
 
|
Line 8,710: Line 8,605:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 8,718: Line 8,613:
  
  
|}
 
 
 
=Scan=
 
 
 
 
{| class="wikitable"
 
 
|-
 
|-
 
|
 
|
<center>'''<nowiki>#</nowiki>'''</center>
+
<center>Q-</center>
  
 
|
 
|
<center>'''Description'''</center>
+
<nowiki>= “”</nowiki>
  
 
|
 
|
<center>'''Results'''</center>
+
 
  
 
|
 
|
<center>'''T'''</center>
+
<center>N</center>
  
 
|
 
|
<center>'''Imp'''</center>
+
<center></center>
  
 
|
 
|
<center>'''Notes'''</center>
+
 
  
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''General'''
+
<nowiki>= &lt;Empty value&gt;</nowiki>
  
 
|
 
|
Line 8,756: Line 8,643:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 8,766: Line 8,653:
 
|-
 
|-
 
|
 
|
<center>Sc-1</center>
+
<center></center>
  
 
|
 
|
scan stops and returns results if processed data size exceeds 1 MB
+
'''ExclusiveStartKey'''
  
 
|
 
|
Line 8,775: Line 8,662:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 8,785: Line 8,672:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Reproduce: Scan result is empty
+
is String
  
 
|
 
|
 
+
Records are taken starting by LastKeyValue of the previous operation
  
 
|
 
|
Line 8,804: Line 8,691:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Parallel scan topic - '''out of scope for now'''
+
is Number
  
 
|
 
|
 
+
Records are taken starting by LastKeyValue of the previous operation
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 8,823: Line 8,710:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''TableName'''
+
is Binary
  
 
|
 
|
 
+
Records are taken starting by LastKeyValue of the previous operation
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 8,842: Line 8,729:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
scan with only required parameter (table name)
+
is S or N or B, but there was no previous operations
  
 
|
 
|
 
+
What’s the content of ExclusiveStartKey?
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 8,861: Line 8,748:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
scan if name length is 3
+
is Set of S or N or B
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 8,880: Line 8,767:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
scan if name length is 255
+
Not specified
  
 
|
 
|
Line 8,899: Line 8,786:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
scan with name length &lt; 3
+
Incorrect ExclusiveStartKey
  
 
|
 
|
error?
+
Error
  
 
|
 
|
Line 8,918: Line 8,805:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
scan with name length is &gt; 255
+
'''IndexName'''
  
 
|
 
|
error?
+
 
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 8,937: Line 8,824:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
upper-lower case in <nowiki>t.name</nowiki>
+
correct Local SI (Secondary Index)
  
 
|
 
|
?
+
 
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 8,956: Line 8,843:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
non-existent table name
+
correct Global SI
  
 
|
 
|
Line 8,965: Line 8,852:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 8,975: Line 8,862:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
diff. symbols in t. name
+
non-existent LSI
  
 
|
 
|
Line 8,994: Line 8,881:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
scan request without required parameter - table name
+
non-existent GSI
  
 
|
 
|
Line 9,013: Line 8,900:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''AttributesToGet'''
+
Not specified
  
 
|
 
|
Line 9,022: Line 8,909:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,032: Line 8,919:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Skip it: all attrs should be returned
+
Name length &lt; 3 symbols
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 9,051: Line 8,938:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
include all params
+
Name length &gt; 255 symbols
  
 
|
 
|
?
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 9,070: Line 8,957:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
empty list of attrs
+
Empty index name
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 9,089: Line 8,976:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
the only attr in the list is non-key attr
+
Upper case index name
  
 
|
 
|
 
+
?
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 9,108: Line 8,995:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
the only attr in the list is attr that does not participate in a filter
+
Lower case index name
  
 
|
 
|
 
+
?
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 9,127: Line 9,014:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
try nonexistent attrs
+
Mix of Upper/lower case letters in index name
  
 
|
 
|
should not be displayed in results?
+
?
  
 
|
 
|
Line 9,146: Line 9,033:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
Filter can find items, but selected attrs are not present in those items:
+
'''Limit'''
 
 
selected attrs are present in some other items
 
  
 
|
 
|
Line 9,167: Line 9,052:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Filter can find items, but selected attrs are not present in those items:
+
Valid statement that returns &gt; 10 lines,
  
selected attrs are not present in any items
+
Limit = 5
  
 
|
 
|
 
+
5 lines returned and LastEvaluatedKey points to the last returned line
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,188: Line 9,073:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
<nowiki>Repeat the same attr[s] in this list</nowiki>
+
Valid statement that returns N lines
 +
 
 +
Limit = N*2
  
 
|
 
|
 
+
N lines returned and LastEvaluatedKey points to the last returned line
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 9,207: Line 9,094:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''[http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html ExclusiveStartKey''']
+
Valid statement that returns N (&lt; 5) lines
 +
 
 +
Limit = 5
  
 
|
 
|
 
+
N lines returned and LastEvaluatedKey points to the last returned line
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,226: Line 9,115:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Use LastEvaluatedKey from the previous scan. '''How to ensure that the scan really '''starts from this item?'''
+
Valid statement that returns N (&lt; 5) lines
 +
 
 +
Limit = 0
  
 
|
 
|
 
+
?
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 9,245: Line 9,136:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
What if assign some existing key but scan operation was not executed before? No difference I think.
+
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>N</center>
+
<center></center>
  
 
|
 
|
Line 9,264: Line 9,157:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
Assign nonexistent value of key attr.
+
'''ScanIndexForward'''
  
 
|
 
|
Line 9,273: Line 9,166:
  
 
|
 
|
<center>N</center>
+
<center></center>
  
 
|
 
|
Line 9,283: Line 9,176:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Assign non-key attributes and their values. Try attrs of SET type?
+
<nowiki>= TRUE (by default)</nowiki>
  
 
|
 
|
 
+
data are sorted by ascending of the index key
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 9,302: Line 9,195:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''Limit'''
+
<nowiki>= FALSE</nowiki>
  
 
|
 
|
 
+
data are sorted by descending of the index key
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,321: Line 9,214:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Verify just the Limit number of items was scanned and LastEvaluatedKey is present in response
+
<nowiki>= “Another value”</nowiki>
  
 
|
 
|
 
+
error
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 9,340: Line 9,233:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</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
+
<nowiki>= &lt;empty value&gt;</nowiki>
  
 
|
 
|
 
+
?
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 9,359: Line 9,252:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
Try empty, negative value, zero.
+
'''Select'''
  
 
|
 
|
Line 9,368: Line 9,261:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 9,378: Line 9,271:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''ReturnConsumedCapacity'''
+
<nowiki>= ALL_ATTRIBUTES</nowiki>
  
 
|
 
|
 
+
Returns all of the item attributes from the specified table or index
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,397: Line 9,290:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Ensure response does not contain ConsumedCapacity (neither for table nor index(es)) if ReturnConsumedCapacity not present or equal to None in request
+
<nowiki>= ALL_PROJECTED_ATTRIBUTES</nowiki>
  
 
|
 
|
 
+
Retrieves all attributes which have been projected into the index
  
 
|
 
|
Line 9,416: Line 9,309:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Ensure response contains Capacity for table and indexes if TOTAL in request
+
<nowiki>= COUNT </nowiki>
  
 
|
 
|
 
+
Returns the number of matching items, rather than the matching items themselves
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 9,435: Line 9,328:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Ensure response contains Capacity for indexes only (not table) if INDEXES in request
+
<nowiki>= SPECIFIC_ATTRIBUTES</nowiki>
  
 
|
 
|
 
+
Returns only the attributes listed in AttributesToGet
  
 
|
 
|
Line 9,454: Line 9,347:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Try empty, invalid values.
+
<nowiki>= &lt;empty value&gt;</nowiki>
  
 
|
 
|
 
+
error
  
 
|
 
|
Line 9,473: Line 9,366:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
'''ScanFilter'''
+
<nowiki>= “”</nowiki>
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,492: Line 9,385:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Ensure ScanFilter really filters?
+
<nowiki>= “Something else”</nowiki>
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,511: Line 9,404:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
Ensure multiple conditions are treated as "AND" operations
+
'''KeyConditions'''
  
 
|
 
|
Line 9,520: Line 9,413:
  
 
|
 
|
<center>P</center>
+
<center></center>
  
 
|
 
|
Line 9,530: Line 9,423:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Try nonexistent attribute name (let’s assume it will be added with some item later)
+
One correct field name
 +
 
 +
ComparisonOperator = "EQ"
  
 
|
 
|
 
+
Existing record should be returned (STRING, NUMBER, BOOLEAN)
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 9,549: Line 9,444:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Try empty line instead of attribute name
+
One correct field name
 +
 
 +
ComparisonOperator = "EQ"
 +
 
 +
AttributeValue is SET of Number or String or Boolean
  
 
|
 
|
Line 9,558: Line 9,457:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 9,568: Line 9,467:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Assign empty line, None to ScanFilter
+
One correct field name
 +
 
 +
ComparisonOperator = "EQ"
 +
 
 +
Two AttributeValues specified (NUMBER and STRING)
  
 
|
 
|
Line 9,577: Line 9,480:
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 9,587: Line 9,490:
 
|-
 
|-
 
|
 
|
<center></center>
+
<center>Q-</center>
  
 
|
 
|
(AttributeValueList)
+
One correct field name (BINARY)
 +
 
 +
ComparisonOperator = "EQ"
 +
 
 +
AttributeValue is of type NUMBER or STRING
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,606: Line 9,513:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Use single value for appropriate comparison
+
One INcorrect field name
 +
 
 +
ComparisonOperator = "EQ"
 +
 
 +
Valid comparison value
  
 
|
 
|
 
+
error ?
  
 
|
 
|
<center>P</center>
+
<center>N</center>
  
 
|
 
|
Line 9,625: Line 9,536:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Use 2-element list for BETWEEN and IN
+
One correct field name
 +
 
 +
ComparisonOperator = "EQ"
 +
 
 +
Comparison expression represents a combination thet does not exist in the actual table
  
 
|
 
|
 
+
No records returned
  
 
|
 
|
Line 9,644: Line 9,559:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Try to use 2+ element for IN
+
One correct field name
 +
 
 +
INVALID ComparisonOperator
 +
 
 +
Valid comparison value
  
 
|
 
|
?
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,663: Line 9,582:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Try to use 2-element-list for operation like EQ
+
One correct field name (Number or String or Boolean)
 +
 
 +
ComparisonOperator = "LE"
 +
 
 +
Valid comparison value  (STRING or NUMBER or BOOLEAN)
  
 
|
 
|
 
+
ok
  
 
|
 
|
<center>N</center>
+
<center>P</center>
  
 
|
 
|
Line 9,682: Line 9,605:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
  
 +
ComparisonOperator = "LE"
 +
 +
Two AttributeValues specified
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,701: Line 9,628:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "LE"
  
 +
AttributeValue is SET of Number or String or Boolean
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,720: Line 9,651:
 
|-
 
|-
 
|
 
|
<center>Sc-</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></center>
+
<center>P</center>
  
 
|
 
|
Line 9,739: Line 9,674:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "LT"
  
 +
Two AttributeValues specified
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,758: Line 9,697:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name (a set)
 +
 +
ComparisonOperator = "LT"
  
 +
AttributeValue is SET of the same type
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,777: Line 9,720:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
  
 +
ComparisonOperator = "GE"
 +
 +
Valid comparison value  (STRING or NUMBER or BOOLEAN)
  
 
|
 
|
 
+
ok
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,796: Line 9,743:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name (N type)
 +
 +
ComparisonOperator = "GE"
  
 +
Two (N and S) AttributeValues specified
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,815: Line 9,766:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "GE"
  
 +
AttributeValue is SET of Number or String or Boolean
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,834: Line 9,789:
 
|-
 
|-
 
|
 
|
<center>Sc-</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></center>
+
<center>P</center>
  
 
|
 
|
Line 9,853: Line 9,812:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
  
 +
ComparisonOperator = "GT"
 +
 +
Two AttributeValues specified
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,872: Line 9,835:
 
|-
 
|-
 
|
 
|
<center>Sc-</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></center>
+
<center>P</center>
  
 
|
 
|
Line 9,891: Line 9,858:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "BEGINS_WITH"
  
 +
Valid comparison value (STRING, BOOLEAN)
  
 
|
 
|
 
+
ok
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,910: Line 9,881:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One non-existent field name
  
 +
ComparisonOperator = "BEGINS_WITH"
 +
 +
Valid comparison value (STRING, BOOLEAN)
  
 
|
 
|
Line 9,919: Line 9,894:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,929: Line 9,904:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "BEGINS_WITH"
  
 +
Two AttributeValues specified
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,948: Line 9,927:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "BEGINS_WITH"
  
 +
AttributeValue is SET of Number or String or Boolean
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 9,967: Line 9,950:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
  
 +
ComparisonOperator = "BETWEEN"
 +
 +
Two valid comparison values
  
 
|
 
|
 
+
ok
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 9,986: Line 9,973:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One non-existent field name
  
 +
ComparisonOperator = "BETWEEN"
 +
 +
Two valid comparison values
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,005: Line 9,996:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "BETWEEN"
  
 +
Only one AttributeValue specified
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,024: Line 10,019:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
 +
 +
ComparisonOperator = "BETWEEN"
  
 +
AttributeValue is SET of Number or String or Boolean
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,043: Line 10,042:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
  
 +
ComparisonOperator = ""
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,062: Line 10,063:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
  
 +
ComparisonOperator = &lt;empty_value&gt;
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,081: Line 10,084:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
 +
One correct field name
  
 +
ComparisonOperator = “something_else”
  
 
|
 
|
 
+
error
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,100: Line 10,105:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Q-</center>
  
 
|
 
|
Line 10,117: Line 10,122:
  
  
|-
+
|}
|
+
 
<center>Sc-</center>
+
 
 +
=Scan=
  
|
 
  
  
 +
{| class="wikitable"
 +
|-
 
|
 
|
 +
<center>'''<nowiki>#</nowiki>'''</center>
  
 +
|
 +
<center>'''Description'''</center>
  
 
|
 
|
<center></center>
+
<center>'''Results'''</center>
  
 
|
 
|
<center></center>
+
<center>'''T'''</center>
  
 
|
 
|
 +
<center>'''Imp'''</center>
  
 +
|
 +
<center>'''Notes'''</center>
  
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
 
+
'''General'''
  
 
|
 
|
Line 10,157: Line 10,170:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center>Sc-1</center>
  
 
|
 
|
 
+
scan stops and returns results if processed data size exceeds 1 MB
  
 
|
 
|
Line 10,166: Line 10,179:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,179: Line 10,192:
  
 
|
 
|
 
+
Reproduce: Scan result is empty
  
 
|
 
|
Line 10,185: Line 10,198:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,198: Line 10,211:
  
 
|
 
|
 
+
Parallel scan topic - '''out of scope for now'''
  
 
|
 
|
Line 10,214: Line 10,227:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
 
+
'''TableName'''
  
 
|
 
|
Line 10,236: Line 10,249:
  
 
|
 
|
 
+
scan with only required parameter (table name)
  
 
|
 
|
Line 10,242: Line 10,255:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,255: Line 10,268:
  
 
|
 
|
 
+
scan if name length is 3
  
 
|
 
|
Line 10,261: Line 10,274:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,274: Line 10,287:
  
 
|
 
|
 
+
scan if name length is 255
  
 
|
 
|
Line 10,280: Line 10,293:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,293: Line 10,306:
  
 
|
 
|
 
+
scan with name length &lt; 3
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,312: Line 10,325:
  
 
|
 
|
 
+
scan with name length is &gt; 255
  
 
|
 
|
 
+
error?
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,331: Line 10,344:
  
 
|
 
|
 
+
upper-lower case in <nowiki>t.name</nowiki>
  
 
|
 
|
 
+
?
  
 
|
 
|
Line 10,350: Line 10,363:
  
 
|
 
|
 
+
non-existent table name
  
 
|
 
|
Line 10,356: Line 10,369:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,369: Line 10,382:
  
 
|
 
|
 
+
diff. symbols in t. name
  
 
|
 
|
Line 10,375: Line 10,388:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,388: Line 10,401:
  
 
|
 
|
 
+
scan request without required parameter - table name
  
 
|
 
|
Line 10,394: Line 10,407:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,404: Line 10,417:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
 
+
'''AttributesToGet'''
  
 
|
 
|
Line 10,426: Line 10,439:
  
 
|
 
|
 
+
Skip it: all attrs should be returned
  
 
|
 
|
Line 10,432: Line 10,445:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,445: Line 10,458:
  
 
|
 
|
 
+
include all params
  
 
|
 
|
 
+
?
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,464: Line 10,477:
  
 
|
 
|
 
+
empty list of attrs
  
 
|
 
|
Line 10,470: Line 10,483:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,483: Line 10,496:
  
 
|
 
|
 
+
the only attr in the list is non-key attr
  
 
|
 
|
Line 10,489: Line 10,502:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,502: Line 10,515:
  
 
|
 
|
 
+
the only attr in the list is attr that does not participate in a filter
  
 
|
 
|
Line 10,508: Line 10,521:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,521: Line 10,534:
  
 
|
 
|
 
+
try nonexistent attrs
  
 
|
 
|
 
+
should not be displayed in results?
  
 
|
 
|
Line 10,540: Line 10,553:
  
 
|
 
|
 +
Filter can find items, but selected attrs are not present in those items:
  
 +
selected attrs are present in some other items
  
 
|
 
|
Line 10,559: Line 10,574:
  
 
|
 
|
 +
Filter can find items, but selected attrs are not present in those items:
  
 +
selected attrs are not present in any items
  
 
|
 
|
Line 10,578: Line 10,595:
  
 
|
 
|
 
+
<nowiki>Repeat the same attr[s] in this list</nowiki>
  
 
|
 
|
Line 10,584: Line 10,601:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,594: Line 10,611:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
 
+
'''[http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html ExclusiveStartKey''']
  
 
|
 
|
Line 10,616: Line 10,633:
  
 
|
 
|
 
+
Use LastEvaluatedKey from the previous scan. '''How to ensure that the scan really starts from this item?'''
  
 
|
 
|
Line 10,622: Line 10,639:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,635: Line 10,652:
  
 
|
 
|
 
+
What if assign some existing key but scan operation was not executed before? No difference I think.
  
 
|
 
|
Line 10,641: Line 10,658:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,654: Line 10,671:
  
 
|
 
|
 
+
Assign nonexistent value of key attr.
  
 
|
 
|
Line 10,660: Line 10,677:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,673: Line 10,690:
  
 
|
 
|
 
+
Assign non-key attributes and their values. Try attrs of SET type?
  
 
|
 
|
Line 10,679: Line 10,696:
  
 
|
 
|
<center></center>
+
<center>N</center>
 
+
 
|
+
|
<center></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>Sc-</center>
+
<center>N</center>
 
 
|
 
 
 
 
 
|
 
 
 
 
 
|
 
<center></center>
 
  
 
|
 
|
Line 10,711: Line 11,380:
  
 
|
 
|
 
+
How ALL_PROJECTED_ATTRIBUTES should work?
  
 
|
 
|
Line 10,730: Line 11,399:
  
 
|
 
|
 
+
Set Select to empty line or other invalid value.
  
 
|
 
|
Line 10,736: Line 11,405:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,749: Line 11,418:
  
 
|
 
|
 
+
Use AttributesToGet together with Select equal to ALL_ATTRIBUTES or COUNT. What about ALL_PROJECTED_ATTRIBUTES?
  
 
|
 
|
Line 10,755: Line 11,424:
  
 
|
 
|
<center></center>
+
<center>N</center>
  
 
|
 
|
Line 10,765: Line 11,434:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
 
+
'''Segment '''
  
 
|
 
|
Line 10,787: Line 11,456:
  
 
|
 
|
 
+
'''parallel scan is out of scope for now. '''Should be ignored by MagnetoDB?'''
  
 
|
 
|
Line 10,803: Line 11,472:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
 
+
'''TotalSegments'''
  
 
|
 
|
Line 10,825: Line 11,494:
  
 
|
 
|
 
+
'''parallel scan is out of scope for now. Should be ignored by MagnetoDB?'''
  
 
|
 
|
Line 10,841: Line 11,510:
 
|-
 
|-
 
|
 
|
<center>Sc-</center>
+
<center></center>
  
 
|
 
|
 
+
'''Response'''
  
 
|
 
|
Line 10,863: Line 11,532:
  
 
|
 
|
 +
ConsumedCapacity: is returned only if requested and corresponds to requested data
  
 
|
 
  
  
 
|
 
|
<center></center>
 
  
|
 
<center></center>
 
  
 
|
 
|
 
+
<center>P</center>
 
 
|-
 
|
 
<center>Sc-</center>
 
 
 
|
 
 
 
 
 
|
 
 
 
 
 
|
 
<center></center>
 
  
 
|
 
|
Line 10,901: Line 11,553:
  
 
|
 
|
 
+
ConsumedCapacity: is empty if provisioned throughput is ignored now?
  
 
|
 
|
Line 10,907: Line 11,559:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,920: Line 11,572:
  
 
|
 
|
 
+
Count: Ensure the value is correct
  
 
|
 
|
Line 10,926: Line 11,578:
  
 
|
 
|
<center></center>
+
<center>P</center>
  
 
|
 
|
Line 10,939: Line 11,591:
  
 
|
 
|
 
+
Items: its length correspond to Count
  
 
|
 
|
Line 10,958: Line 11,610:
  
 
|
 
|
 
+
Items: should it be present if Select=COUNT?
  
 
|
 
|
Line 10,977: Line 11,629:
  
 
|
 
|
 
+
Items: ensure the items are correct
  
 
|
 
|
Line 10,996: Line 11,648:
  
 
|
 
|
 +
LastEvaluatedKey:
  
 +
Ensure it’s present if limit was used and/or reached
  
 
|
 
|
Line 11,015: Line 11,669:
  
 
|
 
|
 +
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)
  
 
|
 
|
Line 11,034: Line 11,690:
  
 
|
 
|
 
+
ScannedCount: Ensure the value is correct.
  
 
|
 
|
Line 11,049: Line 11,705:
  
 
|-
 
|-
|
 
<center>Sc-</center>
 
 
|
 
 
 
|
 
 
 
 
|
 
|
 
<center></center>
 
<center></center>
  
 
|
 
|
<center></center>
+
'''Exceptions'''
 
 
|
 
 
 
 
 
|-
 
|
 
<center>Sc-</center>
 
 
 
|
 
 
 
  
 
|
 
|
Line 11,091: Line 11,728:
  
 
|
 
|
 
+
Simulate ProvisionedThroughputExceededException
  
 
|
 
|
Line 11,110: Line 11,747:
  
 
|
 
|
 
+
ProvisionedThroughputExceededException: unable to reproduce w/o ProvisionedThroughput
  
 
|
 
|
Line 11,129: Line 11,766:
  
 
|
 
|
 
+
ResourceNotFoundException: request nonexistent table
  
 
|
 
|
Line 11,148: Line 11,785:
  
 
|
 
|
 +
ResourceNotFoundException:
  
 +
request nonexistent index
  
 
|
 
|
Line 11,167: Line 11,806:
  
 
|
 
|
 +
ResourceNotFoundException:
  
 +
request table in non Active state
  
 
|
 
|

Revision as of 21:36, 28 March 2014

KVSaaS Test Cases and Ideas

BatchGetItem

#
Description
Results
T
Imp
Notes

General



BGI-1

BatchGetItem contains all the correct mandatory parameters


P


BGI-2

BatchGetItem contains all the correct parameters


P


TableName



BGI-

The only table name (existing) specified


P


BGI-

Several existing table names specified


P


BGI-

3 symbols long


P


BGI-

255 symbols long


P


BGI-

Less than 3 symbols long


N


BGI-

More than 255 symbols long


N


BGI-

Non-existent name


N


BGI-

Empty (like =)


N


BGI-

= ""


N


BGI-

Mixed case letters in the name


N


RequestItems



(AttributesToGet)



BGI-

Option not specified (by default)

All attrs are returned

P


BGI-

All existing attrs


P


BGI-

Some existing attrs


P


BGI-

Only non-existing attributes


N


BGI-

No attrs specified (whereas the Option exists)


N


BGI-

Some existing and some non-existent attrs specified


N


BGI-

Attrs list looks strange like "" or "//', 123, abc##, etc


N


(Keys)



BGI-

Single "B" key specified


P


BGI-

"B" and "N" keys specified


P


BGI-

Single "SS" key specified


P


BGI-

"SS" and "NS" keys specified


P


BGI-

"B", "S", "SS" and "NS" keys specified


P


BGI-

Incorrect key name


N


BGI-

Incorrect key type


N


BGI-

Key type omitted


N


BGI-

Key name omitted


N


BGI-

Empty key name


N


BGI-

Empty key type


N


(ConsistentRead)



BGI-

By default (if not specified)


P


BGI-

= TRUE


P


BGI-

= FALSE


P


BGI-

= ""


N


BGI-

Just = symbol


N


BGI-

= "Another_value"


N


ReturnConsumedCapasity



BGI-

By default (if not specified)


P


BGI-

= "INDEXES"


P


BGI-

= "TOTAL"


P


BGI-

= "NONE"


P


BGI-

= ""


N


BGI-

Just "="


N


BGI-

= "Another_value"


N


Exceptions



BGI-

InternalServerError


N


BGI-

ProvisionedThroughputExceededException


N


BGI-

ResourceNotFoundException


N


Limitations



(Data volume)



BGI-

Specify BatchGet to retrieve less than 1MB of data

"UnprocessedKeys" contains no items

P


BGI-

Specify BatchGet to retrieve exactly 1MB of data

"UnprocessedKeys" contains no items

P


BGI-

Specify BatchGet to retrieve more than 1MB (and < 2MB) of data

"UnprocessedKeys" contains items exceeding 1MB limit

P


BGI-

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

P


(Items number)



BGI-

Specify less than 100 items in the Request


P


BGI-

Specify exactly 100 items in the Request


P


BGI-

Specify more than 100 items in the Request

error?

N


Response



BGI-

Contains "GlobalSecondaryIndexes" section if there is (are) such for the table


P


BGI-

Contains "LocalSecondaryIndexes" section if there is (are) such for the table


P


BGI-

Contains both GSI and LSI sections if there are such for the table


P


BGI-

Result contains:

  • "ConsumedCapacity":
    • CapacityUnits
    • GSI
    • LSI
    • Table
    • TableName
  • "Responses"
  • "UnprocessedKeys"


P


BGI-





BatchWriteItem

#
Description
Results
T
Imp
Notes

General



BWI-1

Complete set of correct mandatory options


P


BWI-2

Complete set of correct all options


P


PutRequest



BWI-10

Correct Item string AND

"N" : "string" value


P


BWI-11

Non-existent Item string AND

"N" : "string" value

Error + UnprocessedItems contains unprocessed PutRequest Items

N


BWI-12

EMPTY Item string AND

"N" : "string"

Error + UnprocessedItems contains unprocessed PutRequest Items

N


BWI-13

Correct Item string and

"NS" : ["string"] values



BWI-14

Correct Item string and

"B" : "string" value



BWI-15

Correct Item string and

"BS" : ["string"] values



BWI-16

Correct Item string and

"S" : "string" value



BWI-17

Correct Item string and

"N" : EMPTY value

ValidationException + UnprocessedItems contains unprocessed PutRequest Items


BWI-18

Correct Item string and

"<SOME_STRANGE_OR_EMPTY_VALUE>" : "string" value

ValidationException + UnprocessedItems contains unprocessed PutRequest Items


BWI-19

Correct Item string and

"NS" : "non-existent_string" value

ValidationException + UnprocessedItems contains unprocessed PutRequest Items


BWI-20




DeleteRequest



BWI-30

Correct Key string and

"N" : "string" value



BWI-31

Non-existent Key string and

"N" : "string" value

Error + UnprocessedItems contains unprocessed DeleteRequest Items


BWI-32

EMPTY Key string and

"N" : "string" value

Error + UnprocessedItems contains unprocessed DeleteRequest Items


BWI-33

correct Key string and

"NS" : ["string"] values



BWI-34

correct Key string and

"B" : "string" value



BWI-35

correct Key string and

"BS" : ["string"] values



BWI-36

correct Key string and

"S" : "string" value



BWI-37

Correct Key string and

"SS" : ["string"] values



CombinedRequest



BWI-40

Specify in one statement:

correct Key string for

DeleteRequest "N" : "string" value AND

correct Item string for

PutRequest "N" : "string" value



BWI-41

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



BWI-42

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


RequestItems (TableName)



BWI-50

correct table name and

correct PutRequest parameters for the Item

Line(s) added correctly


BWI-51

Specify 25 correct table names and

correct PutRequest parameters for the Items

Line(s) added correctly into all 25 tables


BWI-52

Specify 26 correct table names and

correct PutRequest parameters for the Items

error/exception (?)


BWI-53

correct table name and

correct DeleteRequest parameters for the Key

Line(s) deleted correctly


BWI-54

INcorrect table name

correct PutRequest parameters for an Item

Check that UnprocessedItems contains unprocessed PutRequest Items:

  • TableName < 3 symbols
  • TableName > 255 symbols
  • Non-existent table name

Exception


BWI-55

Correct table name and

correct PutRequest parameters for the Item

Make total request size more than 1 MB (how to?)

error


BWI-56

correct table name and

correct PutRequest parameters for the Item

Any individual item in a batch exceeds 64 KB (how to?)

error


ReturnItemCollectionMetrics



BWI-60

is NONE (by default)

no statistics returned


BWI-61

is SIZE

statistics about item collections, if any, that were modified during the operation are returned in the response


BWI-62

is <Something_else>

error/exception


ReturnConsumedCapacity



BWI-63

is NONE (by default)


ConsumedCapacity is not included in the response


BWI-64

is TOTAL

the response includes ConsumedCapacity data for tables and indexes


BWI-65

is INDEXES

the response includes ConsumedCapacity for indexes only


BWI-66

is <Something_else> (and empty)

error/exception


Exceptions



BWI-70

Simulate InternalServerError



BWI-71

Simulate ItemCollectionSizeLimitExceededException



BWI-72

Simulate ProvisionedThroughputExceededException



BWI-73

Simulate ResourceNotFoundException



BWI-





CreateTable

#
Description
Results
T
Imp
Notes

General



CreT-1

Create table without any optional attributes, only all mandatory


P


CreT-2

Create a table specifying ALL (including mandatory) the correct parameters


P


CreT-3

Try to create two tables with the same name in the same region

ResourceInUseException expected.

N


CreT-

Try to create two tables with the same name in two different regions.


N


CreT-

Verify first status is CREATING, then ACTIVE


P


CreT-

What happens if read/write to/from table in CREATING state? Possible to reproduce?


N


CreT-

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?



CreT-

Try to create table w/o some mandatory attribute: AttributeDefinitions, KeySchema, ProvisionedThroughput, TableName.


N


AttributeDefinitions



Number of attributes



CreT-

create table with 1 attr


P


CreT-

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?



CreT-

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 ?


AttrName



CreT-

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).


P


CreT-

Try lengh 255+1 for key and indexes attr.


N


CreT-

Check size of non-key / non-index-projected attr names


N


CreT-

Try to send attr names without attr types.


N


CreT-

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).


P


CreT-

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?



CreT-

Try to create a table with attribute of some SET type. It should not be allowed.



KeySchema



CreT-

Create table with a key of HASH type.


P


CreT-

Create table with a key of HASH and RANGE type.


P


CreT-

Try to enumerate key attrs in wrong order: RANGE and then HASH attrs in the KeySchema list


N


CreT-

Try to create a table only with RANGE key


N


CreT-

Try to leave the list empty


N


CreT-

Try to add more than one HASH and/or RANGE attr. In general, add more than 2 attrs to the list.


N


CreT-

Try keytype different from HASH and RANGE.


N


CreT-

Try not to mention key attr in Definitions but only in KeySchema.


N


CreT-

Try to mention attr names not defined in AttrDefinitions.


N


ProvisionedThroughput

(for now, MagnetoDB ignores these values.)



CreT-

Set positive values.


P


CreT-

Try to mention not all mandatory attrs


N


CreT-

Try to pass non-number, negative number


N


TableName



CreT-

Name length is 3


P


CreT-

Name length is 255


P


CreT-

Name length < 3


N


CreT-

Name length > 255


N


CreT-

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.”



CreT-

Provide an empty table name.

exception ?

N


LocalSecondaryIndexes



CreT-

Create index without some of mandatory attributes.


N


Number of indexes



CreT-

Create 1 index for a table


P


CreT-

Create 5 indexes for the table


P


CreT-

Create 6 indexes for the table


N


CreT-

Set LSI attribute as an empty list



CreT-

“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?



IndexName



CreT-

Create an index having 3 characters long name


P


CreT-

Create an index having 255 characters long name


P


CreT-

Create an index having 2 characters long name


N


CreT-

Create an index having 256 characters long name


N


CreT-

TO BE CLARIFIED: Is it case-sensitive? non-letters?



CreT-

Create 2 tables with similar index names.

successful

P


CreT-

Try to create 2 indexes with the same name in one table

error

N


KeySchema



CreT-

Create LSI with Hash different from table hash key (table should have H+R key).



CreT-

Create LSI for table with HASH w/o RANGE. Should fail. But will work for global indexes.



CreT-

Create similar indexes with different names (the same keys, etc)



CreT-

create an index just with HASH key, w/o RANGE



CreT-

‘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.”



CreT-

Test for PutItem: Ensure range key of LSI is not a mandatory attribute.



Projection



CreT-

Check usage of all projection types: KEYS_ONLY, INCLUDE, ALL. Query tests verify that it works as expected.


P


CreT-

Use NonKeyAttributes but skip ProjectionType


N


CreT-

Use NonKeyAttributes list with one attribute in it


P


CreT-

Use key attrs in the NonKeyAttributes list


N


CreT-

Make NonKeyAttributes list empty



N


CreT-

Insert some non-key attrs in NonKeyAttributes list when Pr.Type is KEYS_ONLY. Then - similar but with ALL case.


N


CreT-

Create a table with 20 non-key attrs in one LSI.


P


CreT-

Create a table with 21 non-key attrs in one LSI.


N


CreT-

Create a table with 20 non-key attrs in multiple LSIs.


P


CreT-

Create a table with 21 non-key attrs in diff. LSIs, without repetitions of attr names.


N


CreT-

Create a table with 21 non-key attrs in diff. LSIs, with repetitions of attr names between LSI’s.


N


GlobalSecondaryIndexes



(out of scope now)



Response



CreT-

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


P


CreT-

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)
P


CreT-

If LSI are not created, should this attr be present in response as empty list?



CreT-

Think how to check TableSizeBytes value.



CreT-

CreationDateTime verification: Find a way to get current time from the target system



Exceptions



CreT-

LimitExceededException:

Is related to in-progress states. Not possible to reproduce for now.


N


CreT-

ResourceInUseException:

Recreate existing table (the case was mentioned above)


N


CreT-

InternalServerError:

When this error [500] is expected and when some other error should appear?


N


Additional



CreT-

Create more than 255 tables


N


CreT-





DeleteItem

DeleteTable

#
Description
Results
T
Imp
Notes

General



DelT-1

Delete an existing table. Check if all the Response’s fields (see Table Description object) are equal to the appropriate table parameters


P


DelT-

Delete a non-existent table

ResourceNotFoundException

N


DelT-

Delete a table specifying “” as a name


N


DelT-

Delete a table specifying NULL as a name


N


DelT-

Delete a table w/o specifying any parameters


N


DelT-

Delete a table having a name that contains only 2 or 1 symbol


N


DelT-

Delete a table specifying a name that contains more than 255 symbols

ResourceNotFoundException ?

N


DelT-

Delete an existing table and, while the status is DELETING, run DeleteTable operation for the same table once again


P


Results Verification



DelT-




Exceptions



DelT-

Simulate InternalServerError exception. Ideas?


N


DelT-

Simulate LimitExceededException exception. Ideas?

Delete more than 10 tables in the same time


N


DelT-

Simulate ResourceInUseException exception. Ideas?

Delete a table while it is in use by some other operation


N


DelT-

Simulate ResourceNotFoundException exception. Other ideas?


N


DelT-




DelT-






DescribeTable

#
Description
Results
T
Imp
Notes

General



DesT-1

Run DescribeTable against the existing table. Check that all the required params are described correctly (see “Response Syntax” for DescribeTable statement)


P


DesT-

Run DescribeTable against the non-existent table (ResourceNotFoundException exception)


N


DesT-

Run DescribeTable specifying “” as a table name


N


DesT-

Run DescribeTable specifying NULL as a name


N


DesT-

Run DescribeTable w/o specifying any parameters


N


DesT-

Run DescribeTable specifying a name that contains only 2 or 1 symbol (causes an exception?)


N


DesT-

Run DescribeTable specifying a name that contains more than 255 symbols


N


DesT-

Simulate InternalServerError exception


N


DesT-




DesT-




DesT-





GetItem

#
Description
Results
T
Imp
Notes

General



GI-1

Get an item specifying correct mandatory attributes


P


GI-

Get an item specifying all the correct mandatory and optional ttributes


P


TableName



GI-

Valid (existing) table name


P
Y


GI-

Existing table name of 3 symbols


P
Y


GI-

Existing table name of 255 symbols


P
Y


GI-

From non-existent table name


N


GI-

Empty name (“”)


N


GI-

Less than 3 symbols long


N


GI-

More than 255 symbols long


N


AttributesToGet:



GI-

Specified, correct items in the list


P
Y


GI-

Section not specified


P
Y


GI-

“AttributesToGet” term not specified, but there is a list of items in the section

Exception/error

N


GI-

Section AttributesToGet is specified, but there is just an empty list (no items)

Exception/error

N


GI-

Specified more attributes than exist in the table

Exception/error

N


GI-

Incorrect attributes: Wrong names

Exception/error


GI-

Incorrect attributes: Empty values like ""

Exception/error

N


Key



GI-

One Key specified: “B”


P


GI-

One Key specified: “N”


P


GI-

One Key specified: “S”


P


GI-

One key: “BS”



GI-

One key: “NS”



GI-

One key: “SS”



GI-

Combination of "B", "N", "S" types



GI-

Combination of "B", "N", "S", "BS", "NS", "SS" types



GI-

Combination of “B”, “B”, "N", "N", “S”, “S”, “BS”, “BS”, "NS", "NS", “SS”, “SS” types



GI-

The whole section “Key” not specified

Exception/error

N


GI-

Section “Key” specified, but the section content is empty

Exception/error

N


GI-

One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")

Exception/error

N


GI-

In section “Key” there is a key of type “N” but a non-existent value specified for it

No items returned in Response

N
Y


ConsistentRead



GI-

= True


P


GI-

= False


P


GI-

Not specified


P


GI-

= <Something_else>


N


ReturnConsumedCapacity



GI-

= INDEXES


P


GI-

= TOTAL


P


GI-

= NONE


P


GI-

= <Something_else>


N


Exceptions



GI-

Simulate ConditionalCheckFailedException


N


GI-

Simulate InternalServerError


N


GI-

Simulate ItemCollectionSizeLimitExceededException


N


GI-

Simulate ProvisionedThroughputExceededException


N


GI-

Simulate ResourceNotFoundException


N


GI-





ListTables

#
Description
Results
T
Imp
Notes

General



LisT-1

Neither Limit nor ExclusiveStartTableName specified:

Empty result (if there are no tables in this Tenant and Datacenter were created)


P


LisT-2

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)


P


LisT-3

Neither Limit nor ExclusiveStartTableName specified:

The List does not contain the tables having “CREATING” status


P


LisT-4

Incorrect spelling of ListTables specified like: LisTables or Listables or ListTable, etc


N


LisT-

There is no “{” or “}” in the statement


N


Limit



LisT-
The limit option is not specified and

The number of existing tables is 5

1 page containing all 5 tables

P


LisT-

The limit option is not specified and

The number of tables is 100

1 page containing all 100 tables

P


LisT-

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

P


LisT-

Limit = 3 and

"LastEvaluatedTableName" = <3d_table_name_in_the_table_list_of_the_previous_TC> 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

P


LisT-

Limit = 0

Error/exception

N


LisT-

Limit = -2

Error/exception

N


LisT-

Limit = "Some_strange_string"

Error/exception

N


LisT-

Limit = ""

Error/exception

N


LisT-

Limit = <nothing>

Error/exception

N


LisT-

Case sensitivity (?)



ExclusiveStartTableName



LisT-

The "ExclusiveStartTableName" option not specified


P


LisT-

An existing "ExclusiveStartTableName" specified


P


LisT-

An existing "ExclusiveStartTableName" specified when:

There were no previous runs of ListTables statement


P


LisT-

An existing "ExclusiveStartTableName" specified when:

Previous run of ListTables statement returned just one page


P


LisT-

"ExclusiveStartTableName" is 3 symbols long


P


LisT-

Table name is 255 symbols long


P


LisT-

Table name is 1 or 2 symbols long


N


LisT-

Table name is 256 or more symbols long


N


LisT-

A non-existent table name specified


N


LisT-

No table names specified


N


LisT-

An empty (like "ExclusiveStartTableName" :) table name specified


N


Tenant



LisT-

Switch to another tenant and

Perform ListTables operations:

The "ExclusiveStartTableName" option not specified

A unique (pertinent to this specific Tenant) list of tables returned

P


LisT-

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

P


DataCenter (endpoint)

Switch to another Datacenter and

Perform ListTables operations:



LisT-

The "ExclusiveStartTableName" option not specified

A unique (pertinent to this specific Datacenter) list of tables returned

P


LisT-

An existing table name specified in "ExclusiveStartTableName"

A unique (pertinent to this specific Datacenter) list of tables returned starting from the specified table name

P


LisT-





PutItem

Note: For each test, check the ResponseValue for required options and values

#
Description
Results
T
Imp
Notes

General






PI-1

Specify correct required fields only


P


PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-




PI-





Query

#
Description
Results
T
Imp
Notes

General



Q-1

Query statement contains the correct mandatory parameters only


P


Q-

Query statement contains ALL the correct parameters


P


TableName



Q-

Valid name specified


P
Y


Q-

Non-existent name


N
Y


Q-

Empty name


N


Q-

Less than 3 symbols long


N


Q-

More than 255 symbols long


N


Q-

Exactly 3 and 255 symbols long


P


Q-

Upper and lower cases



AttributesToGet



Q-

Specified correct attributes


P


Q-

Not specified



Q-

Specified more attributes than exist in the table


N


Q-

Specified incorrect attributes: wrong names


N


Q-

Specified incorrect attributes: empty values like ""


N


Q-

Exact correct list:

Select = SPECIFIC_ATTRIBUTES

Correct result

P


Q-

Exact correct list:

Select = ALL_ATTRIBUTES

error

N


Q-

Exact correct list:

Select = ALL_PROJECTED_ATTRIBUTES

error

N


Q-

Exact correct list:

Select = COUNT

error

N


Q-

Exact correct list:

Select = “”

error

N


Q-

Exact correct list:

Select = “something_else”

error

N


Q-

The option is not specified



Q-

Completely incorrect list


N


Q-

Some correct and some incorrect names in the list


N


Q-

Empty list


N


Q-

Not specified


P


KeyConditions



Q-

Key "B" specified


P


Q-

Key "N" specified


P


Q-

Key "S" specified


P


Q-

Key "BS" specified


P


Q-

Key "NS" specified


P


Q-

Key "SS" specified


P


Q-

Combination of "B" + "N" + "S"


P


Q-

Combination of all 6 types ("B" + "N" + "S" + "BS" + "NS" + "SS")


P


Q-

Not specified


P
Y


Q-

One incorrect key specified: something that is not in ("B", "N", "S", "BS", "NS", "SS")


N


ConsistentRead



Q-

= True


P


Q-

Option not specified


P


Q-

= “Something else”

error

N


ReturnConsumedCapacity



Q-

= "INDEXES"


P


Q-

= "TOTAL"


P


Q-

= "NONE"


P


Q-

= “Something_else”


N


Q-

= “”


N


Q-

= <Empty value>


N


ExclusiveStartKey



Q-

is String

Records are taken starting by LastKeyValue of the previous operation

P


Q-

is Number

Records are taken starting by LastKeyValue of the previous operation

P


Q-

is Binary

Records are taken starting by LastKeyValue of the previous operation

P


is S or N or B, but there was no previous operations

What’s the content of ExclusiveStartKey?


Q-

is Set of S or N or B

error

N


Q-

Not specified


P


Q-

Incorrect ExclusiveStartKey

Error

N


IndexName



Q-

correct Local SI (Secondary Index)


P


Q-

correct Global SI


P


Q-

non-existent LSI


N


Q-

non-existent GSI


N


Q-

Not specified


P


Q-

Name length < 3 symbols

error

N


Q-

Name length > 255 symbols

error

N


Q-

Empty index name

error


Q-

Upper case index name

?


Q-

Lower case index name

?


Q-

Mix of Upper/lower case letters in index name

?


Limit



Q-

Valid statement that returns > 10 lines,

Limit = 5

5 lines returned and LastEvaluatedKey points to the last returned line

P


Q-

Valid statement that returns N lines

Limit = N*2

N lines returned and LastEvaluatedKey points to the last returned line

P


Q-

Valid statement that returns N (< 5) lines

Limit = 5

N lines returned and LastEvaluatedKey points to the last returned line

P


Q-

Valid statement that returns N (< 5) lines

Limit = 0

?


Q-

Valid statement that returns data size > 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


ScanIndexForward



Q-

= TRUE (by default)

data are sorted by ascending of the index key

P


Q-

= FALSE

data are sorted by descending of the index key

P


Q-

= “Another value”

error

N


Q-

= <empty value>

?


Select



Q-

= ALL_ATTRIBUTES

Returns all of the item attributes from the specified table or index

P


Q-

= ALL_PROJECTED_ATTRIBUTES

Retrieves all attributes which have been projected into the index

P


Q-

= COUNT

Returns the number of matching items, rather than the matching items themselves


Q-

= SPECIFIC_ATTRIBUTES

Returns only the attributes listed in AttributesToGet

P


Q-

= <empty value>

error

N


Q-

= “”

error

N


Q-

= “Something else”

error

N


KeyConditions



Q-

One correct field name

ComparisonOperator = "EQ"

Existing record should be returned (STRING, NUMBER, BOOLEAN)

P


Q-

One correct field name

ComparisonOperator = "EQ"

AttributeValue is SET of Number or String or Boolean


P


Q-

One correct field name

ComparisonOperator = "EQ"

Two AttributeValues specified (NUMBER and STRING)


P


Q-

One correct field name (BINARY)

ComparisonOperator = "EQ"

AttributeValue is of type NUMBER or STRING

error?

N


Q-

One INcorrect field name

ComparisonOperator = "EQ"

Valid comparison value

error ?

N


Q-

One correct field name

ComparisonOperator = "EQ"

Comparison expression represents a combination thet does not exist in the actual table

No records returned

P


Q-

One correct field name

INVALID ComparisonOperator

Valid comparison value

error?

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "LE"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name

ComparisonOperator = "LE"

Two AttributeValues specified

error?

N


Q-

One correct field name

ComparisonOperator = "LE"

AttributeValue is SET of Number or String or Boolean

error?

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "LT"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name

ComparisonOperator = "LT"

Two AttributeValues specified

error?

N


Q-

One correct field name (a set)

ComparisonOperator = "LT"

AttributeValue is SET of the same type

error?

N


Q-

One correct field name

ComparisonOperator = "GE"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name (N type)

ComparisonOperator = "GE"

Two (N and S) AttributeValues specified

error

N


Q-

One correct field name

ComparisonOperator = "GE"

AttributeValue is SET of Number or String or Boolean

error

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "GT"

Valid comparison value (STRING or NUMBER or BOOLEAN)

ok

P


Q-

One correct field name

ComparisonOperator = "GT"

Two AttributeValues specified

error?

N


Q-

One correct field name (Number or String or Boolean)

ComparisonOperator = "GT"

AttributeValue is SET of Number or String or Boolean

ok

P


Q-

One correct field name

ComparisonOperator = "BEGINS_WITH"

Valid comparison value (STRING, BOOLEAN)

ok

P


Q-

One non-existent field name

ComparisonOperator = "BEGINS_WITH"

Valid comparison value (STRING, BOOLEAN)


P


Q-

One correct field name

ComparisonOperator = "BEGINS_WITH"

Two AttributeValues specified

error

N


Q-

One correct field name

ComparisonOperator = "BEGINS_WITH"

AttributeValue is SET of Number or String or Boolean

error

N


Q-

One correct field name

ComparisonOperator = "BETWEEN"

Two valid comparison values

ok

P


Q-

One non-existent field name

ComparisonOperator = "BETWEEN"

Two valid comparison values

error

N


Q-

One correct field name

ComparisonOperator = "BETWEEN"

Only one AttributeValue specified

error

N


Q-

One correct field name

ComparisonOperator = "BETWEEN"

AttributeValue is SET of Number or String or Boolean

error

N


Q-

One correct field name

ComparisonOperator = ""

error

N


Q-

One correct field name

ComparisonOperator = <empty_value>

error

N


Q-

One correct field name

ComparisonOperator = “something_else”

error

N


Q-





Scan

#
Description
Results
T
Imp
Notes

General



Sc-1

scan stops and returns results if processed data size exceeds 1 MB


P


Sc-

Reproduce: Scan result is empty


P


Sc-

Parallel scan topic - out of scope for now



TableName



Sc-

scan with only required parameter (table name)


P


Sc-

scan if name length is 3


P


Sc-

scan if name length is 255


P


Sc-

scan with name length < 3

error?

N


Sc-

scan with name length is > 255

error?

N


Sc-

upper-lower case in t.name

?


Sc-

non-existent table name


N


Sc-

diff. symbols in t. name


N


Sc-

scan request without required parameter - table name


N


AttributesToGet



Sc-

Skip it: all attrs should be returned


P


Sc-

include all params

?

P


Sc-

empty list of attrs


N


Sc-

the only attr in the list is non-key attr


P


Sc-

the only attr in the list is attr that does not participate in a filter


P


Sc-

try nonexistent attrs

should not be displayed in results?


Sc-

Filter can find items, but selected attrs are not present in those items:

selected attrs are present in some other items



Sc-

Filter can find items, but selected attrs are not present in those items:

selected attrs are not present in any items



Sc-

Repeat the same attr[s] in this list


N


ExclusiveStartKey



Sc-

Use LastEvaluatedKey from the previous scan. How to ensure that the scan really starts from this item?


P


Sc-

What if assign some existing key but scan operation was not executed before? No difference I think.


N


Sc-

Assign nonexistent value of key attr.


N


Sc-

Assign non-key attributes and their values. Try attrs of SET type?


N


Limit



Sc-

Verify just the Limit number of items was scanned and LastEvaluatedKey is present in response


P


Sc-

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


P


Sc-

Try empty, negative value, zero.


P


ReturnConsumedCapacity



Sc-

Ensure response does not contain ConsumedCapacity (neither for table nor index(es)) if ReturnConsumedCapacity not present or equal to None in request


P


Sc-

Ensure response contains Capacity for table and indexes if TOTAL in request


P


Sc-

Ensure response contains Capacity for indexes only (not table) if INDEXES in request


P


Sc-

Try empty, invalid values.


N


ScanFilter



Sc-

Ensure ScanFilter really filters?



Sc-

Ensure multiple conditions are treated as "AND" operations


P


Sc-

Try nonexistent attribute name (let’s assume it will be added with some item later)


N


Sc-

Try empty line instead of attribute name


N


Sc-

Assign empty line, None to ScanFilter


N


(AttributeValueList)



Sc-

Use single value for appropriate comparison


P


Sc-

Use 2-element list for BETWEEN and IN


P


Sc-

Try to use 2+ element for IN

?


Sc-

Try to use 2-element-list for operation like EQ


N


Sc-

Try empty list


N


Sc-

Try to skip this parameter at all


N


Sc-

Try data type different from attribute data type. For example,

{"S":"6"} vs {"N":"6"}.

does-not-match expected.

N


Sc-

About SETs: most of operators do not support SET types:

Try to insert SET value for operator that does not support SET


N


Sc-

About SETs: most of operators do not support SET types:

Ensure appropriate operators really support SETs.


P


(ComparisonOperator)



Sc-

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.


P


Sc-

Verify each comparison operator is supported and compares correctly.


P


Sc-

Try invalid value for comp. operator (like EQINVALID)


N


Select



Sc-

Ensure ALL_ATTRIBUTES return all attributes, especially if different items have different attributes.


P


Sc-

Ensure COUNT return just count, not items themselves.


P


Sc-

Ensure ALL_PROJECTED_ATTRIBUTES returns all attrs projected to the index. Should I request table or index?


P


Sc-

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).


P


Sc-

Try to set Select=SPECIFIC_ATTRIBUTES if AttributesToGet was not set.


N


Sc-

How ALL_PROJECTED_ATTRIBUTES should work?



Sc-

Set Select to empty line or other invalid value.


N


Sc-

Use AttributesToGet together with Select equal to ALL_ATTRIBUTES or COUNT. What about ALL_PROJECTED_ATTRIBUTES?


N


Segment



Sc-

parallel scan is out of scope for now. Should be ignored by MagnetoDB?



TotalSegments



Sc-

parallel scan is out of scope for now. Should be ignored by MagnetoDB?



Response



Sc-

ConsumedCapacity: is returned only if requested and corresponds to requested data



P


Sc-

ConsumedCapacity: is empty if provisioned throughput is ignored now?


P


Sc-

Count: Ensure the value is correct


P


Sc-

Items: its length correspond to Count



Sc-

Items: should it be present if Select=COUNT?



Sc-

Items: ensure the items are correct



Sc-

LastEvaluatedKey:

Ensure it’s present if limit was used and/or reached



Sc-

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)



Sc-

ScannedCount: Ensure the value is correct.



Exceptions



Sc-

Simulate ProvisionedThroughputExceededException



Sc-

ProvisionedThroughputExceededException: unable to reproduce w/o ProvisionedThroughput



Sc-

ResourceNotFoundException: request nonexistent table



Sc-

ResourceNotFoundException:

request nonexistent index



Sc-

ResourceNotFoundException:

request table in non Active state



Sc-





UpdateItem

UpdateTable

==