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