public void TestPostProcessing1Event() { TransactionExecution texUpdate = new TransactionExecution(null, this.versionDb); texUpdate.DEBUG_MODE = true; while (texUpdate.Progress == TxProgress.Initi) { this.versionDb.Visit(RedisVersionDb.TX_TABLE, 0); texUpdate.InitTx(); } texUpdate.Read(TABLE_ID, DEFAULT_KEY, out bool received, out object payload); while (!received) { this.versionDb.Visit(TABLE_ID, 0); texUpdate.Read(TABLE_ID, DEFAULT_KEY, out received, out payload); } texUpdate.Update(TABLE_ID, DEFAULT_KEY, "value_update"); texUpdate.Upload(); while (texUpdate.CurrentProc == null) { this.versionDb.Visit(TABLE_ID, 0); this.versionDb.Visit(RedisVersionDb.TX_TABLE, 0); texUpdate.Upload(); } texUpdate.Abort(); while (texUpdate.CurrentProc != new Procedure(texUpdate.PostProcessingAfterAbort)) { this.versionDb.Visit(RedisVersionDb.TX_TABLE, 0); texUpdate.Abort(); } texUpdate.PostProcessingAfterAbort(); while (texUpdate.Progress != TxProgress.Close) { this.versionDb.Visit(TABLE_ID, 0); texUpdate.PostProcessingAfterAbort(); } Assert.AreEqual(null, this.GetVersionByKey(2L)); VersionEntry versionEntry = this.GetVersionByKey(1L); Assert.AreEqual(0L, versionEntry.BeginTimestamp); Assert.AreEqual(long.MaxValue, versionEntry.EndTimestamp); Assert.AreEqual(-1L, versionEntry.TxId); }