@@ -111,26 +111,11 @@ func TestTxSimulatorGetResults(t *testing.T) {
111
111
simulator .GetState ("ns2" , "key2" )
112
112
simulator .GetPrivateData ("ns2" , "coll2" , "key2" )
113
113
simulator .SetState ("ns2" , "key2" , []byte ("value2" ))
114
- // get simulation results and verify that this contains rwset for both the namespaces "ns1" and "ns2"
115
- simulationResults2 , err := simulator .GetTxSimulationResults ()
116
- assert .Equal (t , 3 , len (simulationResults2 .PubSimulationResults .NsRwset ))
117
- // clone freeze simulationResults2
118
- buff2 := new (bytes.Buffer )
119
- assert .NoError (t , gob .NewEncoder (buff2 ).Encode (simulationResults2 ))
120
- frozenSimulationResults2 := & ledger.TxSimulationResults {}
121
- assert .NoError (t , gob .NewDecoder (buff2 ).Decode (& frozenSimulationResults2 ))
122
-
123
- // use the same simulator further to operate on different keys in the namespcace "ns1"
124
- simulator .GetState ("ns1" , "key3" )
125
- simulator .GetPrivateData ("ns1" , "coll3" , "key3" )
126
- simulator .SetState ("ns1" , "key3" , []byte ("value3" ))
127
- // get simulation results and verify that this contains rwset for both the namespaces "ns1" and "ns2"
128
- simulationResults3 , err := simulator .GetTxSimulationResults ()
129
- assert .Equal (t , 3 , len (simulationResults3 .PubSimulationResults .NsRwset ))
130
-
114
+ // get simulation results and verify that an error is raised when obtaining the simulation results more than once
115
+ _ , err = simulator .GetTxSimulationResults ()
116
+ assert .Error (t , err ) // calling 'GetTxSimulationResults()' more than once should raise error
131
117
// Now, verify that the simulator operations did not have an effect on privously obtained results
132
118
assert .Equal (t , frozenSimulationResults1 , simulationResults1 )
133
- assert .Equal (t , frozenSimulationResults2 , simulationResults2 )
134
119
135
120
// Call 'Done' and all the data get/set operations after calling 'Done' should fail.
136
121
simulator .Done ()
@@ -305,9 +290,9 @@ func testTxPhantomValidation(t *testing.T, env testEnv) {
305
290
s1 .SetState ("ns" , "key4" , []byte ("value4" ))
306
291
s1 .SetState ("ns" , "key5" , []byte ("value5" ))
307
292
s1 .SetState ("ns" , "key6" , []byte ("value6" ))
308
- s1 .Done ()
309
293
// validate and commit RWset
310
294
txRWSet1 , _ := s1 .GetTxSimulationResults ()
295
+ s1 .Done () // explicitly calling done after obtaining the results to verify FAB-10788
311
296
txMgrHelper .validateAndCommitRWSet (txRWSet1 .PubSimulationResults )
312
297
313
298
// simulate tx2
@@ -319,8 +304,8 @@ func testTxPhantomValidation(t *testing.T, env testEnv) {
319
304
}
320
305
}
321
306
s2 .DeleteState ("ns" , "key3" )
322
- s2 .Done ()
323
307
txRWSet2 , _ := s2 .GetTxSimulationResults ()
308
+ s2 .Done ()
324
309
325
310
// simulate tx3
326
311
s3 , _ := txMgr .NewTxSimulator ("test_tx3" )
@@ -331,9 +316,8 @@ func testTxPhantomValidation(t *testing.T, env testEnv) {
331
316
}
332
317
}
333
318
s3 .SetState ("ns" , "key3" , []byte ("value3_new" ))
334
- s3 .Done ()
335
319
txRWSet3 , _ := s3 .GetTxSimulationResults ()
336
-
320
+ s3 . Done ()
337
321
// simulate tx4
338
322
s4 , _ := txMgr .NewTxSimulator ("test_tx4" )
339
323
itr4 , _ := s4 .GetStateRangeScanIterator ("ns" , "key4" , "key6" )
@@ -343,8 +327,8 @@ func testTxPhantomValidation(t *testing.T, env testEnv) {
343
327
}
344
328
}
345
329
s4 .SetState ("ns" , "key3" , []byte ("value3_new" ))
346
- s4 .Done ()
347
330
txRWSet4 , _ := s4 .GetTxSimulationResults ()
331
+ s4 .Done ()
348
332
349
333
// txRWSet2 should be valid
350
334
txMgrHelper .validateAndCommitRWSet (txRWSet2 .PubSimulationResults )
0 commit comments