Пример #1
0
        public void DataManagerConstructorTest()
        {
            DataManager target = new DataManager(1);
            int i = 0;
            Assert.AreEqual(20, target.Read(2, 1));
            Assert.AreEqual(40, target.Read(4, 1));
            Assert.AreEqual(60, target.Read(6, 1));
            Assert.AreEqual(80, target.Read(8, 1));
            Assert.AreEqual(100, target.Read(10, 1));
            Assert.AreEqual(120, target.Read(12, 1));
            Assert.AreEqual(140, target.Read(14, 1));
            Assert.AreEqual(160, target.Read(16, 1));
            Assert.AreEqual(180, target.Read(18, 1));
            Assert.AreEqual(200, target.Read(20, 1));

            target = new DataManager(2);
            Assert.AreEqual(10, target.Read(1, 1));
            Assert.AreEqual(110, target.Read(11, 1));

            target = new DataManager(4);
            Assert.AreEqual(30, target.Read(3, 1));
            Assert.AreEqual(130, target.Read(13, 1));

            target = new DataManager(6);
            Assert.AreEqual(50, target.Read(5, 1));
            Assert.AreEqual(150, target.Read(15, 1));

            target = new DataManager(8);
            Assert.AreEqual(70, target.Read(7, 1));
            Assert.AreEqual(170, target.Read(17, 1));

            target = new DataManager(10);
            Assert.AreEqual(90, target.Read(9, 1));
            Assert.AreEqual(190, target.Read(19, 1));
        }
Пример #2
0
 /// <summary>
 ///   10/20/2011
 ///   Initializes a new instance of the <see cref = "Site" /> class.
 /// </summary>
 /// <param name = "sNumber">The site number.</param>
 /// <remarks>
 ///   Side effects: the dataManager is initialized, the site number is set
 /// </remarks>
 public Site(int sNumber)
     : this()
 {
     siteNumber = sNumber;
     dataManager = new DataManager(sNumber);
 }
Пример #3
0
 public void DataManagerReadTest()
 {
     DataManager target = new DataManager(2);
     target.Write(1, 30, 1, 1);
     target.Write(2, 20, 1, 1);
     int actual = target.Read(1, 1);
     Assert.AreEqual(30, actual);
     actual = target.Read(1, 2);
     Assert.AreNotEqual(30, actual);
     actual = target.Read(2, 1);
     Assert.AreEqual(20, actual);
     actual = target.Read(-1, 1);
     actual = target.Read(20, 1);
 }
Пример #4
0
        public void RecoverTest()
        {
            int siteNumber = 2;
            DataManager target = new DataManager(siteNumber);
            target.Write(2, 5, 1, 1);
            // a different trasnaction reads the original data item
            int actual = target.Read(2, 2);
            Assert.AreEqual(20, actual);

            // the same transaction will read the value it has written
            actual = target.Read(2, 1);
            Assert.AreEqual(5, actual);

            // recover
            target.Recover();

            // same transaction can no longer see the value it ahs written (uncomitted value was lost)
            actual = target.Read(2, 1);
            Assert.AreEqual(20, actual);

            // now write and commit, then recover
            target.Write(2, 5, 1, 1);
            target.CommitAllWrites(new Operation(Enumerations.OperationMode.Commit, 1, ts: 0));
            target.Recover();
            actual = target.Read(2, 1);
            Assert.AreEqual(5, actual);
        }
Пример #5
0
        public void ReadTest()
        {
            int siteNumber = 0;
            DataManager target = new DataManager(siteNumber);
            int dataItem = 2;
            int transactionId = 0;
            int timeStamp = 0;
            int expected = 20;
            int actual;
            actual = target.Read(dataItem, transactionId, timeStamp);
            Assert.AreEqual(expected, actual);
            target.Write(2, 30, 2, 2);
            target.CommitAllWrites(new Operation(Enumerations.OperationMode.Commit, 2, ts: 1));

            actual = target.Read(dataItem, transactionId, timeStamp);
            Assert.AreEqual(expected, actual);
            timeStamp = 3;
            expected = 30;
            actual = target.Read(dataItem, transactionId, timeStamp);
            Assert.AreEqual(expected, actual);
        }
Пример #6
0
        public void DeleteOldValuesTest()
        {
            int siteNumber = 0;
            DataManager target = new DataManager(siteNumber);
            int dataItem = 0;
            int timeStamp = 2;
            target.Write(2, 5, 1, timeStamp);
            target.Write(4, 10, 1, timeStamp);
            target.CommitAllWrites(new Operation(Enumerations.OperationMode.Commit, 1, ts: timeStamp));
            timeStamp = 4;
            target.Write(2, 10, 1, timeStamp);
            target.Write(4, 10, 1, timeStamp);
            target.CommitAllWrites(new Operation(Enumerations.OperationMode.Commit, 1, ts: timeStamp));
            //Assert.AreEqual(3, target.DataItems[2].OldValues.Count);
            //Assert.AreEqual(3, target.DataItems[4].OldValues.Count);

            //target.DeleteOldValues(2, 3);
            //Assert.AreEqual(1, target.DataItems[2].OldValues.Count);
            //Assert.AreEqual(10, target.DataItems[2].OldValues[4]);
            //target.DeleteOldValues(4, 1);
            //Assert.AreEqual(2, target.DataItems[4].OldValues.Count);
            //target.DeleteOldValues(4, 4);
            //Assert.AreEqual(1, target.DataItems[4].OldValues.Count);
            //Assert.AreEqual(10, target.DataItems[4].OldValues[4]);
        }
Пример #7
0
 public void DataManagerWriteTest()
 {
     DataManager target = new DataManager(1);
     target.Write(2, 5, 1, 1);
     Assert.AreEqual(5, target.Read(2, 1));
     target.Write(4, 10, 1, 1);
     Assert.AreEqual(10, target.Read(4, 1));
     target.Write(21, 10,1,1);
     target.Write(-1, 10, 1, 1);
 }