public void ProcessNewOpsTest()
        {
            TransactionManager target = new TransactionManager();
            target.IncrementTimeStamp();
            string inputString = "begin(T1);beginRO(T2)";
            target.ProcessNewOps(inputString);
            Assert.AreEqual(2, target.activeTransactions.Keys.Count);
            Assert.AreEqual(1, target.activeTransactions[1].Id);
            Assert.IsNull(target.activeTransactions[1].CurrentOp);
            Assert.AreEqual(Enumerations.Status.Active, target.activeTransactions[1].CurrentStatus);
            Assert.AreEqual(1, target.activeTransactions[1].TimeStamp);
            Assert.AreEqual(false, target.activeTransactions[1].ReadOnly);
            Assert.IsNull(target.activeTransactions[1].CurrentOp);
            Assert.AreEqual(2, target.activeTransactions[2].Id);
            Assert.IsNull(target.activeTransactions[2].CurrentOp);
            Assert.AreEqual(Enumerations.Status.Active, target.activeTransactions[2].CurrentStatus);
            Assert.AreEqual(1, target.activeTransactions[2].TimeStamp);
            Assert.AreEqual(true, target.activeTransactions[2].ReadOnly);
            Assert.IsNull(target.activeTransactions[2].CurrentOp);

            inputString = "W(T1, x5,6);R(T2, x4)";
            target.ProcessNewOps(inputString);
            Assert.AreEqual(2, target.activeTransactions.Keys.Count);
            Assert.AreEqual(Enumerations.OperationMode.Write, target.activeTransactions[1].CurrentOp.OpMode);
            Assert.AreEqual(1, target.activeTransactions[1].CurrentOp.TransactionNumber);
            Assert.AreEqual(1, target.activeTransactions[1].CurrentOp.TimeStamp);
            Assert.AreEqual(false, target.activeTransactions[1].CurrentOp.ReadOnly);
            Assert.AreEqual(6, target.activeTransactions[1].CurrentOp.NewValue);
            Assert.AreEqual(Enumerations.OperationMode.Read, target.activeTransactions[2].CurrentOp.OpMode);
            Assert.AreEqual(2, target.activeTransactions[2].CurrentOp.TransactionNumber);
            Assert.AreEqual(1, target.activeTransactions[2].CurrentOp.TimeStamp);
            Assert.AreEqual(true, target.activeTransactions[2].CurrentOp.ReadOnly);
            Assert.AreEqual(-1, target.activeTransactions[2].CurrentOp.NewValue);

            target.ProcessNewOps(inputString);
            Assert.AreEqual(2, target.waitingOps.Count);
        }