@@ -209,6 +209,18 @@ module {:options "-functionSyntax:4"} DdbEncryptionTestVectors {
209
209
var res := client. DeleteTable (DDB.DeleteTableInput(TableName := TableName));
210
210
}
211
211
212
+ method SetupTestTable (writeConfig : TableConfig , readConfig : TableConfig )
213
+ returns (wClient : DDB. IDynamoDBClient, rClient : DDB. IDynamoDBClient)
214
+ ensures wClient. ValidState () && rClient. ValidState ()
215
+ ensures fresh (wClient) && fresh (wClient. Modifies)
216
+ ensures fresh (rClient) && fresh (rClient. Modifies)
217
+ {
218
+ wClient :- expect newGazelle (writeConfig);
219
+ rClient :- expect newGazelle (readConfig);
220
+ DeleteTable (wClient);
221
+ var _ :- expect wClient. CreateTable (schemaOnEncrypt);
222
+ }
223
+
212
224
function GetUsed (q : SimpleQuery ) : (DDB. ExpressionAttributeNameMap, DDB. ExpressionAttributeValueMap)
213
225
{
214
226
TrimMaps (q.keyExpr.UnwrapOr(""), q. filterExpr. UnwrapOr (""), names, values)
@@ -741,10 +753,7 @@ module {:options "-functionSyntax:4"} DdbEncryptionTestVectors {
741
753
742
754
method BasicIoTestBatchWriteItem (writeConfig : TableConfig , readConfig : TableConfig , records : seq <Record >)
743
755
{
744
- var wClient :- expect newGazelle (writeConfig);
745
- var rClient :- expect newGazelle (readConfig);
746
- DeleteTable (wClient);
747
- var _ :- expect wClient. CreateTable (schemaOnEncrypt);
756
+ var wClient, rClient := SetupTestTable (writeConfig, readConfig);
748
757
var i := 0;
749
758
while i < |records| {
750
759
var count := 10;
@@ -780,10 +789,7 @@ module {:options "-functionSyntax:4"} DdbEncryptionTestVectors {
780
789
781
790
method BasicIoTestTransactWriteItems (writeConfig : TableConfig , readConfig : TableConfig , records : seq <Record >)
782
791
{
783
- var wClient :- expect newGazelle (writeConfig);
784
- var rClient :- expect newGazelle (readConfig);
785
- DeleteTable (wClient);
786
- var _ :- expect wClient. CreateTable (schemaOnEncrypt);
792
+ var wClient, rClient := SetupTestTable (writeConfig, readConfig);
787
793
var i := 0;
788
794
while i < |records| {
789
795
var count := 10;
@@ -839,10 +845,7 @@ module {:options "-functionSyntax:4"} DdbEncryptionTestVectors {
839
845
840
846
method BasicIoTestExecuteStatement (writeConfig : TableConfig , readConfig : TableConfig )
841
847
{
842
- var wClient :- expect newGazelle (writeConfig);
843
- var rClient :- expect newGazelle (readConfig);
844
- DeleteTable (wClient);
845
- var _ :- expect wClient. CreateTable (schemaOnEncrypt);
848
+ var wClient, rClient := SetupTestTable (writeConfig, readConfig);
846
849
847
850
// Create a PartiQL INSERT statement
848
851
// The dynamodb attributes are random and non-existent because ExecuteStatement is supposed to be failed before going into dynamodb.
@@ -883,10 +886,7 @@ module {:options "-functionSyntax:4"} DdbEncryptionTestVectors {
883
886
884
887
method BasicIoTestExecuteTransaction (writeConfig : TableConfig , readConfig : TableConfig )
885
888
{
886
- var wClient :- expect newGazelle (writeConfig);
887
- var rClient :- expect newGazelle (readConfig);
888
- DeleteTable (wClient);
889
- var _ :- expect wClient. CreateTable (schemaOnEncrypt);
889
+ var wClient, rClient := SetupTestTable (writeConfig, readConfig);
890
890
891
891
// Create a PartiQL transaction with INSERT and SELECT statements
892
892
// The dynamodb attributes are random and non-existent because ExecuteTransaction is supposed to fail before going to dynamodb
@@ -925,10 +925,7 @@ module {:options "-functionSyntax:4"} DdbEncryptionTestVectors {
925
925
926
926
method BasicIoTestBatchExecuteStatement (writeConfig : TableConfig , readConfig : TableConfig )
927
927
{
928
- var wClient :- expect newGazelle (writeConfig);
929
- var rClient :- expect newGazelle (readConfig);
930
- DeleteTable (wClient);
931
- var _ :- expect wClient. CreateTable (schemaOnEncrypt);
928
+ var wClient, rClient := SetupTestTable (writeConfig, readConfig);
932
929
933
930
// Create a batch of PartiQL statements
934
931
// The dynamodb attributes are random and non-existent because BatchExecuteStatement is supposed to fail before going into dynamodb
0 commit comments