public void ProcessWaitingOpsTest()
        {
            TransactionManager target = new TransactionManager();
            target.ProcessWaitingOps();
            Assert.AreEqual(0, target.waitingOps.Count);
            Assert.AreEqual(0, target.waitingTransactions.Count);

            target.activeTransactions[1] = new Transaction(1, 1);
            target.activeTransactions[2] = new Transaction(2, 1);
            target.activeTransactions[2].CurrentOp = new Operation(Enumerations.OperationMode.Read, 2, 4);
            Assert.IsNull(target.activeTransactions[1].CurrentOp);
            Assert.IsNotNull(target.activeTransactions[2].CurrentOp);
            target.waitingOps.Add(new Operation(Enumerations.OperationMode.Write, 1, 2, 2));
            target.waitingOps.Add(new Operation(Enumerations.OperationMode.Read, 2, 2));

            target.ProcessWaitingOps();
            Assert.AreEqual(1, target.waitingOps.Count);
            Assert.AreEqual(Enumerations.OperationMode.Write, target.activeTransactions[1].CurrentOp.OpMode);
            Assert.AreEqual(2, target.waitingOps[0].TransactionNumber);
            Assert.AreEqual(1, target.activeTransactions[1].CurrentOp.TransactionNumber);
            Assert.AreEqual(2, target.activeTransactions[1].CurrentOp.DataItem);
            Assert.AreEqual(2, target.activeTransactions[1].CurrentOp.NewValue);

            target.activeTransactions[2].CurrentOp = null;
            target.ProcessWaitingOps();
            Assert.AreEqual(0, target.waitingOps.Count);
            Assert.AreEqual(2, target.activeTransactions[2].CurrentOp.TransactionNumber);
            Assert.AreEqual(2, target.activeTransactions[2].CurrentOp.DataItem);
            Assert.AreEqual(Enumerations.OperationMode.Read, target.activeTransactions[2].CurrentOp.OpMode);
        }